C# director runtime tests
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@9104 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
b75f19b36a
commit
0290a29cb7
2 changed files with 307 additions and 0 deletions
127
Examples/test-suite/csharp/director_primitives_runme.cs
Normal file
127
Examples/test-suite/csharp/director_primitives_runme.cs
Normal file
|
|
@ -0,0 +1,127 @@
|
|||
/*
|
||||
This test program shows a C# class CSharpDerived inheriting from Base. Three types of classes are created
|
||||
and the virtual methods called to demonstrate:
|
||||
1) Wide variety of primitive types
|
||||
2) Calling methods with zero, one or more parameters
|
||||
3) Director methods that are not overridden in C#
|
||||
4) Director classes that are not overridden at all in C#, ie non-director behaviour is as expected for director classes
|
||||
5) Inheritance hierarchy using director methods
|
||||
6) Return types working as well as parameters
|
||||
|
||||
The Caller class is a tester class, which calls the virtual functions from C++.
|
||||
*/
|
||||
|
||||
using System;
|
||||
using director_primitivesNamespace;
|
||||
|
||||
public class runme
|
||||
{
|
||||
static void Main()
|
||||
{
|
||||
runme r = new runme();
|
||||
r.run();
|
||||
}
|
||||
|
||||
void run()
|
||||
{
|
||||
if (director_primitives.PrintDebug) Console.WriteLine("------------ Start ------------ ");
|
||||
|
||||
Caller myCaller = new Caller();
|
||||
|
||||
// test C++ base class
|
||||
using (Base myBase = new Base(100.0))
|
||||
{
|
||||
makeCalls(myCaller, myBase);
|
||||
}
|
||||
|
||||
if (director_primitives.PrintDebug) Console.WriteLine("--------------------------------");
|
||||
|
||||
// test vanilla C++ wrapped derived class
|
||||
using (Base myBase = new Derived(200.0))
|
||||
{
|
||||
makeCalls(myCaller, myBase);
|
||||
}
|
||||
|
||||
if (director_primitives.PrintDebug) Console.WriteLine("--------------------------------");
|
||||
|
||||
// test director / C# derived class
|
||||
using (Base myBase = new CSharpDerived(300.0))
|
||||
{
|
||||
makeCalls(myCaller, myBase);
|
||||
}
|
||||
|
||||
if (director_primitives.PrintDebug) Console.WriteLine("------------ Finish ------------ ");
|
||||
}
|
||||
|
||||
void makeCalls(Caller myCaller, Base myBase)
|
||||
{
|
||||
myCaller.set(myBase);
|
||||
|
||||
myCaller.NoParmsMethodCall();
|
||||
if (myCaller.BoolMethodCall(true) != true) throw new Exception("failed");
|
||||
if (myCaller.BoolMethodCall(false) != false) throw new Exception("failed");
|
||||
if (myCaller.IntMethodCall(-123) != -123) throw new Exception("failed");
|
||||
if (myCaller.UIntMethodCall(123) != 123) throw new Exception("failed");
|
||||
if (myCaller.FloatMethodCall((float)-123.456) != (float)-123.456) throw new Exception("failed");
|
||||
if (myCaller.CharPtrMethodCall("test string") != "test string") throw new Exception("failed");
|
||||
if (myCaller.ConstCharPtrMethodCall("another string") != "another string") throw new Exception("failed");
|
||||
if (myCaller.EnumMethodCall(HShadowMode.HShadowHard) != HShadowMode.HShadowHard) throw new Exception("failed");
|
||||
myCaller.ManyParmsMethodCall(true, -123, 123, (float)123.456, "test string", "another string", HShadowMode.HShadowHard);
|
||||
myCaller.NotOverriddenMethodCall();
|
||||
|
||||
myCaller.reset();
|
||||
}
|
||||
}
|
||||
|
||||
public class CSharpDerived : Base
|
||||
{
|
||||
public CSharpDerived(double dd)
|
||||
: base(dd)
|
||||
{
|
||||
}
|
||||
|
||||
public override void NoParmsMethod()
|
||||
{
|
||||
if (director_primitives.PrintDebug) Console.WriteLine("CSharpDerived - NoParmsMethod()");
|
||||
}
|
||||
public override bool BoolMethod(bool x)
|
||||
{
|
||||
if (director_primitives.PrintDebug) Console.WriteLine("CSharpDerived - BoolMethod({0})", x);
|
||||
return x;
|
||||
}
|
||||
public override int IntMethod(int x)
|
||||
{
|
||||
if (director_primitives.PrintDebug) Console.WriteLine("CSharpDerived - IntMethod({0})", x);
|
||||
return x;
|
||||
}
|
||||
public override uint UIntMethod(uint x)
|
||||
{
|
||||
if (director_primitives.PrintDebug) Console.WriteLine("CSharpDerived - UIntMethod({0})", x);
|
||||
return x;
|
||||
}
|
||||
public override float FloatMethod(float x)
|
||||
{
|
||||
if (director_primitives.PrintDebug) Console.WriteLine("CSharpDerived - FloatMethod({0})", x);
|
||||
return x;
|
||||
}
|
||||
public override string CharPtrMethod(string x)
|
||||
{
|
||||
if (director_primitives.PrintDebug) Console.WriteLine("CSharpDerived - CharPtrMethod({0})", x);
|
||||
return x;
|
||||
}
|
||||
public override string ConstCharPtrMethod(string x)
|
||||
{
|
||||
if (director_primitives.PrintDebug) Console.WriteLine("CSharpDerived - ConstCharPtrMethod({0})", x);
|
||||
return x;
|
||||
}
|
||||
public override HShadowMode EnumMethod(HShadowMode x)
|
||||
{
|
||||
if (director_primitives.PrintDebug) Console.WriteLine("CSharpDerived - EnumMethod({0})", x);
|
||||
return x;
|
||||
}
|
||||
public override void ManyParmsMethod(bool b, int i, uint u, float f, string c, string cc, HShadowMode h)
|
||||
{
|
||||
if (director_primitives.PrintDebug) Console.WriteLine("CSharpDerived - ManyParmsMethod({0}, {1}, {2}, {3}, {4}, {5}, {6})", b, i, u, f, c, cc, h);
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue