mirror of https://github.com/mono/CppSharp.git
10 changed files with 219 additions and 0 deletions
@ -0,0 +1,13 @@ |
|||||||
|
#include "Base.h" |
||||||
|
|
||||||
|
|
||||||
|
Base::Base(int i) |
||||||
|
{ |
||||||
|
b = i; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
Base::Base() |
||||||
|
{ |
||||||
|
|
||||||
|
} |
@ -0,0 +1,11 @@ |
|||||||
|
#include "../Tests.h" |
||||||
|
|
||||||
|
class DLL_API Base |
||||||
|
{ |
||||||
|
public: |
||||||
|
Base(int i); |
||||||
|
Base(); |
||||||
|
|
||||||
|
private: |
||||||
|
int b; |
||||||
|
}; |
@ -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 @@ |
|||||||
|
group "Tests/Namespaces" |
||||||
|
SetupTestCSharp("NamespacesBase") |
@ -0,0 +1,6 @@ |
|||||||
|
#include "Derived.h" |
||||||
|
|
||||||
|
|
||||||
|
Derived::Derived() : Base(10), component(5) |
||||||
|
{ |
||||||
|
} |
@ -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 @@ |
|||||||
|
?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