annotate test/compiler/6894807/IsInstanceTest.java @ 10988:cd54c7e92908

8015660: Test8009761.java "Failed: init recursive calls: 24. After deopt 25" Summary: Windows reserves and only partially commits thread stack. For detecting more thread stack space for execution, Windows installs one-shot page as guard page just before the current commited edge. It will trigger STACK_OVERFLOW_EXCEPTION when lands on last 4 pages of thread stack space. StackYellowPages default value is 2 on Windows (plus 1 page of StackRedPages, 3 pages guarded by hotspot) so the exception happens one page before Yellow pages. Same route executed second time will have one more page brought in, this leads same execution with different stack depth(interpreter mode). We need match Windows settings so the stack overflow exception will not happen before Yellow pages. Reviewed-by: dholmes Contributed-by: andreas.schoesser@sap.com
author minqi
date Tue, 18 Jun 2013 09:08:35 -0700
parents 495caa35b1b5
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1715
495caa35b1b5 6977952: Test: Sync missing tests from hs16.3 to hs17.x
asaha
parents:
diff changeset
1 /*
495caa35b1b5 6977952: Test: Sync missing tests from hs16.3 to hs17.x
asaha
parents:
diff changeset
2 * @test
495caa35b1b5 6977952: Test: Sync missing tests from hs16.3 to hs17.x
asaha
parents:
diff changeset
3 * @bug 6894807
495caa35b1b5 6977952: Test: Sync missing tests from hs16.3 to hs17.x
asaha
parents:
diff changeset
4 * @summary No ClassCastException for HashAttributeSet constructors if run with -Xcomp
495caa35b1b5 6977952: Test: Sync missing tests from hs16.3 to hs17.x
asaha
parents:
diff changeset
5 * @compile IsInstanceTest.java
495caa35b1b5 6977952: Test: Sync missing tests from hs16.3 to hs17.x
asaha
parents:
diff changeset
6 * @run shell Test6894807.sh
495caa35b1b5 6977952: Test: Sync missing tests from hs16.3 to hs17.x
asaha
parents:
diff changeset
7 */
495caa35b1b5 6977952: Test: Sync missing tests from hs16.3 to hs17.x
asaha
parents:
diff changeset
8
495caa35b1b5 6977952: Test: Sync missing tests from hs16.3 to hs17.x
asaha
parents:
diff changeset
9 public class IsInstanceTest {
495caa35b1b5 6977952: Test: Sync missing tests from hs16.3 to hs17.x
asaha
parents:
diff changeset
10
495caa35b1b5 6977952: Test: Sync missing tests from hs16.3 to hs17.x
asaha
parents:
diff changeset
11 public static void main(String[] args) {
495caa35b1b5 6977952: Test: Sync missing tests from hs16.3 to hs17.x
asaha
parents:
diff changeset
12 BaseInterface baseInterfaceImpl = new BaseInterfaceImpl();
495caa35b1b5 6977952: Test: Sync missing tests from hs16.3 to hs17.x
asaha
parents:
diff changeset
13 for (int i = 0; i < 100000; i++) {
495caa35b1b5 6977952: Test: Sync missing tests from hs16.3 to hs17.x
asaha
parents:
diff changeset
14 if (isInstanceOf(baseInterfaceImpl, ExtendedInterface.class)) {
495caa35b1b5 6977952: Test: Sync missing tests from hs16.3 to hs17.x
asaha
parents:
diff changeset
15 System.out.println("Failed at index:" + i);
495caa35b1b5 6977952: Test: Sync missing tests from hs16.3 to hs17.x
asaha
parents:
diff changeset
16 System.out.println("Arch: "+System.getProperty("os.arch", "")+
495caa35b1b5 6977952: Test: Sync missing tests from hs16.3 to hs17.x
asaha
parents:
diff changeset
17 " OS: "+System.getProperty("os.name", "")+
495caa35b1b5 6977952: Test: Sync missing tests from hs16.3 to hs17.x
asaha
parents:
diff changeset
18 " OSV: "+System.getProperty("os.version", "")+
495caa35b1b5 6977952: Test: Sync missing tests from hs16.3 to hs17.x
asaha
parents:
diff changeset
19 " Cores: "+Runtime.getRuntime().availableProcessors()+
495caa35b1b5 6977952: Test: Sync missing tests from hs16.3 to hs17.x
asaha
parents:
diff changeset
20 " JVM: "+System.getProperty("java.version", "")+" "+System.getProperty("sun.arch.data.model", ""));
495caa35b1b5 6977952: Test: Sync missing tests from hs16.3 to hs17.x
asaha
parents:
diff changeset
21 break;
495caa35b1b5 6977952: Test: Sync missing tests from hs16.3 to hs17.x
asaha
parents:
diff changeset
22 }
495caa35b1b5 6977952: Test: Sync missing tests from hs16.3 to hs17.x
asaha
parents:
diff changeset
23 }
495caa35b1b5 6977952: Test: Sync missing tests from hs16.3 to hs17.x
asaha
parents:
diff changeset
24 System.out.println("Done!");
495caa35b1b5 6977952: Test: Sync missing tests from hs16.3 to hs17.x
asaha
parents:
diff changeset
25 }
495caa35b1b5 6977952: Test: Sync missing tests from hs16.3 to hs17.x
asaha
parents:
diff changeset
26
495caa35b1b5 6977952: Test: Sync missing tests from hs16.3 to hs17.x
asaha
parents:
diff changeset
27 public static boolean isInstanceOf(BaseInterface baseInterfaceImpl, Class... baseInterfaceClasses) {
495caa35b1b5 6977952: Test: Sync missing tests from hs16.3 to hs17.x
asaha
parents:
diff changeset
28 for (Class baseInterfaceClass : baseInterfaceClasses) {
495caa35b1b5 6977952: Test: Sync missing tests from hs16.3 to hs17.x
asaha
parents:
diff changeset
29 if (baseInterfaceClass.isInstance(baseInterfaceImpl)) {
495caa35b1b5 6977952: Test: Sync missing tests from hs16.3 to hs17.x
asaha
parents:
diff changeset
30 return true;
495caa35b1b5 6977952: Test: Sync missing tests from hs16.3 to hs17.x
asaha
parents:
diff changeset
31 }
495caa35b1b5 6977952: Test: Sync missing tests from hs16.3 to hs17.x
asaha
parents:
diff changeset
32 }
495caa35b1b5 6977952: Test: Sync missing tests from hs16.3 to hs17.x
asaha
parents:
diff changeset
33 return false;
495caa35b1b5 6977952: Test: Sync missing tests from hs16.3 to hs17.x
asaha
parents:
diff changeset
34 }
495caa35b1b5 6977952: Test: Sync missing tests from hs16.3 to hs17.x
asaha
parents:
diff changeset
35
495caa35b1b5 6977952: Test: Sync missing tests from hs16.3 to hs17.x
asaha
parents:
diff changeset
36 private interface BaseInterface {
495caa35b1b5 6977952: Test: Sync missing tests from hs16.3 to hs17.x
asaha
parents:
diff changeset
37 }
495caa35b1b5 6977952: Test: Sync missing tests from hs16.3 to hs17.x
asaha
parents:
diff changeset
38
495caa35b1b5 6977952: Test: Sync missing tests from hs16.3 to hs17.x
asaha
parents:
diff changeset
39 private interface ExtendedInterface extends BaseInterface {
495caa35b1b5 6977952: Test: Sync missing tests from hs16.3 to hs17.x
asaha
parents:
diff changeset
40 }
495caa35b1b5 6977952: Test: Sync missing tests from hs16.3 to hs17.x
asaha
parents:
diff changeset
41
495caa35b1b5 6977952: Test: Sync missing tests from hs16.3 to hs17.x
asaha
parents:
diff changeset
42 private static class BaseInterfaceImpl implements BaseInterface {
495caa35b1b5 6977952: Test: Sync missing tests from hs16.3 to hs17.x
asaha
parents:
diff changeset
43 }
495caa35b1b5 6977952: Test: Sync missing tests from hs16.3 to hs17.x
asaha
parents:
diff changeset
44 }