Browse Source

Grouped all tests for arrays together.

Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
pull/955/head
Dimitar Dobrev 9 years ago
parent
commit
2b364d9787
  1. 16
      tests/CSharp/CSharp.Tests.cs
  2. 60
      tests/CSharp/CSharp.cpp
  3. 19
      tests/CSharp/CSharp.h

16
tests/CSharp/CSharp.Tests.cs

@ -1066,15 +1066,21 @@ public unsafe class CSharpTests : GeneratorTestFixture
Foo[] pointers = { new Foo { A = 2 }, new Foo { A = 5 } }; Foo[] pointers = { new Foo { A = 2 }, new Foo { A = 5 } };
int[] ints = { 6, 7 }; int[] ints = { 6, 7 };
Foo[] values = { new Foo { A = 10 }, new Foo { A = 20 } }; Foo[] values = { new Foo { A = 10 }, new Foo { A = 20 } };
Assert.That(CSharp.CSharp.TakeArrays(pointers, ints, values), Is.EqualTo(50)); using (var testArrays = new TestArrays())
{
Assert.That(testArrays.TakeArrays(pointers, ints, values), Is.EqualTo(50));
}
} }
[Test] [Test]
public void TestStringArrayParams() public void TestStringArrayParams()
{ {
string[] strings = { "The ", "test ", "works." }; string[] strings = { "The ", "test ", "works." };
Assert.That(CSharp.CSharp.TakeStringArray(strings), Is.EqualTo("The test works.")); using (var testArrays = new TestArrays())
Assert.That(CSharp.CSharp.TakeConstStringArray(strings), Is.EqualTo("The test works.")); {
Assert.That(testArrays.TakeStringArray(strings), Is.EqualTo("The test works."));
Assert.That(testArrays.TakeConstStringArray(strings), Is.EqualTo("The test works."));
}
} }
[Test] [Test]
@ -1083,9 +1089,9 @@ public unsafe class CSharpTests : GeneratorTestFixture
Foo[] pointers = { new Foo { A = 2 }, new Foo { A = 5 } }; Foo[] pointers = { new Foo { A = 2 }, new Foo { A = 5 } };
int[] ints = { 6, 7 }; int[] ints = { 6, 7 };
Foo[] values = { new Foo { A = 10 }, new Foo { A = 20 } }; Foo[] values = { new Foo { A = 10 }, new Foo { A = 20 } };
using (var qux = new Qux()) using (var testArrays = new TestArrays())
{ {
Assert.That(qux.VirtualTakesArrays(pointers, ints, values), Is.EqualTo(50)); Assert.That(testArrays.VirtualTakesArrays(pointers, ints, values), Is.EqualTo(50));
} }
} }

60
tests/CSharp/CSharp.cpp

@ -123,28 +123,6 @@ QColor::QColor(Qt::GlobalColor color)
} }
int takeArrays(Foo* arrayOfPointersToObjects[], int arrayOfPrimitives[], Foo arrayOfObjects[])
{
return arrayOfPointersToObjects[0]->A + arrayOfPointersToObjects[1]->A +
arrayOfPrimitives[0] + arrayOfPrimitives[1] +
arrayOfObjects[0].A + arrayOfObjects[1].A;
}
std::string takeStringArray(const char* arrayOfStrings[])
{
std::string result;
for (int i = 0; i < 3; i++)
{
result += arrayOfStrings[i];
}
return result;
}
std::string takeConstStringArray(const char* const arrayOfStrings[])
{
return takeStringArray(const_cast<const char**>(arrayOfStrings));
}
Qux::Qux() Qux::Qux()
{ {
} }
@ -184,9 +162,8 @@ void Qux::setInterface(Qux *qux)
{ {
} }
int Qux::virtualTakesArrays(Foo* arrayOfPointersToObjects[], int arrayOfPrimitives[], Foo arrayOfObjects[]) const void Qux::makeClassDynamic()
{ {
return takeArrays(arrayOfPointersToObjects, arrayOfPrimitives, arrayOfObjects);
} }
Bar::Bar(Qux qux) Bar::Bar(Qux qux)
@ -1414,3 +1391,38 @@ typedefedFuncPtr* TestDuplicateDelegate::testDuplicateDelegate(int a)
void InlineNamespace::FunctionInsideInlineNamespace() void InlineNamespace::FunctionInsideInlineNamespace()
{ {
} }
TestArrays::TestArrays()
{
}
TestArrays::~TestArrays()
{
}
int TestArrays::takeArrays(Foo* arrayOfPointersToObjects[], int arrayOfPrimitives[], Foo arrayOfObjects[]) const
{
return arrayOfPointersToObjects[0]->A + arrayOfPointersToObjects[1]->A +
arrayOfPrimitives[0] + arrayOfPrimitives[1] +
arrayOfObjects[0].A + arrayOfObjects[1].A;
}
std::string TestArrays::takeStringArray(const char* arrayOfStrings[])
{
std::string result;
for (int i = 0; i < 3; i++)
{
result += arrayOfStrings[i];
}
return result;
}
std::string TestArrays::takeConstStringArray(const char* const arrayOfStrings[])
{
return takeStringArray(const_cast<const char**>(arrayOfStrings));
}
int TestArrays::virtualTakesArrays(Foo* arrayOfPointersToObjects[], int arrayOfPrimitives[], Foo arrayOfObjects[]) const
{
return takeArrays(arrayOfPointersToObjects, arrayOfPrimitives, arrayOfObjects);
}

19
tests/CSharp/CSharp.h

@ -50,12 +50,6 @@ private:
class Bar; class Bar;
DLL_API int takeArrays(Foo* arrayOfPointersToObjects[], int arrayOfPrimitives[], Foo arrayOfObjects[]);
DLL_API std::string takeStringArray(const char* arrayOfStrings[]);
DLL_API std::string takeConstStringArray(const char* const arrayOfStrings[]);
class DLL_API Qux class DLL_API Qux
{ {
public: public:
@ -68,7 +62,7 @@ public:
void obsolete(); void obsolete();
Qux* getInterface(); Qux* getInterface();
void setInterface(Qux* qux); void setInterface(Qux* qux);
virtual int virtualTakesArrays(Foo* arrayOfPointersToObjects[], int arrayOfPrimitives[], Foo arrayOfObjects[]) const; virtual void makeClassDynamic();
}; };
class DLL_API Bar : public Qux class DLL_API Bar : public Qux
@ -1242,3 +1236,14 @@ inline namespace InlineNamespace
{ {
DLL_API void FunctionInsideInlineNamespace(); DLL_API void FunctionInsideInlineNamespace();
} }
class DLL_API TestArrays
{
public:
TestArrays();
~TestArrays();
int takeArrays(Foo* arrayOfPointersToObjects[], int arrayOfPrimitives[], Foo arrayOfObjects[]) const;
std::string takeStringArray(const char* arrayOfStrings[]);
std::string takeConstStringArray(const char* const arrayOfStrings[]);
virtual int virtualTakesArrays(Foo* arrayOfPointersToObjects[], int arrayOfPrimitives[], Foo arrayOfObjects[]) const;
};

Loading…
Cancel
Save