13
13
package scala .compat .java8 .runtime ;
14
14
15
15
import org .junit .Assert ;
16
+ import org .junit .Assume ;
16
17
import org .junit .Test ;
17
18
18
19
import java .io .Serializable ;
26
27
public final class LambdaDeserializerTest {
27
28
private LambdaHost lambdaHost = new LambdaHost ();
28
29
30
+ // We skip most tests on Java 17+ because of https://github.com/scala/bug/issues/12419
31
+ // which we only fixed for 2.12+
32
+
29
33
@ Test
30
34
public void serializationPrivate () {
35
+ Assume .assumeFalse (scala .util .Properties .isJavaAtLeast ("17" ));
31
36
F1 <Boolean , String > f1 = lambdaHost .lambdaBackedByPrivateImplMethod ();
32
37
Assert .assertEquals (f1 .apply (true ), reconstitute (f1 ).apply (true ));
33
38
}
34
39
35
40
@ Test
36
41
public void serializationStatic () {
42
+ Assume .assumeFalse (scala .util .Properties .isJavaAtLeast ("17" ));
37
43
F1 <Boolean , String > f1 = lambdaHost .lambdaBackedByStaticImplMethod ();
38
44
Assert .assertEquals (f1 .apply (true ), reconstitute (f1 ).apply (true ));
39
45
}
40
46
41
47
@ Test
42
48
public void serializationVirtualMethodReference () {
49
+ Assume .assumeFalse (scala .util .Properties .isJavaAtLeast ("17" ));
43
50
F1 <Boolean , String > f1 = lambdaHost .lambdaBackedByVirtualMethodReference ();
44
51
Assert .assertEquals (f1 .apply (true ), reconstitute (f1 ).apply (true ));
45
52
}
46
53
47
54
@ Test
48
55
public void serializationInterfaceMethodReference () {
56
+ Assume .assumeFalse (scala .util .Properties .isJavaAtLeast ("17" ));
49
57
F1 <I , Object > f1 = lambdaHost .lambdaBackedByInterfaceMethodReference ();
50
58
I i = new I () {
51
59
};
@@ -54,18 +62,21 @@ public void serializationInterfaceMethodReference() {
54
62
55
63
@ Test
56
64
public void serializationStaticMethodReference () {
65
+ Assume .assumeFalse (scala .util .Properties .isJavaAtLeast ("17" ));
57
66
F1 <Boolean , String > f1 = lambdaHost .lambdaBackedByStaticMethodReference ();
58
67
Assert .assertEquals (f1 .apply (true ), reconstitute (f1 ).apply (true ));
59
68
}
60
69
61
70
@ Test
62
71
public void serializationNewInvokeSpecial () {
72
+ Assume .assumeFalse (scala .util .Properties .isJavaAtLeast ("17" ));
63
73
F0 <Object > f1 = lambdaHost .lambdaBackedByConstructorCall ();
64
74
Assert .assertEquals (f1 .apply (), reconstitute (f1 ).apply ());
65
75
}
66
76
67
77
@ Test
68
78
public void uncached () {
79
+ Assume .assumeFalse (scala .util .Properties .isJavaAtLeast ("17" ));
69
80
F0 <Object > f1 = lambdaHost .lambdaBackedByConstructorCall ();
70
81
F0 <Object > reconstituted1 = reconstitute (f1 );
71
82
F0 <Object > reconstituted2 = reconstitute (f1 );
@@ -74,6 +85,7 @@ public void uncached() {
74
85
75
86
@ Test
76
87
public void cached () {
88
+ Assume .assumeFalse (scala .util .Properties .isJavaAtLeast ("17" ));
77
89
HashMap <String , MethodHandle > cache = new HashMap <>();
78
90
F0 <Object > f1 = lambdaHost .lambdaBackedByConstructorCall ();
79
91
F0 <Object > reconstituted1 = reconstitute (f1 , cache );
@@ -83,6 +95,7 @@ public void cached() {
83
95
84
96
@ Test
85
97
public void cachedStatic () {
98
+ Assume .assumeFalse (scala .util .Properties .isJavaAtLeast ("17" ));
86
99
HashMap <String , MethodHandle > cache = new HashMap <>();
87
100
F1 <Boolean , String > f1 = lambdaHost .lambdaBackedByStaticImplMethod ();
88
101
// Check that deserialization of a static lambda always returns the
0 commit comments