diff --git a/Examples/test-suite/java/using_pointers_runme.java b/Examples/test-suite/java/using_pointers_runme.java new file mode 100644 index 000000000..deab4e6e4 --- /dev/null +++ b/Examples/test-suite/java/using_pointers_runme.java @@ -0,0 +1,32 @@ + +import using_pointers.*; + +public class using_pointers_runme { + + static { + try { + System.loadLibrary("using_pointers"); + } catch (UnsatisfiedLinkError e) { + System.err.println("Native code library failed to load. See the chapter on Dynamic Linking Problems in the SWIG Java documentation for help.\n" + e); + System.exit(1); + } + } + + public static void main(String argv[]) + { + FooBar f = new FooBar(); + boolean pass = true; + try { + f.exception_spec(1); + pass = false; + } catch (RuntimeException e) { + } + if (!pass) throw new RuntimeException("Missed exception 1"); + try { + f.exception_spec(2); + pass = false; + } catch (RuntimeException e) { + } + if (!pass) throw new RuntimeException("Missed exception 2"); + } +} diff --git a/Examples/test-suite/using_pointers.i b/Examples/test-suite/using_pointers.i index cdf6e7576..4a43ea343 100644 --- a/Examples/test-suite/using_pointers.i +++ b/Examples/test-suite/using_pointers.i @@ -6,12 +6,20 @@ int x; virtual ~Foo() { } virtual Foo* blah() { return this; } + virtual Foo* exception_spec(int what_to_throw) throw (int, const char *) { + int num = 10; + const char *str = "exception message"; + if (what_to_throw == 1) throw num; + else if (what_to_throw == 2) throw str; + return 0; + } }; class FooBar : public Foo { public: using Foo::blah; using Foo::x; + using Foo::exception_spec; }; %}