mirror of https://github.com/mono/CppSharp.git
2 changed files with 93 additions and 0 deletions
@ -0,0 +1,68 @@
@@ -0,0 +1,68 @@
|
||||
using Cxxi; |
||||
using Cxxi.Passes; |
||||
using NUnit.Framework; |
||||
|
||||
namespace Generator.Tests.Passes |
||||
{ |
||||
[TestFixture] |
||||
public class TestPasses : HeaderTestFixture |
||||
{ |
||||
private PassBuilder passBuilder; |
||||
|
||||
[TestFixtureSetUp] |
||||
public void Init() |
||||
{ |
||||
ParseLibrary("Passes.h"); |
||||
} |
||||
|
||||
[SetUp] |
||||
public void Setup() |
||||
{ |
||||
passBuilder = new PassBuilder(library); |
||||
} |
||||
|
||||
[Test] |
||||
public void TestCheckFlagEnumsPass() |
||||
{ |
||||
var @enum = library.Enum("FlagEnum"); |
||||
Assert.IsFalse(@enum.IsFlags); |
||||
|
||||
var @enum2 = library.Enum("FlagEnum2"); |
||||
Assert.IsFalse(@enum2.IsFlags); |
||||
|
||||
passBuilder.CheckFlagEnums(); |
||||
passBuilder.RunPasses(); |
||||
|
||||
Assert.IsFalse(@enum.IsFlags); |
||||
Assert.IsTrue(@enum2.IsFlags); |
||||
} |
||||
|
||||
[Test] |
||||
public void TestFunctionToInstancePass() |
||||
{ |
||||
var c = library.Class("C"); |
||||
|
||||
Assert.IsNull(c.Methods.Find(m => m.Name == "DoSomethingC")); |
||||
|
||||
passBuilder.FunctionToInstanceMethod(); |
||||
passBuilder.RunPasses(); |
||||
|
||||
Assert.IsNotNull(c.Methods.Find(m => m.Name == "DoSomethingC")); |
||||
} |
||||
|
||||
[Test] |
||||
public void TestCaseRenamePass() |
||||
{ |
||||
var c = library.Class("TestRename"); |
||||
|
||||
var method = c.Method("lowerCaseMethod"); |
||||
var field = c.Field("lowerCaseField"); |
||||
|
||||
passBuilder.RenameDeclsUpperCase(RenameTargets.Any); |
||||
passBuilder.RunPasses(); |
||||
|
||||
Assert.That(method.Name, Is.EqualTo("LowerCaseMethod")); |
||||
Assert.That(field.Name, Is.EqualTo("LowerCaseField")); |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,25 @@
@@ -0,0 +1,25 @@
|
||||
enum FlagEnum |
||||
{ |
||||
A = 1 << 0, |
||||
B = 1 << 1, |
||||
C = 1 << 2, |
||||
D = 1 << 3, |
||||
}; |
||||
|
||||
enum FlagEnum2 |
||||
{ |
||||
A = 1 << 0, |
||||
B = 1 << 1, |
||||
C = 1 << 2, |
||||
D = 1 << 4, |
||||
}; |
||||
|
||||
class C { }; |
||||
void DoSomethingC(C*, int); |
||||
|
||||
struct TestRename |
||||
{ |
||||
int lowerCaseMethod(); |
||||
int lowerCaseField; |
||||
}; |
||||
|
Loading…
Reference in new issue