summaryrefslogtreecommitdiff
path: root/Examples/test-suite/csharp/director_basic_runme.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Examples/test-suite/csharp/director_basic_runme.cs')
-rw-r--r--Examples/test-suite/csharp/director_basic_runme.cs74
1 files changed, 74 insertions, 0 deletions
diff --git a/Examples/test-suite/csharp/director_basic_runme.cs b/Examples/test-suite/csharp/director_basic_runme.cs
new file mode 100644
index 0000000..b991610
--- /dev/null
+++ b/Examples/test-suite/csharp/director_basic_runme.cs
@@ -0,0 +1,74 @@
+using System;
+
+namespace director_basicNamespace {
+
+public class runme
+{
+ static void Main()
+ {
+ runme r = new runme();
+ r.run();
+ }
+
+ void run()
+ {
+ director_basic_MyFoo a = new director_basic_MyFoo();
+
+ if (a.ping() != "director_basic_MyFoo::ping()") {
+ throw new Exception ( "a.ping()" );
+ }
+
+ if (a.pong() != "Foo::pong();director_basic_MyFoo::ping()") {
+ throw new Exception ( "a.pong()" );
+ }
+
+ Foo b = new Foo();
+
+ if (b.ping() != "Foo::ping()") {
+ throw new Exception ( "b.ping()" );
+ }
+
+ if (b.pong() != "Foo::pong();Foo::ping()") {
+ throw new Exception ( "b.pong()" );
+ }
+
+ A1 a1 = new A1(1, false);
+ a1.Dispose();
+
+ {
+ MyOverriddenClass my = new MyOverriddenClass();
+
+ my.expectNull = true;
+ if (MyClass.call_pmethod(my, null) != null)
+ throw new Exception("null pointer marshalling problem");
+
+ Bar myBar = new Bar();
+ my.expectNull = false;
+ Bar myNewBar = MyClass.call_pmethod(my, myBar);
+ if (myNewBar == null)
+ throw new Exception("non-null pointer marshalling problem");
+ myNewBar.x = 10;
+ }
+ }
+}
+
+class director_basic_MyFoo : Foo {
+ public director_basic_MyFoo() : base() {
+ }
+
+ public override string ping() {
+ return "director_basic_MyFoo::ping()";
+ }
+}
+
+class MyOverriddenClass : MyClass {
+ public bool expectNull = false;
+ public bool nonNullReceived = false;
+ public override Bar pmethod(Bar b) {
+ if ( expectNull && (b != null) )
+ throw new Exception("null not received as expected");
+ return b;
+ }
+}
+
+}