138 }
139 };
140 private static final WhiteBox WHITE_BOX = WhiteBox.getWhiteBox();
141
142 public abstract void provoke();
143 }
144
145 public static void main(String[] args) throws ClassNotFoundException, InstantiationException,
146 IllegalAccessException, IOException, NoSuchMethodException, InvocationTargetException {
147
148 if (args.length != 1) {
149 throw new Error("Test Bug: Expected GC type wasn't provided as command line argument");
150 }
151 GC gc = GC.valueOf(args[0]);
152
153 Path wrkDir = Paths.get("");
154 URL[] url = {wrkDir.toUri().toURL()};
155 URLClassLoader urlLoader = new URLClassLoader(url);
156
157 Class<?> simpleClassLoaderClass = urlLoader.loadClass(SIMPLE_CLASSLOADER_NAME);
158
159 ClassLoader simpleClassLoader = (ClassLoader) simpleClassLoaderClass
160 .getConstructor(java.lang.ClassLoader.class)
161 .newInstance(TestHumongousClassLoader.class.getClassLoader());
162
163 // Sanity check
164 Asserts.assertEquals(WB.g1IsHumongous(simpleClassLoader), false,
165 "Test Bug: simpleClassLoader is expected to be non-humongous but it's humongous");
166
167
168 Class<?> humongousClassLoaderClass = simpleClassLoader.loadClass(HUMONGOUS_CLASSLOADER_NAME);
169
170 ClassLoader humongousClassLoader = (ClassLoader) humongousClassLoaderClass
171 .getConstructor(java.lang.ClassLoader.class)
172 .newInstance(simpleClassLoader);
173
174 // Sanity check
175 Asserts.assertEquals(WB.g1IsHumongous(humongousClassLoader), true,
176 "Test Bug: humongousClassLoader is expected to be humongous but it's non-humongous");
|
138 }
139 };
140 private static final WhiteBox WHITE_BOX = WhiteBox.getWhiteBox();
141
142 public abstract void provoke();
143 }
144
145 public static void main(String[] args) throws ClassNotFoundException, InstantiationException,
146 IllegalAccessException, IOException, NoSuchMethodException, InvocationTargetException {
147
148 if (args.length != 1) {
149 throw new Error("Test Bug: Expected GC type wasn't provided as command line argument");
150 }
151 GC gc = GC.valueOf(args[0]);
152
153 Path wrkDir = Paths.get("");
154 URL[] url = {wrkDir.toUri().toURL()};
155 URLClassLoader urlLoader = new URLClassLoader(url);
156
157 Class<?> simpleClassLoaderClass = urlLoader.loadClass(SIMPLE_CLASSLOADER_NAME);
158 urlLoader.close();
159
160 ClassLoader simpleClassLoader = (ClassLoader) simpleClassLoaderClass
161 .getConstructor(java.lang.ClassLoader.class)
162 .newInstance(TestHumongousClassLoader.class.getClassLoader());
163
164 // Sanity check
165 Asserts.assertEquals(WB.g1IsHumongous(simpleClassLoader), false,
166 "Test Bug: simpleClassLoader is expected to be non-humongous but it's humongous");
167
168
169 Class<?> humongousClassLoaderClass = simpleClassLoader.loadClass(HUMONGOUS_CLASSLOADER_NAME);
170
171 ClassLoader humongousClassLoader = (ClassLoader) humongousClassLoaderClass
172 .getConstructor(java.lang.ClassLoader.class)
173 .newInstance(simpleClassLoader);
174
175 // Sanity check
176 Asserts.assertEquals(WB.g1IsHumongous(humongousClassLoader), true,
177 "Test Bug: humongousClassLoader is expected to be humongous but it's non-humongous");
|