On Tue, 14 Nov 2023 22:45:56 GMT, Mandy Chung <mch...@openjdk.org> wrote:
> This PR includes test fixes for the following issues: > > 8319567: Update java/lang/invoke tests to support vm flags > 8319568: Update java/lang/reflect/exeCallerAccessTest/CallerAccessTest.java > to accept vm flags > 8319672: Several classloader tests ignore VM flags > 8319676: A couple of jdk/modules/incubator/ tests ignore VM flags > 8319677: Test jdk/internal/misc/VM/RuntimeArguments.java should be marked as > flagless > > It converts the test to use `ProcessTools::createTestJavaProcessBuilder` or > `createNativeTestJavaProcessBuilder` so that the test will support VM flags > passed to jtreg. A couple tests that ignore VM flags should use > `ProcessTools::createLimtiedTestJavaProcessBuilder` and marks the test with > `@requires vm.flagless`. test/jdk/java/lang/ClassLoader/getResource/GetResource.java line 166: > 164: Map<String,String> env = pb.environment(); > 165: String value = env.remove("CLASSPATH"); > 166: Looking into the implementation, it seems that the `CLASSPATH` environment variable is only cleared when `test.noclasspath` == true: if (noCP) { // clear CLASSPATH from the env pb.environment().remove("CLASSPATH"); } (This seems to be contrary to the doc comment on `createTestJavaProcessBuilder` though, which says that _unless_ `test.noclasspath` is true, the env. var will be cleared). Should this test be run with `-Dtest.noclasspath=true`? test/jdk/java/lang/invoke/findSpecial/FindSpecialTest.java line 60: > 58: } > 59: String classpath = m1.toString() + File.pathSeparator + > TEST_CLASS_PATH; > 60: executeCommand(createTestJavaProcessBuilder( "-cp", classpath, Suggestion: executeCommand(createTestJavaProcessBuilder("-cp", classpath, test/jdk/java/lang/invoke/lambda/LogGeneratedClassesTest.java line 236: > 234: ProcessBuilder pb = createLimitedTestJavaProcessBuilder( > 235: "-cp", CLASSES.toString(), > 236: "-Djava.security.manager=allow", Suggestion: "-cp", CLASSES.toString(), "-Djava.security.manager=allow", test/jdk/java/lang/invoke/lambda/LogGeneratedClassesTest.java line 241: > 239: executeProcess(pb) > 240: .shouldContain("DUMP_LAMBDA_PROXY_CLASS_FILES is not > writable") > 241: .shouldNotHaveExitValue(0); The old code also seems to test that the error is shown exactly once (and not multiple times). Not sure if that is important to retain? ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/16666#discussion_r1393471863 PR Review Comment: https://git.openjdk.org/jdk/pull/16666#discussion_r1393473298 PR Review Comment: https://git.openjdk.org/jdk/pull/16666#discussion_r1393479834 PR Review Comment: https://git.openjdk.org/jdk/pull/16666#discussion_r1393480987