コード例 #1
0
        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));
        }
コード例 #2
0
ファイル: TestPasses.cs プロジェクト: wushian/CppSharp
        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>"));
        }
コード例 #3
0
 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;
     }
 }
コード例 #4
0
 public void TestIgnoringMethod()
 {
     AstContext.IgnoreClassMethodWithName("Foo", "toIgnore");
     Assert.IsFalse(AstContext.FindClass("Foo").First().Methods.Find(
                        m => m.Name == "toIgnore").IsGenerated);
 }
コード例 #5
0
ファイル: TestPasses.cs プロジェクト: wushian/CppSharp
 public void TestSkippedPrivateMethod()
 {
     AstContext.IgnoreClassMethodWithName("Foo", "toIgnore");
     Assert.That(AstContext.FindClass("Foo").First().Methods.Find(
                     m => m.Name == "toIgnore"), Is.Null);
 }
コード例 #6
0
 public void TestImplicitDeclaration()
 {
     Assert.IsTrue(AstContext.FindClass("ImplicitCtor").First().Constructors.First(
                       c => c.Parameters.Count == 0).IsImplicit);
 }
コード例 #7
0
 public void TestMacroLineNumber()
 {
     Assert.AreEqual(105, AstContext.FindClass("HasAmbiguousFunctions").First().Specifiers.Last().LineNumberStart);
 }
コード例 #8
0
 public void TestLineNumber()
 {
     Assert.AreEqual(72, AstContext.FindClass("HiddenInNamespace").First().LineNumberStart);
 }
コード例 #9
0
 public void TestFindClassInNamespace()
 {
     Assert.IsNotNull(AstContext.FindClass("HiddenInNamespace").FirstOrDefault());
 }
コード例 #10
0
 public void TestIgnoringMethod()
 {
     AstContext.IgnoreClassMethodWithName("Foo", "toIgnore");
     Assert.IsTrue(AstContext.FindClass("Foo").First().Methods.Find(
                       m => m.Name == "toIgnore").ExplicityIgnored);
 }