From fcf2afc3a92bd4455a787999a65aec390212fe31 Mon Sep 17 00:00:00 2001 From: William S Fulton Date: Wed, 25 May 2005 21:17:17 +0000 Subject: [PATCH] test using declaration for methods with an exception specification git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@7214 626c5289-ae23-0410-ae9c-e8d60b6d4f22 --- .../test-suite/java/using_pointers_runme.java | 32 +++++++++++++++++++ Examples/test-suite/using_pointers.i | 8 +++++ 2 files changed, 40 insertions(+) create mode 100644 Examples/test-suite/java/using_pointers_runme.java 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; }; %}