diff --git a/src/Generator.Tests/CppSharp.Generator.Tests.csproj b/src/Generator.Tests/CppSharp.Generator.Tests.csproj index b931b04c..daad660e 100644 --- a/src/Generator.Tests/CppSharp.Generator.Tests.csproj +++ b/src/Generator.Tests/CppSharp.Generator.Tests.csproj @@ -1,8 +1,8 @@  - - - + + + diff --git a/src/Generator.Tests/Passes/TestPasses.cs b/src/Generator.Tests/Passes/TestPasses.cs index d82677b4..45387cdd 100644 --- a/src/Generator.Tests/Passes/TestPasses.cs +++ b/src/Generator.Tests/Passes/TestPasses.cs @@ -39,19 +39,31 @@ namespace CppSharp.Generator.Tests.Passes } [Test] - public void TestCheckFlagEnumsPass() + public void TestCheckEnumsPass() { var @enum = AstContext.Enum("FlagEnum"); + var enum2 = AstContext.Enum("FlagEnum2"); + var boolClassEnum = AstContext.Enum("BoolEnum"); + var ucharClassEnum = AstContext.Enum("UCharEnum"); + Assert.IsFalse(@enum.IsFlags); + Assert.IsFalse(enum2.IsFlags); + Assert.IsFalse(boolClassEnum.IsFlags); + Assert.IsFalse(ucharClassEnum.IsFlags); - var @enum2 = AstContext.Enum("FlagEnum2"); - Assert.IsFalse(@enum2.IsFlags); + Assert.IsTrue(boolClassEnum.BuiltinType.Type == PrimitiveType.Bool); + Assert.IsTrue(ucharClassEnum.BuiltinType.Type == PrimitiveType.UChar); passBuilder.AddPass(new CheckEnumsPass()); passBuilder.RunPasses(pass => pass.VisitASTContext(AstContext)); Assert.IsTrue(@enum.IsFlags); - Assert.IsFalse(@enum2.IsFlags); + Assert.IsFalse(enum2.IsFlags); + Assert.IsFalse(boolClassEnum.IsFlags); + Assert.IsTrue(ucharClassEnum.IsFlags); + + Assert.IsTrue(boolClassEnum.BuiltinType.Type != PrimitiveType.Bool, "C# does not support Bool enums"); + Assert.IsTrue(ucharClassEnum.BuiltinType.Type == PrimitiveType.UChar); } [Test] diff --git a/tests/dotnet/Common/Common.Tests.cs b/tests/dotnet/Common/Common.Tests.cs index eb088354..81552884 100644 --- a/tests/dotnet/Common/Common.Tests.cs +++ b/tests/dotnet/Common/Common.Tests.cs @@ -172,6 +172,7 @@ public class CommonTests } } + [Test] public void TestPrimitiveInOutParameters() { using (var hello = new Hello()) diff --git a/tests/dotnet/Native/ASTExtensions.h b/tests/dotnet/Native/ASTExtensions.h index f616d3ff..c52eb1c0 100644 --- a/tests/dotnet/Native/ASTExtensions.h +++ b/tests/dotnet/Native/ASTExtensions.h @@ -1,7 +1,7 @@ #include "AST.h" #include -// Tests class templates accross translation units +// Tests class templates across translation units // Explicit instantiation template class TestTemplateClass; // Implicit instantiations diff --git a/tests/dotnet/Native/Passes.h b/tests/dotnet/Native/Passes.h index be83d523..e3b2b9b8 100644 --- a/tests/dotnet/Native/Passes.h +++ b/tests/dotnet/Native/Passes.h @@ -14,6 +14,20 @@ enum FlagEnum2 D1 = 1 << 4, }; +enum class BoolEnum : bool +{ + True = true, + False = false, +}; + +enum class UCharEnum : unsigned char +{ + A = 1 << 0, + B = 1 << 1, + C = 1 << 2, + D = 1 << 3, +}; + class Foo { void toIgnore() { }