Esempio n. 1
0
        public IPlatform CreatePlatform()
        {
            if (platform != null)
            {
                return(platform);
            }

            platform = mr.Stub <IPlatform>();

            platform.Stub(p => p.Name).Return("TestPlatform");
            platform.Stub(p => p.PointerType).Return(PrimitiveType.Ptr32);
            platform.Stub(p => p.GetByteSizeFromCBasicType(CBasicType.Char)).Return(1);
            platform.Stub(p => p.GetByteSizeFromCBasicType(CBasicType.Short)).Return(2);
            platform.Stub(p => p.GetByteSizeFromCBasicType(CBasicType.Int)).Return(4);
            platform.Stub(p => p.GetByteSizeFromCBasicType(CBasicType.Long)).Return(4);
            platform.Stub(p => p.GetByteSizeFromCBasicType(CBasicType.LongLong)).Return(8);
            platform.Stub(p => p.GetByteSizeFromCBasicType(CBasicType.Float)).Return(4);
            platform.Stub(p => p.GetByteSizeFromCBasicType(CBasicType.Double)).Return(8);
            platform.Stub(p => p.GetByteSizeFromCBasicType(CBasicType.LongDouble)).Return(8);
            platform.Stub(p => p.GetByteSizeFromCBasicType(CBasicType.Int64)).Return(8);
            platform.Stub(p => p.CreateMetadata()).Do(new Func <TypeLibrary>(() => this.platformMetadata.Clone()));
            var arch = new X86ArchitectureFlat32("x86-protected-32");

            platform.Stub(p => p.Architecture).Return(arch);
            platform.Stub(p => p.DefaultCallingConvention).Return("__cdecl");
            var ccStdcall = new X86CallingConvention(4, 4, 4, false, false);
            var ccCdecl   = new X86CallingConvention(4, 4, 4, true, false);

            platform.Stub(p => p.GetCallingConvention(null)).Return(ccCdecl);
            platform.Stub(p => p.GetCallingConvention("__stdcall")).Return(ccStdcall);
            platform.Stub(p => p.SaveUserOptions()).Return(null);

            platform.Replay();
            return(platform);
        }
Esempio n. 2
0
 private void Given_Platform()
 {
     platform = mr.Stub <IPlatform>();
     platform.Stub(p => p.LookupProcedureByName("", "")).IgnoreArguments()
     .Return(new ExternalProcedure("", new FunctionType()));
     platform.Replay();
 }
        public void Tlldr_LoadGlobalByOrdinal()
        {
            var typelib = new TypeLibrary();

            platform = mr.Stub <IPlatform>();
            platform.Stub(p => p.DefaultCallingConvention).Return("__cdecl");
            platform.Stub(p => p.Architecture).Return(new FakeArchitecture());
            platform.Replay();
            var tlldr = new TypeLibraryDeserializer(platform, true, typelib);

            tlldr.Load(new SerializedLibrary
            {
                ModuleName = "stdlib",
                Globals    = new List <GlobalVariable_v1>
                {
                    new GlobalVariable_v1
                    {
                        Name    = "errno",
                        Ordinal = 42,
                        Type    = PrimitiveType_v1.Int32(),
                    }
                }
            });
            var stdlib          = typelib.Modules["stdlib"];
            var globalByName    = stdlib.GlobalsByName["errno"];
            var globalByOrdinal = stdlib.GlobalsByOrdinal[42];

            Assert.AreSame(globalByName, globalByOrdinal);
        }
 private void Given_ArchitectureStub()
 {
     arch = mr.DynamicMock <IProcessorArchitecture>();
     arch.Stub(a => a.PointerType).Return(PrimitiveType.Ptr32);
     arch.Stub(a => a.WordWidth).Return(PrimitiveType.Ptr32);
     platform = mr.DynamicMock <IPlatform>();
     platform.Stub(p => p.PointerType).Return(PrimitiveType.Ptr32);
     platform.Stub(p => p.Architecture).Return(arch);
     platform.Replay();
     this.procSer = new ProcedureSerializer(platform, null, "");
 }
