1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145
|
import java_throws.*;
public class java_throws_runme {
static {
try {
System.loadLibrary("java_throws");
} 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[])
{
// Check the exception classes in the main typemaps
boolean pass = false;
// This won't compile unless all of these exceptions are in the throw clause
try {
short s = java_throws.full_of_exceptions(10);
}
catch (ClassNotFoundException e) {}
catch (NoSuchFieldException e) { pass = true; }
catch (InstantiationException e) {}
catch (CloneNotSupportedException e) {}
catch (IllegalAccessException e) {}
if (!pass)
throw new RuntimeException("Test 1 failed");
// Check the exception class in the throw typemap
pass = false;
try {
java_throws.throw_spec_function(100);
}
catch (IllegalAccessException e) { pass = true; }
if (!pass)
throw new RuntimeException("Test 2 failed");
// Check the exception class is used with %catches
pass = false;
try {
java_throws.catches_function(100);
}
catch (IllegalAccessException e) { pass = true; }
if (!pass)
throw new RuntimeException("Test 3 failed");
// Check newfree typemap throws attribute
try {
TestClass tc = java_throws.makeTestClass();
}
catch (NoSuchMethodException e) {}
// Check javaout typemap throws attribute
pass = false;
try {
int myInt = java_throws.ioTest();
}
catch (java.io.IOException e) { pass = true; }
if (!pass)
throw new RuntimeException("Test 4 failed");
// Check except feature throws attribute...
// Static method
pass = false;
try {
FeatureTest.staticMethod();
}
catch (MyException e) { pass = true; }
if (!pass)
throw new RuntimeException("Test 5 failed");
FeatureTest f = null;
try {
f = new FeatureTest();
}
catch (MyException e) {}
// Instance method
pass = false;
try {
f.method();
}
catch (MyException e) { pass = true; }
if (!pass)
throw new RuntimeException("Test 6 failed");
// Interface function
pass = false;
try {
InterfaceTestImpl iti = new InterfaceTestImpl();
iti.imethod(true);
}
catch (MyException e) { pass = true; }
if (!pass)
throw new RuntimeException("Test interface 1 failed");
pass = false;
try {
InterfaceTestImpl iti = new InterfaceTestImpl();
iti.imethod(false);
pass = true;
}
catch (MyException e) { pass = false; }
if (!pass)
throw new RuntimeException("Test interface 2 failed");
// Global function
pass = false;
try {
java_throws.globalFunction(10);
}
catch (MyException e) { pass = true; }
catch (ClassNotFoundException e) {}
catch (NoSuchFieldException e) {}
if (!pass)
throw new RuntimeException("Test 7 failed");
// Test %nojavaexception
NoExceptTest net = new NoExceptTest();
pass = false;
try {
net.exceptionPlease();
pass = true;
}
catch (MyException e) {}
if (!pass)
throw new RuntimeException("Test 8 failed");
net.noExceptionPlease();
}
}
|