@@ -41,7 +41,6 @@ matrix.addAxis({
41
41
'8' ,
42
42
'11' ,
43
43
'17' ,
44
- '20' ,
45
44
'21 ' ,
46
45
]
47
46
} ) ;
@@ -67,16 +66,6 @@ matrix.addAxis({
67
66
]
68
67
} ) ;
69
68
70
- // Test cases when Object#hashCode produces the same results
71
- // It allows capturing cases when the code uses hashCode as a unique identifier
72
- matrix . addAxis ( {
73
- name : 'hash' ,
74
- values : [
75
- { value : 'regular' , title : '' , weight : 42 } ,
76
- { value : 'same' , title : 'same hashcode' , weight : 1 }
77
- ]
78
- } ) ;
79
-
80
69
matrix . addAxis ( {
81
70
name : 'locale' ,
82
71
title : x => x . language + '_' + x . country ,
@@ -89,59 +78,51 @@ matrix.addAxis({
89
78
} ) ;
90
79
91
80
matrix . setNamePattern ( [
92
- 'java_version' , 'java_distribution' , 'hash' , ' os',
81
+ 'java_version' , 'java_distribution' , 'os' ,
93
82
'tz' , 'locale' ,
94
83
] ) ;
95
84
96
- // Microsoft Java has no distribution for 8, 18, 19
85
+ // Microsoft Java has no distribution for 8, 18, 19, 20
97
86
matrix . exclude ( { java_distribution : 'microsoft' , java_version : '8' } ) ;
98
87
matrix . exclude ( { java_distribution : 'microsoft' , java_version : '18' } ) ;
99
88
matrix . exclude ( { java_distribution : 'microsoft' , java_version : '19' } ) ;
100
89
matrix . exclude ( { java_distribution : 'microsoft' , java_version : '20' } ) ;
101
90
// Oracle supports 17+ only
102
91
matrix . exclude ( { java_distribution : 'oracle' , java_version : [ '8' , '11' , '19' ] } ) ;
103
- // TODO: remove when compileJava with "same hashcode" issues are resolved
104
- // See https://bugs.openjdk.org/browse/JDK-8288590 is resolved
105
- // See https://github.com/jqwik-team/jqwik/pull/460#issuecomment-1428261036
106
- matrix . exclude ( { hash : { value : 'same' } } ) ;
107
-
108
- // The most rare features should be generated the first
109
- // For instance, we have a lot of PostgreSQL versions, so we generate the minimal the first
110
- // It would have to generate other parameters, and it might happen it would cover "most recent Java" automatically
111
- // Ensure at least one job with "same" hashcode exists
112
- // TODO: un-comment once "same hashcode" issues are resolved
113
- // matrix.generateRow({hash: {value: 'same'}});
92
+
114
93
// Ensure there will be at least one job with minimal supported Java
115
94
matrix . generateRow ( { java_version : matrix . axisByName . java_version . values [ 0 ] } ) ;
95
+
116
96
// Ensure there will be at least one job with the latest Java
117
97
matrix . generateRow ( { java_version : matrix . axisByName . java_version . values . slice ( - 1 ) [ 0 ] } ) ;
98
+
118
99
// Ensure at least one Windows and at least one Linux job is present (macOS is almost the same as Linux)
119
- // matrix.generateRow({os: 'windows-latest'});
100
+ matrix . generateRow ( { os : 'windows-latest' } ) ;
120
101
matrix . generateRow ( { os : 'ubuntu-latest' } ) ;
121
102
122
103
const include = matrix . generateRows ( process . env . MATRIX_JOBS || 5 ) ;
123
104
if ( include . length === 0 ) {
124
105
throw new Error ( 'Matrix list is empty' ) ;
125
106
}
107
+
126
108
include . sort ( ( a , b ) => a . name . localeCompare ( b . name , undefined , { numeric : true } ) ) ;
127
109
include . forEach ( v => {
128
110
// Pass locale via Gradle arguments in case it won't be inherited from _JAVA_OPTIONS
129
111
// In fact, _JAVA_OPTIONS is non-standard and might be ignored by some JVMs
130
112
let gradleArgs = [
131
113
`-Duser.country=${ v . locale . country } ` ,
132
114
`-Duser.language=${ v . locale . language } ` ,
115
+ `-DjavaVersion=${ v . java_version } ` ,
133
116
] ;
134
117
v . extraGradleArgs = gradleArgs . join ( ' ' ) ;
135
118
} ) ;
136
119
include . forEach ( v => {
137
120
let jvmArgs = [ ] ;
138
121
139
- if ( v . hash . value === 'same' ) {
140
- jvmArgs . push ( '-XX:+UnlockExperimentalVMOptions' , '-XX:hashCode=2' ) ;
141
- }
142
122
// Pass locale via _JAVA_OPTIONS so all the forked processes inherit it
143
123
jvmArgs . push ( `-Duser.country=${ v . locale . country } ` ) ;
144
124
jvmArgs . push ( `-Duser.language=${ v . locale . language } ` ) ;
125
+ //jvmArgs.push(`-DjavaVersion=${v.java_version}`); // Is that necessary?
145
126
if ( v . jit === 'hotspot' && Math . random ( ) > 0.5 ) {
146
127
// The following options randomize instruction selection in JIT compiler
147
128
// so it might reveal missing synchronization in TestNG code
0 commit comments