86 |
86 |
87 import java.lang.reflect.InvocationTargetException; |
87 import java.lang.reflect.InvocationTargetException; |
88 |
88 |
89 public class TestStableLong { |
89 public class TestStableLong { |
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(LongStable.class); |
94 run(LongStable.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 long[1]; c.v[0] = 1; long val1 = get(); |
208 c.v = new long[1]; c.v[0] = 1; long val1 = get(); |
210 c.v[0] = 2; long val2 = get(); |
209 c.v[0] = 2; long val2 = get(); |
211 assertEquals(val1, 1); |
210 assertEquals(val1, 1); |
212 assertEquals(val2, (isServerWithStable ? 1 : 2)); |
211 assertEquals(val2, (isStableEnabled ? 1 : 2)); |
213 |
212 |
214 c.v = new long[1]; c.v[0] = 3; long val3 = get(); |
213 c.v = new long[1]; c.v[0] = 3; long val3 = get(); |
215 assertEquals(val3, (isStableEnabled ? (isServerWithStable ? 1 : 2) |
214 assertEquals(val3, (isStableEnabled ? (isStableEnabled ? 1 : 2) |
216 : 3)); |
215 : 3)); |
217 } |
216 } |
218 |
217 |
219 { |
218 { |
220 c.v = new long[20]; c.v[10] = 1; long val1 = get1(); |
219 c.v = new long[20]; c.v[10] = 1; long val1 = get1(); |
221 c.v[10] = 2; long val2 = get1(); |
220 c.v[10] = 2; long val2 = get1(); |
222 assertEquals(val1, 1); |
221 assertEquals(val1, 1); |
223 assertEquals(val2, (isServerWithStable ? 1 : 2)); |
222 assertEquals(val2, (isStableEnabled ? 1 : 2)); |
224 |
223 |
225 c.v = new long[20]; c.v[10] = 3; long val3 = get1(); |
224 c.v = new long[20]; c.v[10] = 3; long val3 = get1(); |
226 assertEquals(val3, (isStableEnabled ? (isServerWithStable ? 1 : 2) |
225 assertEquals(val3, (isStableEnabled ? (isStableEnabled ? 1 : 2) |
227 : 3)); |
226 : 3)); |
228 } |
227 } |
229 |
228 |
230 { |
229 { |
231 c.v = new long[1]; long[] val1 = get2(); |
230 c.v = new long[1]; long[] val1 = get2(); |
247 public static void test() throws Exception { |
246 public static void test() throws Exception { |
248 { |
247 { |
249 c.v = new long[1][1]; c.v[0][0] = 1; long val1 = get(); |
248 c.v = new long[1][1]; c.v[0][0] = 1; long val1 = get(); |
250 c.v[0][0] = 2; long val2 = get(); |
249 c.v[0][0] = 2; long val2 = get(); |
251 assertEquals(val1, 1); |
250 assertEquals(val1, 1); |
252 assertEquals(val2, (isServerWithStable ? 1 : 2)); |
251 assertEquals(val2, (isStableEnabled ? 1 : 2)); |
253 |
252 |
254 c.v = new long[1][1]; c.v[0][0] = 3; long val3 = get(); |
253 c.v = new long[1][1]; c.v[0][0] = 3; long val3 = get(); |
255 assertEquals(val3, (isStableEnabled ? (isServerWithStable ? 1 : 2) |
254 assertEquals(val3, (isStableEnabled ? (isStableEnabled ? 1 : 2) |
256 : 3)); |
255 : 3)); |
257 |
256 |
258 c.v[0] = new long[1]; c.v[0][0] = 4; long val4 = get(); |
257 c.v[0] = new long[1]; c.v[0][0] = 4; long val4 = get(); |
259 assertEquals(val4, (isStableEnabled ? (isServerWithStable ? 1 : 2) |
258 assertEquals(val4, (isStableEnabled ? (isStableEnabled ? 1 : 2) |
260 : 4)); |
259 : 4)); |
261 } |
260 } |
262 |
261 |
263 { |
262 { |
264 c.v = new long[1][1]; long[] val1 = get1(); |
263 c.v = new long[1][1]; long[] val1 = get1(); |
265 c.v[0] = new long[1]; long[] val2 = get1(); |
264 c.v[0] = new long[1]; long[] val2 = get1(); |
266 assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2))); |
265 assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2))); |
267 } |
266 } |
268 |
267 |
269 { |
268 { |
270 c.v = new long[1][1]; long[][] val1 = get2(); |
269 c.v = new long[1][1]; long[][] val1 = get2(); |
271 c.v = new long[1][1]; long[][] val2 = get2(); |
270 c.v = new long[1][1]; long[][] val2 = get2(); |
287 public static void test() throws Exception { |
286 public static void test() throws Exception { |
288 { |
287 { |
289 c.v = new long[1][1][1]; c.v[0][0][0] = 1; long val1 = get(); |
288 c.v = new long[1][1][1]; c.v[0][0][0] = 1; long val1 = get(); |
290 c.v[0][0][0] = 2; long val2 = get(); |
289 c.v[0][0][0] = 2; long val2 = get(); |
291 assertEquals(val1, 1); |
290 assertEquals(val1, 1); |
292 assertEquals(val2, (isServerWithStable ? 1 : 2)); |
291 assertEquals(val2, (isStableEnabled ? 1 : 2)); |
293 |
292 |
294 c.v = new long[1][1][1]; c.v[0][0][0] = 3; long val3 = get(); |
293 c.v = new long[1][1][1]; c.v[0][0][0] = 3; long val3 = get(); |
295 assertEquals(val3, (isStableEnabled ? (isServerWithStable ? 1 : 2) |
294 assertEquals(val3, (isStableEnabled ? (isStableEnabled ? 1 : 2) |
296 : 3)); |
295 : 3)); |
297 |
296 |
298 c.v[0] = new long[1][1]; c.v[0][0][0] = 4; long val4 = get(); |
297 c.v[0] = new long[1][1]; c.v[0][0][0] = 4; long val4 = get(); |
299 assertEquals(val4, (isStableEnabled ? (isServerWithStable ? 1 : 2) |
298 assertEquals(val4, (isStableEnabled ? (isStableEnabled ? 1 : 2) |
300 : 4)); |
299 : 4)); |
301 |
300 |
302 c.v[0][0] = new long[1]; c.v[0][0][0] = 5; long val5 = get(); |
301 c.v[0][0] = new long[1]; c.v[0][0][0] = 5; long val5 = get(); |
303 assertEquals(val5, (isStableEnabled ? (isServerWithStable ? 1 : 2) |
302 assertEquals(val5, (isStableEnabled ? (isStableEnabled ? 1 : 2) |
304 : 5)); |
303 : 5)); |
305 } |
304 } |
306 |
305 |
307 { |
306 { |
308 c.v = new long[1][1][1]; long[] val1 = get1(); |
307 c.v = new long[1][1][1]; long[] val1 = get1(); |
309 c.v[0][0] = new long[1]; long[] val2 = get1(); |
308 c.v[0][0] = new long[1]; long[] val2 = get1(); |
310 assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2))); |
309 assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2))); |
311 } |
310 } |
312 |
311 |
313 { |
312 { |
314 c.v = new long[1][1][1]; long[][] val1 = get2(); |
313 c.v = new long[1][1][1]; long[][] val1 = get2(); |
315 c.v[0] = new long[1][1]; long[][] val2 = get2(); |
314 c.v[0] = new long[1][1]; long[][] val2 = get2(); |
316 assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2))); |
315 assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2))); |
317 } |
316 } |
318 |
317 |
319 { |
318 { |
320 c.v = new long[1][1][1]; long[][][] val1 = get3(); |
319 c.v = new long[1][1][1]; long[][][] val1 = get3(); |
321 c.v = new long[1][1][1]; long[][][] val2 = get3(); |
320 c.v = new long[1][1][1]; long[][][] val2 = get3(); |
338 public static void test() throws Exception { |
337 public static void test() throws Exception { |
339 { |
338 { |
340 c.v = new long[1][1][1][1]; c.v[0][0][0][0] = 1; long val1 = get(); |
339 c.v = new long[1][1][1][1]; c.v[0][0][0][0] = 1; long val1 = get(); |
341 c.v[0][0][0][0] = 2; long val2 = get(); |
340 c.v[0][0][0][0] = 2; long val2 = get(); |
342 assertEquals(val1, 1); |
341 assertEquals(val1, 1); |
343 assertEquals(val2, (isServerWithStable ? 1 : 2)); |
342 assertEquals(val2, (isStableEnabled ? 1 : 2)); |
344 |
343 |
345 c.v = new long[1][1][1][1]; c.v[0][0][0][0] = 3; long val3 = get(); |
344 c.v = new long[1][1][1][1]; c.v[0][0][0][0] = 3; long val3 = get(); |
346 assertEquals(val3, (isStableEnabled ? (isServerWithStable ? 1 : 2) |
345 assertEquals(val3, (isStableEnabled ? (isStableEnabled ? 1 : 2) |
347 : 3)); |
346 : 3)); |
348 |
347 |
349 c.v[0] = new long[1][1][1]; c.v[0][0][0][0] = 4; long val4 = get(); |
348 c.v[0] = new long[1][1][1]; c.v[0][0][0][0] = 4; long val4 = get(); |
350 assertEquals(val4, (isStableEnabled ? (isServerWithStable ? 1 : 2) |
349 assertEquals(val4, (isStableEnabled ? (isStableEnabled ? 1 : 2) |
351 : 4)); |
350 : 4)); |
352 |
351 |
353 c.v[0][0] = new long[1][1]; c.v[0][0][0][0] = 5; long val5 = get(); |
352 c.v[0][0] = new long[1][1]; c.v[0][0][0][0] = 5; long val5 = get(); |
354 assertEquals(val5, (isStableEnabled ? (isServerWithStable ? 1 : 2) |
353 assertEquals(val5, (isStableEnabled ? (isStableEnabled ? 1 : 2) |
355 : 5)); |
354 : 5)); |
356 |
355 |
357 c.v[0][0][0] = new long[1]; c.v[0][0][0][0] = 6; long val6 = get(); |
356 c.v[0][0][0] = new long[1]; c.v[0][0][0][0] = 6; long val6 = get(); |
358 assertEquals(val6, (isStableEnabled ? (isServerWithStable ? 1 : 2) |
357 assertEquals(val6, (isStableEnabled ? (isStableEnabled ? 1 : 2) |
359 : 6)); |
358 : 6)); |
360 } |
359 } |
361 |
360 |
362 { |
361 { |
363 c.v = new long[1][1][1][1]; long[] val1 = get1(); |
362 c.v = new long[1][1][1][1]; long[] val1 = get1(); |
364 c.v[0][0][0] = new long[1]; long[] val2 = get1(); |
363 c.v[0][0][0] = new long[1]; long[] val2 = get1(); |
365 assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2))); |
364 assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2))); |
366 } |
365 } |
367 |
366 |
368 { |
367 { |
369 c.v = new long[1][1][1][1]; long[][] val1 = get2(); |
368 c.v = new long[1][1][1][1]; long[][] val1 = get2(); |
370 c.v[0][0] = new long[1][1]; long[][] val2 = get2(); |
369 c.v[0][0] = new long[1][1]; long[][] val2 = get2(); |
371 assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2))); |
370 assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2))); |
372 } |
371 } |
373 |
372 |
374 { |
373 { |
375 c.v = new long[1][1][1][1]; long[][][] val1 = get3(); |
374 c.v = new long[1][1][1][1]; long[][][] val1 = get3(); |
376 c.v[0] = new long[1][1][1]; long[][][] val2 = get3(); |
375 c.v[0] = new long[1][1][1]; long[][][] val2 = get3(); |
377 assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2))); |
376 assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2))); |
378 } |
377 } |
379 |
378 |
380 { |
379 { |
381 c.v = new long[1][1][1][1]; long[][][][] val1 = get4(); |
380 c.v = new long[1][1][1][1]; long[][][][] val1 = get4(); |
382 c.v = new long[1][1][1][1]; long[][][][] val2 = get4(); |
381 c.v = new long[1][1][1][1]; long[][][][] val2 = get4(); |
468 |
467 |
469 { |
468 { |
470 c.v = new long[1][1][1]; c.v[0][0] = new long[0]; long[] val1 = get1(); |
469 c.v = new long[1][1][1]; c.v[0][0] = new long[0]; long[] val1 = get1(); |
471 c.v[0][0] = new long[0]; long[] val2 = get1(); |
470 c.v[0][0] = new long[0]; long[] val2 = get1(); |
472 |
471 |
473 assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2))); |
472 assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2))); |
474 } |
473 } |
475 |
474 |
476 { |
475 { |
477 c.v = new long[1][1][1]; c.v[0] = new long[0][0]; long[][] val1 = get2(); |
476 c.v = new long[1][1][1]; c.v[0] = new long[0][0]; long[][] val1 = get2(); |
478 c.v[0] = new long[0][0]; long[][] val2 = get2(); |
477 c.v[0] = new long[0][0]; long[][] val2 = get2(); |
479 |
478 |
480 assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2))); |
479 assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2))); |
481 } |
480 } |
482 |
481 |
483 { |
482 { |
484 c.v = new long[0][0][0]; Object[][] val1 = get3(); |
483 c.v = new long[0][0][0]; Object[][] val1 = get3(); |
485 c.v = new long[0][0][0]; Object[][] val2 = get3(); |
484 c.v = new long[0][0][0]; Object[][] val2 = get3(); |
610 c.v = new A[] { elem, elem }; c.v[0].left = c.v[0].right = c.v; |
609 c.v = new A[] { elem, elem }; c.v[0].left = c.v[0].right = c.v; |
611 elem.a = 1; long val1 = get(); long val2 = get1(); |
610 elem.a = 1; long val1 = get(); long val2 = get1(); |
612 elem.a = 2; long val3 = get(); long val4 = get1(); |
611 elem.a = 2; long val3 = get(); long val4 = get1(); |
613 |
612 |
614 assertEquals(val1, 1); |
613 assertEquals(val1, 1); |
615 assertEquals(val3, (isServerWithStable ? 1 : 2)); |
614 assertEquals(val3, (isStableEnabled ? 1 : 2)); |
616 |
615 |
617 assertEquals(val2, 1); |
616 assertEquals(val2, 1); |
618 assertEquals(val4, 2); |
617 assertEquals(val4, 2); |
619 } |
618 } |
620 } |
619 } |