示例#1
0
        public void StrFldMerger_EmptyStruct()
        {
            StructureType str = new StructureType("foo", 0);
            DataType      dt  = sfm.Merge(str);

            Assert.AreEqual("(struct \"foo\")", dt.ToString());
        }
示例#2
0
        public void StrFldMerger_SingleMember()
        {
            StructureType str = new StructureType("foo", 0);

            str.Fields.Add(4, PrimitiveType.Word16);
            var      sfm = new StructureFieldMerger(str);
            DataType dt  = sfm.Merge();

            Assert.AreEqual("(struct \"foo\" (4 word16 w0004))", dt.ToString());
        }
示例#3
0
        public void StrFldMerger_Merge()
        {
            StructureType    str = new StructureType("foo", 0);
            UnionType        u   = new UnionType(null, null, PrimitiveType.Ptr32, PrimitiveType.Word16);
            EquivalenceClass eq  = Eqv(u);

            str.Fields.Add(2, eq);
            str.Fields.Add(4, PrimitiveType.SegmentSelector);
            var           sfm    = new StructureFieldMerger(str);
            StructureType strNew = sfm.Merge();

            Assert.AreEqual("(struct \"foo\" (2 (union (ptr32 u0) ((struct (0 word16 w0000) (2 selector pseg0002)) u1)) u0002))", strNew.ToString());
        }