mirror of https://github.com/mono/CppSharp.git
10 changed files with 219 additions and 0 deletions
@ -0,0 +1,13 @@
@@ -0,0 +1,13 @@
|
||||
#include "Base.h" |
||||
|
||||
|
||||
Base::Base(int i) |
||||
{ |
||||
b = i; |
||||
} |
||||
|
||||
|
||||
Base::Base() |
||||
{ |
||||
|
||||
} |
@ -0,0 +1,11 @@
@@ -0,0 +1,11 @@
|
||||
#include "../Tests.h" |
||||
|
||||
class DLL_API Base |
||||
{ |
||||
public: |
||||
Base(int i); |
||||
Base(); |
||||
|
||||
private: |
||||
int b; |
||||
}; |
@ -0,0 +1,81 @@
@@ -0,0 +1,81 @@
|
||||
?using System; |
||||
using CppSharp.AST; |
||||
using CppSharp.AST.Extensions; |
||||
using CppSharp.Generators; |
||||
using CppSharp.Generators.CSharp; |
||||
using CppSharp.Passes; |
||||
using CppSharp.Types; |
||||
using CppSharp.Utils; |
||||
using Attribute = CppSharp.AST.Attribute; |
||||
using Type = CppSharp.AST.Type; |
||||
|
||||
namespace CppSharp.Tests |
||||
{ |
||||
public class TestAttributesPass : TranslationUnitPass |
||||
{ |
||||
public override bool VisitFunctionDecl(Function function) |
||||
{ |
||||
if (AlreadyVisited(function) || function.Name != "obsolete") |
||||
return false; |
||||
|
||||
var attribute = new Attribute |
||||
{ |
||||
Type = typeof(ObsoleteAttribute), |
||||
Value = string.Format("\"{0} is obsolete.\"", function.Name) |
||||
}; |
||||
|
||||
function.Attributes.Add(attribute); |
||||
|
||||
return base.VisitFunctionDecl(function); |
||||
} |
||||
} |
||||
|
||||
public class NamespacesBaseTests : GeneratorTest |
||||
{ |
||||
public NamespacesBaseTests(GeneratorKind kind) |
||||
: base("NamespacesBase", kind) |
||||
{ |
||||
} |
||||
|
||||
public override void SetupPasses(Driver driver) |
||||
{ |
||||
driver.Options.GenerateAbstractImpls = true; |
||||
driver.Options.GenerateInterfacesForMultipleInheritance = true; |
||||
driver.Options.GeneratePropertiesAdvanced = true; |
||||
driver.Options.GenerateVirtualTables = true; |
||||
driver.Options.GenerateCopyConstructors = true; |
||||
// To ensure that calls to constructors in conversion operators
|
||||
// are not ambiguous with multiple inheritance pass enabled.
|
||||
driver.Options.GenerateConversionOperators = true; |
||||
driver.TranslationUnitPasses.AddPass(new TestAttributesPass()); |
||||
driver.Options.MarshalCharAsManagedChar = true; |
||||
driver.Options.GenerateDefaultValuesForArguments = true; |
||||
driver.Options.GenerateSingleCSharpFile = true; |
||||
} |
||||
|
||||
public override void Preprocess(Driver driver, ASTContext ctx) |
||||
{ |
||||
ctx.SetClassAsValueType("TestCopyConstructorVal"); |
||||
ctx.SetClassAsValueType("QGenericArgument"); |
||||
|
||||
ctx.IgnoreClassWithName("IgnoredTypeInheritingNonIgnoredWithNoEmptyCtor"); |
||||
} |
||||
|
||||
public override void Postprocess(Driver driver, ASTContext ctx) |
||||
{ |
||||
new CaseRenamePass( |
||||
RenameTargets.Function | RenameTargets.Method | RenameTargets.Property | RenameTargets.Delegate, |
||||
RenameCasePattern.UpperCamelCase).VisitLibrary(driver.ASTContext); |
||||
} |
||||
|
||||
} |
||||
public class Namespaces { |
||||
|
||||
public static void Main(string[] args) |
||||
{ |
||||
ConsoleDriver.Run(new NamespacesBaseTests(GeneratorKind.CSharp)); |
||||
} |
||||
|
||||
} |
||||
} |
||||
|
@ -0,0 +1,2 @@
@@ -0,0 +1,2 @@
|
||||
group "Tests/Namespaces" |
||||
SetupTestCSharp("NamespacesBase") |
@ -0,0 +1,6 @@
@@ -0,0 +1,6 @@
|
||||
#include "Derived.h" |
||||
|
||||
|
||||
Derived::Derived() : Base(10), component(5) |
||||
{ |
||||
} |
@ -0,0 +1,13 @@
@@ -0,0 +1,13 @@
|
||||
#include "../Tests.h" |
||||
#include "../NamespacesBase/Base.h" |
||||
|
||||
class DLL_API Derived : public Base |
||||
{ |
||||
public: |
||||
Derived(); |
||||
|
||||
Base component; |
||||
|
||||
private: |
||||
int d; |
||||
}; |
@ -0,0 +1,91 @@
@@ -0,0 +1,91 @@
|
||||
?using System; |
||||
using CppSharp.AST; |
||||
using CppSharp.AST.Extensions; |
||||
using CppSharp.Generators; |
||||
using CppSharp.Generators.CSharp; |
||||
using CppSharp.Passes; |
||||
using CppSharp.Types; |
||||
using CppSharp.Utils; |
||||
using Attribute = CppSharp.AST.Attribute; |
||||
using Type = CppSharp.AST.Type; |
||||
|
||||
namespace CppSharp.Tests |
||||
{ |
||||
public class TestAttributesPass : TranslationUnitPass |
||||
{ |
||||
public override bool VisitFunctionDecl(Function function) |
||||
{ |
||||
if (AlreadyVisited(function) || function.Name != "obsolete") |
||||
return false; |
||||
|
||||
var attribute = new Attribute |
||||
{ |
||||
Type = typeof(ObsoleteAttribute), |
||||
Value = string.Format("\"{0} is obsolete.\"", function.Name) |
||||
}; |
||||
|
||||
function.Attributes.Add(attribute); |
||||
|
||||
return base.VisitFunctionDecl(function); |
||||
} |
||||
} |
||||
|
||||
public class NamespacesDerivedTests : GeneratorTest |
||||
{ |
||||
public NamespacesDerivedTests(GeneratorKind kind) |
||||
: base("NamespacesDerived", kind) |
||||
{ |
||||
} |
||||
|
||||
public override void SetupPasses(Driver driver) |
||||
{ |
||||
driver.Options.GenerateAbstractImpls = true; |
||||
driver.Options.GenerateInterfacesForMultipleInheritance = true; |
||||
driver.Options.GeneratePropertiesAdvanced = true; |
||||
driver.Options.GenerateVirtualTables = true; |
||||
driver.Options.GenerateCopyConstructors = true; |
||||
// To ensure that calls to constructors in conversion operators
|
||||
// are not ambiguous with multiple inheritance pass enabled.
|
||||
driver.Options.GenerateConversionOperators = true; |
||||
driver.TranslationUnitPasses.AddPass(new TestAttributesPass()); |
||||
driver.Options.MarshalCharAsManagedChar = true; |
||||
driver.Options.GenerateDefaultValuesForArguments = true; |
||||
driver.Options.GenerateSingleCSharpFile = true; |
||||
driver.Options.DependentNameSpaces.Add("NamespacesBase"); |
||||
} |
||||
|
||||
public override void Preprocess(Driver driver, ASTContext ctx) |
||||
{ |
||||
foreach (TranslationUnit unit in ctx.TranslationUnits) |
||||
{ |
||||
if (unit.FileName != "Derived.h") |
||||
{ |
||||
unit.ExplicityIgnored = true; |
||||
} |
||||
} |
||||
|
||||
ctx.SetClassAsValueType("TestCopyConstructorVal"); |
||||
ctx.SetClassAsValueType("QGenericArgument"); |
||||
|
||||
ctx.IgnoreClassWithName("IgnoredTypeInheritingNonIgnoredWithNoEmptyCtor"); |
||||
} |
||||
|
||||
public override void Postprocess(Driver driver, ASTContext ctx) |
||||
{ |
||||
new CaseRenamePass( |
||||
RenameTargets.Function | RenameTargets.Method | RenameTargets.Property | RenameTargets.Delegate, |
||||
RenameCasePattern.UpperCamelCase).VisitLibrary(driver.ASTContext); |
||||
} |
||||
|
||||
} |
||||
|
||||
public class Namespaces { |
||||
|
||||
public static void Main(string[] args) |
||||
{ |
||||
ConsoleDriver.Run(new NamespacesDerivedTests(GeneratorKind.CSharp)); |
||||
} |
||||
|
||||
} |
||||
} |
||||
|
Loading…
Reference in new issue