summaryrefslogtreecommitdiff
path: root/test/native/lib/JNILinkTest.java
blob: 326c8ea044579282c8d5121a5806c0ba65e0a11a (plain)
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
public class JNILinkTest {
	static {
		System.loadLibrary("jnilinktest");
	}

	public static void main(String args[]) {
		MethodTester m = new MethodTester();
		Data1 d1 = new Data1();
		Data2 d2 = new Data2();
		int NUM_TESTS=4;
		for(int i=0;i<NUM_TESTS;i++) {
			try {
				if(m.test1(d1,d2))
					System.out.println("SUCCEED: test1");
				else
					System.out.println("FAIL: test1");
			} catch(Exception E) {
				System.out.println("FAIL: test1 (exception)");
			}
		}
		for(int i=0;i<NUM_TESTS;i++) {
			try {
				if(m.test2(d1,d2))
					System.out.println("SUCCEED: test2");
				else
					System.out.println("FAIL: test2");
			} catch(Exception E) {
				System.out.println("FAIL: test2");
			}
		}
		for(int i=0;i<NUM_TESTS;i++) {
			try {
				if(m.test3(d1,d2))
					System.out.println("SUCCEED: test3");
				else
					System.out.println("FAIL: test3");
			} catch(Exception E) {
				System.out.println("FAIL: test3");
			}
		}
		for(int i=0;i<NUM_TESTS;i++) {
			try {
				if(m.test4(d1,d2))
					System.out.println("SUCCEED: test4");
				else
					System.out.println("FAIL: test4");
			} catch(Exception E) {
				System.out.println("FAIL: test4");
			}
		}
		for(int i=0;i<NUM_TESTS;i++) {
			try {
				if(m.test5(d1,d2))
					System.out.println("SUCCEED: test5");
				else
					System.out.println("FAIL: test5");
			} catch(Exception E) {
				System.out.println("FAIL: test5");
			}
		}
		for(int i=0;i<NUM_TESTS;i++) {
			try {
				if(m.test6(d1,d2))
					System.out.println("SUCCEED: test6");
				else
					System.out.println("FAIL: test6");
			} catch(Exception E) {
				System.out.println("FAIL: test5");
			}
		}
	}
}

class MethodTester {
	// class test
	native boolean test1(Data1 d1, Data2 d2);
	// field test
	native boolean test2(Data1 d1, Data2 d2);
	// static field test
	native boolean test3(Data1 d1, Data2 d2);
	// method test
	native boolean test4(Data1 d1, Data2 d2);
	// static method test
	native boolean test5(Data1 d1, Data2 d2);
	// final method test
	native boolean test6(Data1 d1, Data2 d2);
}

class Data1 {
	static boolean staticVar = true;
	private boolean instanceVar = true;
	static boolean staticMethod() { return true; }
	boolean instanceMethod() { return true; }
	boolean finalMethod() { return true; }
}

class Data2 extends Data1 {
	static boolean staticVar = false;
	private boolean instanceVar = false;
	static boolean staticMethod() { return false; }
	boolean instanceMethod() { return false; }
	boolean finalMethod() { return false; }
}