Browse Source

Update the passes test so they actually work.

pull/1/head
triton 13 years ago
parent
commit
ea32fb14ed
  1. 11
      src/Generator.Tests/HeaderTestFixture.cs
  2. 33
      src/Generator.Tests/Passes/TestPasses.cs

11
src/Generator.Tests/HeaderTestFixture.cs

@ -12,6 +12,12 @@ namespace Generator.Tests
private const string TestsDirectory = @"..\..\..\tests\Native"; private const string TestsDirectory = @"..\..\..\tests\Native";
public HeaderTestFixture()
{
database = new TypeMapDatabase();
database.SetupTypeMaps();
}
protected void ParseLibrary(string file) protected void ParseLibrary(string file)
{ {
ParseLibrary(TestsDirectory, file); ParseLibrary(TestsDirectory, file);
@ -19,13 +25,10 @@ namespace Generator.Tests
protected void ParseLibrary(string dir, string file) protected void ParseLibrary(string dir, string file)
{ {
database = new TypeMapDatabase();
database.SetupTypeMaps();
var options = new DriverOptions(); var options = new DriverOptions();
var path = Path.Combine(Directory.GetCurrentDirectory(), dir); var path = Path.Combine(Directory.GetCurrentDirectory(), dir);
options.IncludeDirs.Add(path); options.IncludeDirs.Add(Path.GetFullPath(path));
var parser = new Parser(options); var parser = new Parser(options);
var result = parser.ParseHeader(file); var result = parser.ParseHeader(file);

33
src/Generator.Tests/Passes/TestPasses.cs

@ -12,12 +12,12 @@ namespace Generator.Tests.Passes
[TestFixtureSetUp] [TestFixtureSetUp]
public void Init() public void Init()
{ {
ParseLibrary("Passes.h");
} }
[SetUp] [SetUp]
public void Setup() public void Setup()
{ {
ParseLibrary("Passes.h");
passBuilder = new PassBuilder(library); passBuilder = new PassBuilder(library);
} }
@ -33,21 +33,36 @@ namespace Generator.Tests.Passes
passBuilder.CheckFlagEnums(); passBuilder.CheckFlagEnums();
passBuilder.RunPasses(); passBuilder.RunPasses();
Assert.IsFalse(@enum.IsFlags); Assert.IsTrue(@enum.IsFlags);
Assert.IsTrue(@enum2.IsFlags); Assert.IsFalse(@enum2.IsFlags);
} }
[Test] [Test]
public void TestFunctionToInstancePass() public void TestFunctionToInstancePass()
{ {
var c = library.Class("C"); var c = library.Class("Foo");
Assert.IsNull(c.Methods.Find(m => m.Name == "DoSomethingC")); Assert.IsNull(c.Method("Start"));
passBuilder.FunctionToInstanceMethod(); passBuilder.FunctionToInstanceMethod();
passBuilder.RunPasses(); passBuilder.RunPasses();
Assert.IsNotNull(c.Methods.Find(m => m.Name == "DoSomethingC")); Assert.IsNotNull(c.Method("Start"));
}
[Test]
public void TestFunctionToStaticPass()
{
var c = library.Class("Foo");
Assert.IsFalse(library.Function("FooStart").ExplicityIgnored);
Assert.IsNull(c.Method("Start"));
passBuilder.FunctionToStaticMethod();
passBuilder.RunPasses();
Assert.IsTrue(library.Function("FooStart").ExplicityIgnored);
Assert.IsNotNull(c.Method("Start"));
} }
[Test] [Test]
@ -79,5 +94,11 @@ namespace Generator.Tests.Passes
Assert.That(@enum.Items[0].Name, Is.EqualTo("_0")); Assert.That(@enum.Items[0].Name, Is.EqualTo("_0"));
} }
[Test]
public void TestStructInheritance()
{
}
} }
} }

Loading…
Cancel
Save