Mercurial > hg > Members > kono > jpf-core
annotate src/tests/java8/DefaultMethodTest.java @ 19:9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
From now on, we are free to use default methods and lambdas.
added convenience Loggable and PrintStreamable interfaces that mix in the
respective fat interfaces via default methods, so that we don't have to burn
inheritance of respective target classes (they only have to provide getLogger()
and getPrintStream() methods)
added a abstract LoggablePeer so that model classes can implement Loggable with
intercepted/native logging if they provide a respective concrete peer.
added some more default interface method tests
author | Peter Mehlitz <pcmehlitz@gmail.com> |
---|---|
date | Wed, 01 Apr 2015 12:14:15 -0700 |
parents | 61d41facf527 |
children |
rev | line source |
---|---|
0
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
1 /* |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
2 * Copyright (C) 2014, United States Government, as represented by the |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
3 * Administrator of the National Aeronautics and Space Administration. |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
4 * All rights reserved. |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
5 * |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
6 * The Java Pathfinder core (jpf-core) platform is licensed under the |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
7 * Apache License, Version 2.0 (the "License"); you may not use this file except |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
8 * in compliance with the License. You may obtain a copy of the License at |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
9 * |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
10 * http://www.apache.org/licenses/LICENSE-2.0. |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
11 * |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
12 * Unless required by applicable law or agreed to in writing, software |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
13 * distributed under the License is distributed on an "AS IS" BASIS, |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
15 * See the License for the specific language governing permissions and |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
16 * limitations under the License. |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
17 */ |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
18 package java8; |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
19 |
19
9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
Peter Mehlitz <pcmehlitz@gmail.com>
parents:
0
diff
changeset
|
20 import gov.nasa.jpf.annotation.MJI; |
0
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
21 import gov.nasa.jpf.util.test.TestJPF; |
19
9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
Peter Mehlitz <pcmehlitz@gmail.com>
parents:
0
diff
changeset
|
22 import gov.nasa.jpf.vm.MJIEnv; |
9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
Peter Mehlitz <pcmehlitz@gmail.com>
parents:
0
diff
changeset
|
23 import gov.nasa.jpf.vm.NativePeer; |
0
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
24 import gov.nasa.jpf.vm.Verify; |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
25 import org.junit.Test; |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
26 |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
27 /** |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
28 * regression test for Java 8 default methods |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
29 */ |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
30 public class DefaultMethodTest extends TestJPF { |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
31 |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
32 //------------------------------------------ non-ambiguous recursive lookup |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
33 |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
34 interface A1 { |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
35 default int getValue(){ |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
36 return 42; |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
37 } |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
38 } |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
39 |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
40 interface B1 extends A1 { |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
41 // nothing |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
42 } |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
43 |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
44 static class C1 implements A1 { |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
45 // nothing |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
46 } |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
47 |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
48 static class D1 extends C1 { |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
49 // nothing |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
50 } |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
51 |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
52 @Test |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
53 public void testSingleMethod (){ |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
54 if (verifyNoPropertyViolation()){ |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
55 D1 o = new D1(); |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
56 int result = o.getValue(); |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
57 System.out.println(result); |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
58 assertTrue (result == 42); |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
59 } |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
60 } |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
61 |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
62 //------------------------------------------ ambiguity resolution |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
63 |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
64 interface B2 { |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
65 default int getValue(){ |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
66 return 3; |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
67 } |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
68 } |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
69 |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
70 static class D2 implements A1, B2 { |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
71 @Override |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
72 public int getValue(){ |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
73 return A1.super.getValue() + B2.super.getValue(); |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
74 } |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
75 } |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
76 |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
77 @Test |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
78 public void testExplicitDelegation (){ |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
79 if (verifyNoPropertyViolation()){ |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
80 D2 o = new D2(); |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
81 int result = o.getValue(); |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
82 System.out.println(result); |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
83 assertTrue (result == 45); |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
84 } |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
85 } |
19
9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
Peter Mehlitz <pcmehlitz@gmail.com>
parents:
0
diff
changeset
|
86 |
9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
Peter Mehlitz <pcmehlitz@gmail.com>
parents:
0
diff
changeset
|
87 //------------------------------------------- overloaded methods |
9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
Peter Mehlitz <pcmehlitz@gmail.com>
parents:
0
diff
changeset
|
88 |
9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
Peter Mehlitz <pcmehlitz@gmail.com>
parents:
0
diff
changeset
|
89 interface E1 { |
9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
Peter Mehlitz <pcmehlitz@gmail.com>
parents:
0
diff
changeset
|
90 default int foo (String s1, String s2){ |
9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
Peter Mehlitz <pcmehlitz@gmail.com>
parents:
0
diff
changeset
|
91 System.out.println("this is E1.foo(String,String)"); |
9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
Peter Mehlitz <pcmehlitz@gmail.com>
parents:
0
diff
changeset
|
92 return 42; |
9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
Peter Mehlitz <pcmehlitz@gmail.com>
parents:
0
diff
changeset
|
93 } |
9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
Peter Mehlitz <pcmehlitz@gmail.com>
parents:
0
diff
changeset
|
94 |
9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
Peter Mehlitz <pcmehlitz@gmail.com>
parents:
0
diff
changeset
|
95 default int foo (Object o1, Object o2){ |
9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
Peter Mehlitz <pcmehlitz@gmail.com>
parents:
0
diff
changeset
|
96 System.out.println("this is E1.foo(Object,Object)"); |
9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
Peter Mehlitz <pcmehlitz@gmail.com>
parents:
0
diff
changeset
|
97 return 0; |
9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
Peter Mehlitz <pcmehlitz@gmail.com>
parents:
0
diff
changeset
|
98 } |
9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
Peter Mehlitz <pcmehlitz@gmail.com>
parents:
0
diff
changeset
|
99 } |
9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
Peter Mehlitz <pcmehlitz@gmail.com>
parents:
0
diff
changeset
|
100 |
9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
Peter Mehlitz <pcmehlitz@gmail.com>
parents:
0
diff
changeset
|
101 static class F implements E1 { |
9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
Peter Mehlitz <pcmehlitz@gmail.com>
parents:
0
diff
changeset
|
102 String getId() { |
9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
Peter Mehlitz <pcmehlitz@gmail.com>
parents:
0
diff
changeset
|
103 return "whatever"; |
9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
Peter Mehlitz <pcmehlitz@gmail.com>
parents:
0
diff
changeset
|
104 } |
9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
Peter Mehlitz <pcmehlitz@gmail.com>
parents:
0
diff
changeset
|
105 |
9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
Peter Mehlitz <pcmehlitz@gmail.com>
parents:
0
diff
changeset
|
106 void bar (){ |
9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
Peter Mehlitz <pcmehlitz@gmail.com>
parents:
0
diff
changeset
|
107 int r = foo("blah", getId()); |
9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
Peter Mehlitz <pcmehlitz@gmail.com>
parents:
0
diff
changeset
|
108 assertTrue(r == 42); |
9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
Peter Mehlitz <pcmehlitz@gmail.com>
parents:
0
diff
changeset
|
109 } |
9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
Peter Mehlitz <pcmehlitz@gmail.com>
parents:
0
diff
changeset
|
110 } |
9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
Peter Mehlitz <pcmehlitz@gmail.com>
parents:
0
diff
changeset
|
111 |
9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
Peter Mehlitz <pcmehlitz@gmail.com>
parents:
0
diff
changeset
|
112 @Test |
9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
Peter Mehlitz <pcmehlitz@gmail.com>
parents:
0
diff
changeset
|
113 public void testOverloadedDefaults(){ |
9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
Peter Mehlitz <pcmehlitz@gmail.com>
parents:
0
diff
changeset
|
114 if (verifyNoPropertyViolation()){ |
9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
Peter Mehlitz <pcmehlitz@gmail.com>
parents:
0
diff
changeset
|
115 F o = new F(); |
9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
Peter Mehlitz <pcmehlitz@gmail.com>
parents:
0
diff
changeset
|
116 o.bar(); |
9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
Peter Mehlitz <pcmehlitz@gmail.com>
parents:
0
diff
changeset
|
117 } |
9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
Peter Mehlitz <pcmehlitz@gmail.com>
parents:
0
diff
changeset
|
118 } |
9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
Peter Mehlitz <pcmehlitz@gmail.com>
parents:
0
diff
changeset
|
119 |
9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
Peter Mehlitz <pcmehlitz@gmail.com>
parents:
0
diff
changeset
|
120 //----------------------------------------------- native peer for interface |
9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
Peter Mehlitz <pcmehlitz@gmail.com>
parents:
0
diff
changeset
|
121 |
9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
Peter Mehlitz <pcmehlitz@gmail.com>
parents:
0
diff
changeset
|
122 interface G1 { |
9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
Peter Mehlitz <pcmehlitz@gmail.com>
parents:
0
diff
changeset
|
123 default int foo (){ // should be intercepted by peer |
9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
Peter Mehlitz <pcmehlitz@gmail.com>
parents:
0
diff
changeset
|
124 System.out.println("this is bytecode G1.foo()"); |
9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
Peter Mehlitz <pcmehlitz@gmail.com>
parents:
0
diff
changeset
|
125 return -1; |
9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
Peter Mehlitz <pcmehlitz@gmail.com>
parents:
0
diff
changeset
|
126 } |
9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
Peter Mehlitz <pcmehlitz@gmail.com>
parents:
0
diff
changeset
|
127 } |
9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
Peter Mehlitz <pcmehlitz@gmail.com>
parents:
0
diff
changeset
|
128 |
9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
Peter Mehlitz <pcmehlitz@gmail.com>
parents:
0
diff
changeset
|
129 static class H implements G1 { |
9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
Peter Mehlitz <pcmehlitz@gmail.com>
parents:
0
diff
changeset
|
130 void bar (){ |
9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
Peter Mehlitz <pcmehlitz@gmail.com>
parents:
0
diff
changeset
|
131 int r = foo(); |
9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
Peter Mehlitz <pcmehlitz@gmail.com>
parents:
0
diff
changeset
|
132 //assertTrue(r == 42); |
9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
Peter Mehlitz <pcmehlitz@gmail.com>
parents:
0
diff
changeset
|
133 } |
9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
Peter Mehlitz <pcmehlitz@gmail.com>
parents:
0
diff
changeset
|
134 } |
9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
Peter Mehlitz <pcmehlitz@gmail.com>
parents:
0
diff
changeset
|
135 |
9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
Peter Mehlitz <pcmehlitz@gmail.com>
parents:
0
diff
changeset
|
136 @Test |
9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
Peter Mehlitz <pcmehlitz@gmail.com>
parents:
0
diff
changeset
|
137 public void testInterfacePeer(){ |
9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
Peter Mehlitz <pcmehlitz@gmail.com>
parents:
0
diff
changeset
|
138 if (verifyNoPropertyViolation()){ |
9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
Peter Mehlitz <pcmehlitz@gmail.com>
parents:
0
diff
changeset
|
139 H o = new H(); |
9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
Peter Mehlitz <pcmehlitz@gmail.com>
parents:
0
diff
changeset
|
140 o.bar(); |
9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
Peter Mehlitz <pcmehlitz@gmail.com>
parents:
0
diff
changeset
|
141 } |
9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
Peter Mehlitz <pcmehlitz@gmail.com>
parents:
0
diff
changeset
|
142 } |
9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
Peter Mehlitz <pcmehlitz@gmail.com>
parents:
0
diff
changeset
|
143 |
0
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
144 // <2do> how to test IncompatibleClassChangeError without explicit classfile restore? |
61d41facf527
initial v8 import (history reset)
Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
parents:
diff
changeset
|
145 } |
19
9fea3d8da9aa
!!! NOTE: this marks the beginning of Java 8 dependency for jpf-core compilation.
Peter Mehlitz <pcmehlitz@gmail.com>
parents:
0
diff
changeset
|
146 |