File: java_throws_runme.java

package info (click to toggle)
swig 4.0.2-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 42,876 kB
  • sloc: cpp: 61,013; ansic: 27,612; java: 14,670; python: 10,632; cs: 8,103; makefile: 6,287; yacc: 6,197; sh: 5,247; ruby: 5,172; perl: 3,541; php: 2,069; ml: 2,066; lisp: 1,894; javascript: 1,300; tcl: 1,091; xml: 115
file content (145 lines) | stat: -rw-r--r-- 3,637 bytes parent folder | download | duplicates (3)
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();
  }
}