public void TestClassContext() { var @classA = AstContext.FindClass("ClassA").First(); Assert.That(@classA.Classes.Count, Is.EqualTo(0)); Assert.That(@classA.Redeclarations.Count, Is.EqualTo(0)); var @classB = AstContext.FindClass("ClassB").First(); Assert.That(@classB.Redeclarations.Count, Is.EqualTo(1)); var @classC = AstContext.FindClass("ClassC").First(); Assert.That(@classC.Redeclarations.Count, Is.EqualTo(2)); }
public void TestCleanCommentsPass() { var c = AstContext.FindClass("TestCommentsPass").FirstOrDefault(); passBuilder.AddPass(new CleanCommentsPass()); passBuilder.RunPasses(pass => pass.VisitDeclaration(c)); var para = (ParagraphComment)c.Comment.FullComment.Blocks[0]; var textGenerator = new TextGenerator(); textGenerator.Print(para, CommentKind.BCPLSlash); Assert.That(textGenerator.StringBuilder.ToString().Trim(), Is.EqualTo("/// <summary>A simple test.</summary>")); }
public void TestRemovalOfUnusedStdTypes() { new IgnoreSystemDeclarationsPass { Context = Driver.Context }.VisitASTContext(AstContext); if (Platform.IsWindows) { Assert.That(AstContext.GetEnumWithMatchingItem("_ALLOC_MASK").Ignore, Is.True); Assert.That(AstContext.FindClass("_Ctypevec").First().Ignore, Is.True); return; } if (Platform.IsLinux) { Assert.That(AstContext.GetEnumWithMatchingItem("PTHREAD_RWLOCK_PREFER_READER_NP").Ignore, Is.True); Assert.That(AstContext.FindClass("pthread_mutex_t").First().Ignore, Is.True); return; } if (Platform.IsMacOS) { Assert.That(AstContext.GetEnumWithMatchingItem("__n_words").Ignore, Is.True); Assert.That(AstContext.FindClass("__darwin_fp_control").First().Ignore, Is.True); return; } }
public void TestIgnoringMethod() { AstContext.IgnoreClassMethodWithName("Foo", "toIgnore"); Assert.IsFalse(AstContext.FindClass("Foo").First().Methods.Find( m => m.Name == "toIgnore").IsGenerated); }
public void TestSkippedPrivateMethod() { AstContext.IgnoreClassMethodWithName("Foo", "toIgnore"); Assert.That(AstContext.FindClass("Foo").First().Methods.Find( m => m.Name == "toIgnore"), Is.Null); }
public void TestImplicitDeclaration() { Assert.IsTrue(AstContext.FindClass("ImplicitCtor").First().Constructors.First( c => c.Parameters.Count == 0).IsImplicit); }
public void TestMacroLineNumber() { Assert.AreEqual(105, AstContext.FindClass("HasAmbiguousFunctions").First().Specifiers.Last().LineNumberStart); }
public void TestLineNumber() { Assert.AreEqual(72, AstContext.FindClass("HiddenInNamespace").First().LineNumberStart); }
public void TestFindClassInNamespace() { Assert.IsNotNull(AstContext.FindClass("HiddenInNamespace").FirstOrDefault()); }
public void TestIgnoringMethod() { AstContext.IgnoreClassMethodWithName("Foo", "toIgnore"); Assert.IsTrue(AstContext.FindClass("Foo").First().Methods.Find( m => m.Name == "toIgnore").ExplicityIgnored); }