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")); }
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")); }
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); }