85 import jdk.internal.vm.annotation.Stable; |
85 import jdk.internal.vm.annotation.Stable; |
86 |
86 |
87 import java.lang.reflect.InvocationTargetException; |
87 import java.lang.reflect.InvocationTargetException; |
88 |
88 |
89 public class TestStableBoolean { |
89 public class TestStableBoolean { |
90 static final boolean isStableEnabled = StableConfiguration.isStableEnabled; |
90 static final boolean isStableEnabled = StableConfiguration.isStableEnabled; |
91 static final boolean isServerWithStable = StableConfiguration.isServerWithStable; |
|
92 |
91 |
93 public static void main(String[] args) throws Exception { |
92 public static void main(String[] args) throws Exception { |
94 run(DefaultValue.class); |
93 run(DefaultValue.class); |
95 run(BooleanStable.class); |
94 run(BooleanStable.class); |
96 run(DefaultStaticValue.class); |
95 run(DefaultStaticValue.class); |
207 public static void test() throws Exception { |
206 public static void test() throws Exception { |
208 { |
207 { |
209 c.v = new boolean[1]; c.v[0] = true; boolean val1 = get(); |
208 c.v = new boolean[1]; c.v[0] = true; boolean val1 = get(); |
210 c.v[0] = false; boolean val2 = get(); |
209 c.v[0] = false; boolean val2 = get(); |
211 assertEquals(val1, true); |
210 assertEquals(val1, true); |
212 assertEquals(val2, (isServerWithStable ? true : false)); |
211 assertEquals(val2, (isStableEnabled ? true : false)); |
213 } |
212 } |
214 |
213 |
215 { |
214 { |
216 c.v = new boolean[20]; c.v[10] = true; boolean val1 = get1(); |
215 c.v = new boolean[20]; c.v[10] = true; boolean val1 = get1(); |
217 c.v[10] = false; boolean val2 = get1(); |
216 c.v[10] = false; boolean val2 = get1(); |
218 assertEquals(val1, true); |
217 assertEquals(val1, true); |
219 assertEquals(val2, (isServerWithStable ? true : false)); |
218 assertEquals(val2, (isStableEnabled ? true : false)); |
220 } |
219 } |
221 |
220 |
222 { |
221 { |
223 c.v = new boolean[1]; boolean[] val1 = get2(); |
222 c.v = new boolean[1]; boolean[] val1 = get2(); |
224 c.v = new boolean[1]; boolean[] val2 = get2(); |
223 c.v = new boolean[1]; boolean[] val2 = get2(); |
239 public static void test() throws Exception { |
238 public static void test() throws Exception { |
240 { |
239 { |
241 c.v = new boolean[1][1]; c.v[0][0] = true; boolean val1 = get(); |
240 c.v = new boolean[1][1]; c.v[0][0] = true; boolean val1 = get(); |
242 c.v[0][0] = false; boolean val2 = get(); |
241 c.v[0][0] = false; boolean val2 = get(); |
243 assertEquals(val1, true); |
242 assertEquals(val1, true); |
244 assertEquals(val2, (isServerWithStable ? true : false)); |
243 assertEquals(val2, (isStableEnabled ? true : false)); |
245 |
244 |
246 c.v = new boolean[1][1]; c.v[0][0] = false; boolean val3 = get(); |
245 c.v = new boolean[1][1]; c.v[0][0] = false; boolean val3 = get(); |
247 assertEquals(val3, (isServerWithStable ? true : false)); |
246 assertEquals(val3, (isStableEnabled ? true : false)); |
248 |
247 |
249 c.v[0] = new boolean[1]; c.v[0][0] = false; boolean val4 = get(); |
248 c.v[0] = new boolean[1]; c.v[0][0] = false; boolean val4 = get(); |
250 assertEquals(val4, (isServerWithStable ? true : false)); |
249 assertEquals(val4, (isStableEnabled ? true : false)); |
251 } |
250 } |
252 |
251 |
253 { |
252 { |
254 c.v = new boolean[1][1]; boolean[] val1 = get1(); |
253 c.v = new boolean[1][1]; boolean[] val1 = get1(); |
255 c.v[0] = new boolean[1]; boolean[] val2 = get1(); |
254 c.v[0] = new boolean[1]; boolean[] val2 = get1(); |
256 assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2))); |
255 assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2))); |
257 } |
256 } |
258 |
257 |
259 { |
258 { |
260 c.v = new boolean[1][1]; boolean[][] val1 = get2(); |
259 c.v = new boolean[1][1]; boolean[][] val1 = get2(); |
261 c.v = new boolean[1][1]; boolean[][] val2 = get2(); |
260 c.v = new boolean[1][1]; boolean[][] val2 = get2(); |
277 public static void test() throws Exception { |
276 public static void test() throws Exception { |
278 { |
277 { |
279 c.v = new boolean[1][1][1]; c.v[0][0][0] = true; boolean val1 = get(); |
278 c.v = new boolean[1][1][1]; c.v[0][0][0] = true; boolean val1 = get(); |
280 c.v[0][0][0] = false; boolean val2 = get(); |
279 c.v[0][0][0] = false; boolean val2 = get(); |
281 assertEquals(val1, true); |
280 assertEquals(val1, true); |
282 assertEquals(val2, (isServerWithStable ? true : false)); |
281 assertEquals(val2, (isStableEnabled ? true : false)); |
283 |
282 |
284 c.v = new boolean[1][1][1]; c.v[0][0][0] = false; boolean val3 = get(); |
283 c.v = new boolean[1][1][1]; c.v[0][0][0] = false; boolean val3 = get(); |
285 assertEquals(val3, (isServerWithStable ? true : false)); |
284 assertEquals(val3, (isStableEnabled ? true : false)); |
286 |
285 |
287 c.v[0] = new boolean[1][1]; c.v[0][0][0] = false; boolean val4 = get(); |
286 c.v[0] = new boolean[1][1]; c.v[0][0][0] = false; boolean val4 = get(); |
288 assertEquals(val4, (isServerWithStable ? true : false)); |
287 assertEquals(val4, (isStableEnabled ? true : false)); |
289 |
288 |
290 c.v[0][0] = new boolean[1]; c.v[0][0][0] = false; boolean val5 = get(); |
289 c.v[0][0] = new boolean[1]; c.v[0][0][0] = false; boolean val5 = get(); |
291 assertEquals(val5, (isServerWithStable ? true : false)); |
290 assertEquals(val5, (isStableEnabled ? true : false)); |
292 } |
291 } |
293 |
292 |
294 { |
293 { |
295 c.v = new boolean[1][1][1]; boolean[] val1 = get1(); |
294 c.v = new boolean[1][1][1]; boolean[] val1 = get1(); |
296 c.v[0][0] = new boolean[1]; boolean[] val2 = get1(); |
295 c.v[0][0] = new boolean[1]; boolean[] val2 = get1(); |
297 assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2))); |
296 assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2))); |
298 } |
297 } |
299 |
298 |
300 { |
299 { |
301 c.v = new boolean[1][1][1]; boolean[][] val1 = get2(); |
300 c.v = new boolean[1][1][1]; boolean[][] val1 = get2(); |
302 c.v[0] = new boolean[1][1]; boolean[][] val2 = get2(); |
301 c.v[0] = new boolean[1][1]; boolean[][] val2 = get2(); |
303 assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2))); |
302 assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2))); |
304 } |
303 } |
305 |
304 |
306 { |
305 { |
307 c.v = new boolean[1][1][1]; boolean[][][] val1 = get3(); |
306 c.v = new boolean[1][1][1]; boolean[][][] val1 = get3(); |
308 c.v = new boolean[1][1][1]; boolean[][][] val2 = get3(); |
307 c.v = new boolean[1][1][1]; boolean[][][] val2 = get3(); |
325 public static void test() throws Exception { |
324 public static void test() throws Exception { |
326 { |
325 { |
327 c.v = new boolean[1][1][1][1]; c.v[0][0][0][0] = true; boolean val1 = get(); |
326 c.v = new boolean[1][1][1][1]; c.v[0][0][0][0] = true; boolean val1 = get(); |
328 c.v[0][0][0][0] = false; boolean val2 = get(); |
327 c.v[0][0][0][0] = false; boolean val2 = get(); |
329 assertEquals(val1, true); |
328 assertEquals(val1, true); |
330 assertEquals(val2, (isServerWithStable ? true : false)); |
329 assertEquals(val2, (isStableEnabled ? true : false)); |
331 |
330 |
332 c.v = new boolean[1][1][1][1]; c.v[0][0][0][0] = false; boolean val3 = get(); |
331 c.v = new boolean[1][1][1][1]; c.v[0][0][0][0] = false; boolean val3 = get(); |
333 assertEquals(val3, (isServerWithStable ? true : false)); |
332 assertEquals(val3, (isStableEnabled ? true : false)); |
334 |
333 |
335 c.v[0] = new boolean[1][1][1]; c.v[0][0][0][0] = false; boolean val4 = get(); |
334 c.v[0] = new boolean[1][1][1]; c.v[0][0][0][0] = false; boolean val4 = get(); |
336 assertEquals(val4, (isServerWithStable ? true : false)); |
335 assertEquals(val4, (isStableEnabled ? true : false)); |
337 |
336 |
338 c.v[0][0] = new boolean[1][1]; c.v[0][0][0][0] = false; boolean val5 = get(); |
337 c.v[0][0] = new boolean[1][1]; c.v[0][0][0][0] = false; boolean val5 = get(); |
339 assertEquals(val5, (isServerWithStable ? true : false)); |
338 assertEquals(val5, (isStableEnabled ? true : false)); |
340 |
339 |
341 c.v[0][0][0] = new boolean[1]; c.v[0][0][0][0] = false; boolean val6 = get(); |
340 c.v[0][0][0] = new boolean[1]; c.v[0][0][0][0] = false; boolean val6 = get(); |
342 assertEquals(val6, (isServerWithStable ? true : false)); |
341 assertEquals(val6, (isStableEnabled ? true : false)); |
343 } |
342 } |
344 |
343 |
345 { |
344 { |
346 c.v = new boolean[1][1][1][1]; boolean[] val1 = get1(); |
345 c.v = new boolean[1][1][1][1]; boolean[] val1 = get1(); |
347 c.v[0][0][0] = new boolean[1]; boolean[] val2 = get1(); |
346 c.v[0][0][0] = new boolean[1]; boolean[] val2 = get1(); |
348 assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2))); |
347 assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2))); |
349 } |
348 } |
350 |
349 |
351 { |
350 { |
352 c.v = new boolean[1][1][1][1]; boolean[][] val1 = get2(); |
351 c.v = new boolean[1][1][1][1]; boolean[][] val1 = get2(); |
353 c.v[0][0] = new boolean[1][1]; boolean[][] val2 = get2(); |
352 c.v[0][0] = new boolean[1][1]; boolean[][] val2 = get2(); |
354 assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2))); |
353 assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2))); |
355 } |
354 } |
356 |
355 |
357 { |
356 { |
358 c.v = new boolean[1][1][1][1]; boolean[][][] val1 = get3(); |
357 c.v = new boolean[1][1][1][1]; boolean[][][] val1 = get3(); |
359 c.v[0] = new boolean[1][1][1]; boolean[][][] val2 = get3(); |
358 c.v[0] = new boolean[1][1][1]; boolean[][][] val2 = get3(); |
360 assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2))); |
359 assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2))); |
361 } |
360 } |
362 |
361 |
363 { |
362 { |
364 c.v = new boolean[1][1][1][1]; boolean[][][][] val1 = get4(); |
363 c.v = new boolean[1][1][1][1]; boolean[][][][] val1 = get4(); |
365 c.v = new boolean[1][1][1][1]; boolean[][][][] val2 = get4(); |
364 c.v = new boolean[1][1][1][1]; boolean[][][][] val2 = get4(); |
454 |
453 |
455 { |
454 { |
456 c.v = new boolean[1][1][1]; c.v[0][0] = new boolean[0]; boolean[] val1 = get1(); |
455 c.v = new boolean[1][1][1]; c.v[0][0] = new boolean[0]; boolean[] val1 = get1(); |
457 c.v[0][0] = new boolean[0]; boolean[] val2 = get1(); |
456 c.v[0][0] = new boolean[0]; boolean[] val2 = get1(); |
458 |
457 |
459 assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2))); |
458 assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2))); |
460 } |
459 } |
461 |
460 |
462 { |
461 { |
463 c.v = new boolean[1][1][1]; c.v[0] = new boolean[0][0]; boolean[][] val1 = get2(); |
462 c.v = new boolean[1][1][1]; c.v[0] = new boolean[0][0]; boolean[][] val1 = get2(); |
464 c.v[0] = new boolean[0][0]; boolean[][] val2 = get2(); |
463 c.v[0] = new boolean[0][0]; boolean[][] val2 = get2(); |
465 |
464 |
466 assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2))); |
465 assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2))); |
467 } |
466 } |
468 |
467 |
469 { |
468 { |
470 c.v = new boolean[0][0][0]; Object[][] val1 = get3(); |
469 c.v = new boolean[0][0][0]; Object[][] val1 = get3(); |
471 c.v = new boolean[0][0][0]; Object[][] val2 = get3(); |
470 c.v = new boolean[0][0][0]; Object[][] val2 = get3(); |
596 c.v = new A[] { elem, elem }; c.v[0].left = c.v[0].right = c.v; |
595 c.v = new A[] { elem, elem }; c.v[0].left = c.v[0].right = c.v; |
597 elem.a = true; boolean val1 = get(); boolean val2 = get1(); |
596 elem.a = true; boolean val1 = get(); boolean val2 = get1(); |
598 elem.a = false; boolean val3 = get(); boolean val4 = get1(); |
597 elem.a = false; boolean val3 = get(); boolean val4 = get1(); |
599 |
598 |
600 assertEquals(val1, true); |
599 assertEquals(val1, true); |
601 assertEquals(val3, (isServerWithStable ? true : false)); |
600 assertEquals(val3, (isStableEnabled ? true : false)); |
602 |
601 |
603 assertEquals(val2, true); |
602 assertEquals(val2, true); |
604 assertEquals(val4, false); |
603 assertEquals(val4, false); |
605 } |
604 } |
606 } |
605 } |