Example #1
0
        private void RunFileTestx86_32(string relativePath, string outputFile)
        {
            Program program;
            var     sc    = new ServiceContainer();
            var     fsSvc = new FileSystemServiceImpl();
            var     el    = new FakeDecompilerEventListener();

            sc.AddService <IFileSystemService>(fsSvc);
            sc.AddService <DecompilerEventListener>(el);
            var arch = new X86ArchitectureFlat32();
            var asm  = new X86TextAssembler(sc, arch);

            using (var rdr = new StreamReader(FileUnitTester.MapTestPath(relativePath)))
            {
                var platform = new DefaultPlatform(sc, arch);
                asm.Platform = platform;
                program      = asm.Assemble(Address.Ptr32(0x10000000), rdr);
            }
            var scanner = new Scanner(program, null, sc);

            scanner.EnqueueEntryPoint(new EntryPoint(program.ImageMap.BaseAddress, arch.CreateProcessorState()));
            scanner.ScanImage();
            using (var fut = new FileUnitTester(outputFile))
            {
                foreach (var proc in program.Procedures.Values)
                {
                    proc.Write(false, fut.TextWriter);
                }
                fut.AssertFilesEqual();
            }
        }