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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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