From 7477b90023625a046b49baf70ec419e75a179556 Mon Sep 17 00:00:00 2001 From: Dimitar Dobrev Date: Sat, 1 Mar 2014 19:58:35 +0200 Subject: [PATCH] Moved the tests for copy ctors to separate classes. Signed-off-by: Dimitar Dobrev --- src/Generator/Passes/CheckStaticClass.cs | 1 - tests/Basic/Basic.Tests.cs | 8 ++++---- tests/Basic/Basic.cpp | 16 ++++++++++------ tests/Basic/Basic.h | 10 +++++++++- tests/CSharpTemp/CSharpTemp.Tests.cs | 9 +++++++++ tests/CSharpTemp/CSharpTemp.cpp | 12 +++++++++++- tests/CSharpTemp/CSharpTemp.cs | 5 +++++ tests/CSharpTemp/CSharpTemp.h | 9 +++++++++ 8 files changed, 57 insertions(+), 13 deletions(-) diff --git a/src/Generator/Passes/CheckStaticClass.cs b/src/Generator/Passes/CheckStaticClass.cs index 9dcbd298..92485a08 100644 --- a/src/Generator/Passes/CheckStaticClass.cs +++ b/src/Generator/Passes/CheckStaticClass.cs @@ -1,5 +1,4 @@ using System.Linq; -using System.Threading; using CppSharp.AST; namespace CppSharp.Passes diff --git a/tests/Basic/Basic.Tests.cs b/tests/Basic/Basic.Tests.cs index 5b52a624..f55d0d90 100644 --- a/tests/Basic/Basic.Tests.cs +++ b/tests/Basic/Basic.Tests.cs @@ -202,10 +202,10 @@ public class BasicTests : GeneratorTestFixture Assert.That(foo.A, Is.EqualTo(copyFoo.A)); Assert.That(foo.B, Is.EqualTo(copyFoo.B)); - Bar bar = new Bar { A = 10, B = 5 }; - var copyBar = new Bar(bar); - Assert.That(bar.A, Is.EqualTo(copyBar.A)); - Assert.That(bar.B, Is.EqualTo(copyBar.B)); + var testCopyConstructorRef = new TestCopyConstructorRef { A = 10, B = 5 }; + var copyBar = new TestCopyConstructorRef(testCopyConstructorRef); + Assert.That(testCopyConstructorRef.A, Is.EqualTo(copyBar.A)); + Assert.That(testCopyConstructorRef.B, Is.EqualTo(copyBar.B)); } } \ No newline at end of file diff --git a/tests/Basic/Basic.cpp b/tests/Basic/Basic.cpp index ed366f29..2e266f8f 100644 --- a/tests/Basic/Basic.cpp +++ b/tests/Basic/Basic.cpp @@ -27,12 +27,6 @@ Bar::Bar() { } -Bar::Bar(const Bar& bar) -{ - A = bar.A; - B = bar.B; -} - Bar::Item Bar::RetItem1() { return Bar::Item1; @@ -223,3 +217,13 @@ Bar::Item operator |(Bar::Item left, Bar::Item right) { return left | right; } + +TestCopyConstructorRef::TestCopyConstructorRef() +{ +} + +TestCopyConstructorRef::TestCopyConstructorRef(const TestCopyConstructorRef& other) +{ + A = other.A; + B = other.B; +} diff --git a/tests/Basic/Basic.h b/tests/Basic/Basic.h index 289db21a..cdcad981 100644 --- a/tests/Basic/Basic.h +++ b/tests/Basic/Basic.h @@ -28,7 +28,6 @@ struct DLL_API Bar }; Bar(); - Bar(const Bar& bar); Item RetItem1(); int A; float B; @@ -279,3 +278,12 @@ class DependentTypeWithNestedIndependent long l; }; }; + +class DLL_API TestCopyConstructorRef +{ +public: + TestCopyConstructorRef(); + TestCopyConstructorRef(const TestCopyConstructorRef& other); + int A; + float B; +}; diff --git a/tests/CSharpTemp/CSharpTemp.Tests.cs b/tests/CSharpTemp/CSharpTemp.Tests.cs index 50de4321..5d30205f 100644 --- a/tests/CSharpTemp/CSharpTemp.Tests.cs +++ b/tests/CSharpTemp/CSharpTemp.Tests.cs @@ -107,4 +107,13 @@ public class CSharpTempTests : GeneratorTestFixture bar.ArrayOfPrimitivePointers = array; Assert.That(i, Is.EqualTo(*(int*) bar.ArrayOfPrimitivePointers[0])); } + + [Test] + public void TestCopyConstructorValue() + { + var testCopyConstructorVal = new TestCopyConstructorVal { A = 10, B = 5 }; + var copyBar = new TestCopyConstructorVal(testCopyConstructorVal); + Assert.That(testCopyConstructorVal.A, Is.EqualTo(copyBar.A)); + Assert.That(testCopyConstructorVal.B, Is.EqualTo(copyBar.B)); + } } \ No newline at end of file diff --git a/tests/CSharpTemp/CSharpTemp.cpp b/tests/CSharpTemp/CSharpTemp.cpp index b1f0cf4c..acad1852 100644 --- a/tests/CSharpTemp/CSharpTemp.cpp +++ b/tests/CSharpTemp/CSharpTemp.cpp @@ -190,4 +190,14 @@ void P::setIsBool(bool value) } -int TestDestructors::Marker = 0; \ No newline at end of file +int TestDestructors::Marker = 0; + +TestCopyConstructorVal::TestCopyConstructorVal() +{ +} + +TestCopyConstructorVal::TestCopyConstructorVal(const TestCopyConstructorVal& other) +{ + A = other.A; + B = other.B; +} diff --git a/tests/CSharpTemp/CSharpTemp.cs b/tests/CSharpTemp/CSharpTemp.cs index ea18a316..b4a662a0 100644 --- a/tests/CSharpTemp/CSharpTemp.cs +++ b/tests/CSharpTemp/CSharpTemp.cs @@ -64,6 +64,11 @@ namespace CppSharp.Tests driver.TranslationUnitPasses.AddPass(new TestAttributesPass()); } + public override void Preprocess(Driver driver, ASTContext ctx) + { + ctx.SetClassAsValueType("TestCopyConstructorVal"); + } + public override void Postprocess(Driver driver, ASTContext lib) { new CaseRenamePass( diff --git a/tests/CSharpTemp/CSharpTemp.h b/tests/CSharpTemp/CSharpTemp.h index 60b6b484..1f967826 100644 --- a/tests/CSharpTemp/CSharpTemp.h +++ b/tests/CSharpTemp/CSharpTemp.h @@ -138,3 +138,12 @@ struct DLL_API TestDestructors TestDestructors() { Marker = 0xf00d; } ~TestDestructors() { Marker = 0xcafe; } }; + +class DLL_API TestCopyConstructorVal +{ +public: + TestCopyConstructorVal(); + TestCopyConstructorVal(const TestCopyConstructorVal& other); + int A; + float B; +};