コード例 #1
0
        public void TestCleanEnumItemNames()
        {
            AstContext.GenerateEnumFromMacros("TestEnumItemName", "TEST_ENUM_ITEM_NAME_(.*)");

            var @enum = AstContext.Enum("TestEnumItemName");

            Assert.IsNotNull(@enum);

            passBuilder.RemovePrefix("TEST_ENUM_ITEM_NAME_", RenameTargets.EnumItem);
            passBuilder.AddPass(new CleanInvalidDeclNamesPass());
            passBuilder.RunPasses(pass => pass.VisitASTContext(AstContext));

            Assert.That(@enum.Items[0].Name, Is.EqualTo("_0"));
        }
コード例 #2
0
        public void TestCleanEnumItemNames()
        {
            AstContext.GenerateEnumFromMacros("TestEnumItemName", "TEST_ENUM_ITEM_NAME_(.*)");

            var @enum = AstContext.Enum("TestEnumItemName");

            Assert.IsNotNull(@enum);

            // Testing the values read for the enum
            Assert.AreEqual(0, @enum.Items[0].Value); // Decimal literal
            Assert.AreEqual(1, @enum.Items[1].Value); // Hex literal
            Assert.AreEqual(2, @enum.Items[2].Value); // Hex literal with suffix

            passBuilder.RemovePrefix("TEST_ENUM_ITEM_NAME_", RenameTargets.EnumItem);
            passBuilder.AddPass(new CleanInvalidDeclNamesPass());
            passBuilder.RunPasses(pass => pass.VisitASTContext(AstContext));

            Assert.That(@enum.Items[0].Name, Is.EqualTo("_0"));
        }
コード例 #3
0
        public void TestEnumBaseTypesFromMacroValues()
        {
            AstContext.GenerateEnumFromMacros("TestEnumMaxSbyte", "TEST_ENUM_MAX_SBYTE");
            var @enum = AstContext.Enum("TestEnumMaxSbyte");

            Assert.IsNotNull(@enum);
            Assert.AreEqual(sbyte.MaxValue, @enum.Items[0].Value);
            Assert.AreEqual(PrimitiveType.UChar, @enum.BuiltinType.Type);

            AstContext.GenerateEnumFromMacros("TestEnumMaxByte", "TEST_ENUM_MAX_BYTE");
            @enum = AstContext.Enum("TestEnumMaxByte");
            Assert.IsNotNull(@enum);
            Assert.AreEqual(byte.MaxValue, @enum.Items[0].Value);
            Assert.AreEqual(PrimitiveType.UChar, @enum.BuiltinType.Type);

            AstContext.GenerateEnumFromMacros("TestEnumMaxShort", "TEST_ENUM_MAX_SHORT");
            @enum = AstContext.Enum("TestEnumMaxShort");
            Assert.IsNotNull(@enum);
            Assert.AreEqual(short.MaxValue, @enum.Items[0].Value);
            Assert.AreEqual(PrimitiveType.Short, @enum.BuiltinType.Type);

            AstContext.GenerateEnumFromMacros("TestEnumMaxUshort", "TEST_ENUM_MAX_USHORT");
            @enum = AstContext.Enum("TestEnumMaxUshort");
            Assert.IsNotNull(@enum);
            Assert.AreEqual(ushort.MaxValue, @enum.Items[0].Value);
            Assert.AreEqual(PrimitiveType.UShort, @enum.BuiltinType.Type);

            AstContext.GenerateEnumFromMacros("TestEnumMaxInt", "TEST_ENUM_MAX_INT");
            @enum = AstContext.Enum("TestEnumMaxInt");
            Assert.IsNotNull(@enum);
            Assert.AreEqual(int.MaxValue, @enum.Items[0].Value);
            Assert.AreEqual(PrimitiveType.Int, @enum.BuiltinType.Type);

            AstContext.GenerateEnumFromMacros("TestEnumMaxLong", "TEST_ENUM_MAX_LONG");
            @enum = AstContext.Enum("TestEnumMaxLong");
            Assert.IsNotNull(@enum);
            Assert.AreEqual(long.MaxValue, @enum.Items[0].Value);
            Assert.AreEqual(PrimitiveType.LongLong, @enum.BuiltinType.Type);

            AstContext.GenerateEnumFromMacros("TestEnumMaxUint", "TEST_ENUM_MAX_UINT");
            @enum = AstContext.Enum("TestEnumMaxUint");
            Assert.IsNotNull(@enum);
            Assert.AreEqual(uint.MaxValue, @enum.Items[0].Value);
            Assert.AreEqual(PrimitiveType.UInt, @enum.BuiltinType.Type);

            AstContext.GenerateEnumFromMacros("TestEnumMaxUlong", "TEST_ENUM_MAX_ULONG");
            @enum = AstContext.Enum("TestEnumMaxUlong");
            Assert.IsNotNull(@enum);
            Assert.AreEqual(ulong.MaxValue, @enum.Items[0].Value);
            Assert.AreEqual(PrimitiveType.ULongLong, @enum.BuiltinType.Type);

            AstContext.GenerateEnumFromMacros("TestEnumMinInt", "TEST_ENUM_MIN_INT");
            @enum = AstContext.Enum("TestEnumMinInt");
            Assert.IsNotNull(@enum);
            Assert.AreEqual(int.MinValue, (long)@enum.Items[0].Value);
            Assert.AreEqual(PrimitiveType.Int, @enum.BuiltinType.Type);

            AstContext.GenerateEnumFromMacros("TestEnumMinLong", "TEST_ENUM_MIN_LONG");
            @enum = AstContext.Enum("TestEnumMinLong");
            Assert.IsNotNull(@enum);
            Assert.AreEqual(long.MinValue, (long)@enum.Items[0].Value);
            Assert.AreEqual(PrimitiveType.LongLong, @enum.BuiltinType.Type);
        }