Esempio n. 5
0
        public IPlatform CreatePlatform()
        {
            if (platform != null)
            {
                return(platform);
            }

            platform = mr.Stub <IPlatform>();

            platform.Stub(p => p.Name).Return("TestPlatform");
            platform.Stub(p => p.PointerType).Return(PrimitiveType.Pointer32);
            platform.Stub(p => p.GetByteSizeFromCBasicType(CBasicType.Char)).Return(1);
            platform.Stub(p => p.GetByteSizeFromCBasicType(CBasicType.Short)).Return(2);
            platform.Stub(p => p.GetByteSizeFromCBasicType(CBasicType.Int)).Return(4);
            platform.Stub(p => p.GetByteSizeFromCBasicType(CBasicType.Long)).Return(4);
            platform.Stub(p => p.GetByteSizeFromCBasicType(CBasicType.LongLong)).Return(8);
            platform.Stub(p => p.GetByteSizeFromCBasicType(CBasicType.Float)).Return(4);
            platform.Stub(p => p.GetByteSizeFromCBasicType(CBasicType.Double)).Return(8);
            platform.Stub(p => p.GetByteSizeFromCBasicType(CBasicType.LongDouble)).Return(8);
            platform.Stub(p => p.GetByteSizeFromCBasicType(CBasicType.Int64)).Return(8);
            platform.Stub(p => p.CreateMetadata()).Do(new Func <TypeLibrary>(() => this.platformMetadata.Clone()));
            var arch = new X86ArchitectureFlat32();

            platform.Stub(p => p.Architecture).Return(arch);
            platform.Stub(p => p.DefaultCallingConvention).Return("__cdecl");

            platform.Stub(s => s.CreateProcedureSerializer(null, null)).IgnoreArguments().Do(
                new Func <ISerializedTypeVisitor <DataType>, string, ProcedureSerializer>((tlDeser, dc) =>
                                                                                          new X86ProcedureSerializer(arch, tlDeser, dc)
                                                                                          )
                );
            platform.Stub(p => p.SaveUserOptions()).Return(null);

            platform.Replay();
            return(platform);
        }
Esempio n. 6
0
        public IPlatform CreatePlatform()
        {
            if (platform != null)
                return platform;

            platform = mr.Stub<IPlatform>();

            platform.Stub(p => p.Name).Return("TestPlatform");
            platform.Stub(p => p.PointerType).Return(PrimitiveType.Pointer32);
            platform.Stub(p => p.GetByteSizeFromCBasicType(CBasicType.Char)).Return(1);
            platform.Stub(p => p.GetByteSizeFromCBasicType(CBasicType.Short)).Return(2);
            platform.Stub(p => p.GetByteSizeFromCBasicType(CBasicType.Int)).Return(4);
            platform.Stub(p => p.GetByteSizeFromCBasicType(CBasicType.Long)).Return(4);
            platform.Stub(p => p.GetByteSizeFromCBasicType(CBasicType.LongLong)).Return(8);
            platform.Stub(p => p.GetByteSizeFromCBasicType(CBasicType.Float)).Return(4);
            platform.Stub(p => p.GetByteSizeFromCBasicType(CBasicType.Double)).Return(8);
            platform.Stub(p => p.GetByteSizeFromCBasicType(CBasicType.LongDouble)).Return(8);
            platform.Stub(p => p.GetByteSizeFromCBasicType(CBasicType.Int64)).Return(8);
            platform.Stub(p => p.CreateMetadata()).Do(new Func<TypeLibrary>(() => this.platformMetadata.Clone()));
            var arch = new X86ArchitectureFlat32();
            platform.Stub(p => p.Architecture).Return(arch);
            platform.Stub(p => p.DefaultCallingConvention).Return("__cdecl");

            platform.Stub(s => s.CreateProcedureSerializer(null, null)).IgnoreArguments().Do(
                new Func<ISerializedTypeVisitor<DataType>, string, ProcedureSerializer>((tlDeser, dc) =>
                    new X86ProcedureSerializer(arch, tlDeser, dc)
                )
            );
            platform.Stub(p => p.SaveUserOptions()).Return(null);

            platform.Replay();
            return platform;
        }
Esempio n. 7
0
 private void Given_Platform()
 {
     platform = mr.Stub<IPlatform>();
     platform.Stub(p => p.LookupProcedureByName("", "")).IgnoreArguments().Return(new ExternalProcedure("", null));
     platform.Replay();
 }