From ea32fb14ed1de56fea5c9f4685ca691460837c06 Mon Sep 17 00:00:00 2001 From: triton Date: Sun, 10 Mar 2013 00:52:31 +0000 Subject: [PATCH] Update the passes test so they actually work. --- src/Generator.Tests/HeaderTestFixture.cs | 11 +++++--- src/Generator.Tests/Passes/TestPasses.cs | 33 +++++++++++++++++++----- 2 files changed, 34 insertions(+), 10 deletions(-) diff --git a/src/Generator.Tests/HeaderTestFixture.cs b/src/Generator.Tests/HeaderTestFixture.cs index 1df3dc3c..ab2e4500 100644 --- a/src/Generator.Tests/HeaderTestFixture.cs +++ b/src/Generator.Tests/HeaderTestFixture.cs @@ -12,6 +12,12 @@ namespace Generator.Tests private const string TestsDirectory = @"..\..\..\tests\Native"; + public HeaderTestFixture() + { + database = new TypeMapDatabase(); + database.SetupTypeMaps(); + } + protected void ParseLibrary(string file) { ParseLibrary(TestsDirectory, file); @@ -19,13 +25,10 @@ namespace Generator.Tests protected void ParseLibrary(string dir, string file) { - database = new TypeMapDatabase(); - database.SetupTypeMaps(); - var options = new DriverOptions(); var path = Path.Combine(Directory.GetCurrentDirectory(), dir); - options.IncludeDirs.Add(path); + options.IncludeDirs.Add(Path.GetFullPath(path)); var parser = new Parser(options); var result = parser.ParseHeader(file); diff --git a/src/Generator.Tests/Passes/TestPasses.cs b/src/Generator.Tests/Passes/TestPasses.cs index 9894c2ab..d738a809 100644 --- a/src/Generator.Tests/Passes/TestPasses.cs +++ b/src/Generator.Tests/Passes/TestPasses.cs @@ -12,12 +12,12 @@ namespace Generator.Tests.Passes [TestFixtureSetUp] public void Init() { - ParseLibrary("Passes.h"); } [SetUp] public void Setup() { + ParseLibrary("Passes.h"); passBuilder = new PassBuilder(library); } @@ -33,21 +33,36 @@ namespace Generator.Tests.Passes passBuilder.CheckFlagEnums(); passBuilder.RunPasses(); - Assert.IsFalse(@enum.IsFlags); - Assert.IsTrue(@enum2.IsFlags); + Assert.IsTrue(@enum.IsFlags); + Assert.IsFalse(@enum2.IsFlags); } [Test] 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.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] @@ -79,5 +94,11 @@ namespace Generator.Tests.Passes Assert.That(@enum.Items[0].Name, Is.EqualTo("_0")); } + + [Test] + public void TestStructInheritance() + { + + } } }