On Tue, 20 Sep 2022 14:23:22 GMT, Kevin Rushforth <k...@openjdk.org> wrote:
>> Leslie Zhai has updated the pull request incrementally with one additional >> commit since the last revision: >> >> 8293910: Try --upgrade-module-path and --patch-module but still failed > > How does the test fail? Does it actually find and load the "mockfx" classes, > but subsequently fail? Or is it unable to patch/upgrade the javafx.graphics > module with the "mockfx" classes? Hi @kevinrushforth I updated the testcase to check whether or not FX is part of jdk: // Check whether or not FX is part of jdk try { fxClass = Class.forName(FX_MARKER_CLASS); } catch (ClassNotFoundException ex) { // do nothing } if (fxClass != null) { System.out.println("JavaFX modules included in the JDK"); } And tried to `--upgrade-module-path` in the `doFxCompile` when JavaFX modules included in the JDK: static void doFxCompile(String...compilerArgs) { if (fxClass == null) { compileFXModule(); } List<String> fxCompilerArgs = new ArrayList<>(); if (fxClass == null) { fxCompilerArgs.add("--module-path=" + MODULE_DIR); } else { fxCompilerArgs.add("--upgrade-module-path=" + IMPORT_MODULE_DIR); } fxCompilerArgs.add("--add-modules=javafx.graphics"); fxCompilerArgs.addAll(Arrays.asList(compilerArgs)); compile(fxCompilerArgs.toArray(new String[fxCompilerArgs.size()])); } Also tried `--patch-module` in the `doFxExec`: static TestResult doFxExec(String...cmds) { List<String> fxCmds = new ArrayList<>(); fxCmds.addAll(Arrays.asList(cmds)); if (fxClass == null) { fxCmds.add(1, "--module-path=" + MODULE_DIR); fxCmds.add(2, "--add-modules=javafx.graphics"); } else { fxCmds.add(1, "--upgrade-module-path=" + IMPORT_MODULE_DIR); fxCmds.add(2, "--patch-module=javafx.graphics=" + IMPORT_MODULE_DIR + "/javafx.graphics.jmod"); } return doExec(fxCmds.toArray(new String[fxCmds.size()])); } But it might be unable to patch/upgrade the javafx.graphics module with the "mockfx" classes: STDOUT: _____________________________________________ test# 1- Main method: public static void main(String[] args) { launch(args); } Main-Class: helloworld.HelloWorld renaming fxtest.jar to testBasicFXApp_useCP_noJAC-1-fxtest.jar FAIL: testBasicFXApp_useCP_noJAC:1 : test with helloworld.HelloWorld Test static void FXLauncherTest.testBasicFXApp() throws java.lang.Exception failed: java.lang.reflect.InvocationTargetException ----begin detailed exceptions---- java.lang.reflect.InvocationTargetException at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:119) at java.base/java.lang.reflect.Method.invoke(Method.java:578) at TestHelper.run(TestHelper.java:200) at FXLauncherTest.main(FXLauncherTest.java:469) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) at java.base/java.lang.reflect.Method.invoke(Method.java:578) at com.sun.javatest.regtest.agent.MainWrapper$MainThread.run(MainWrapper.java:125) at java.base/java.lang.Thread.run(Thread.java:1589) Caused by: java.lang.Exception: Failed: testBasicFXApp_useCP_noJAC:1 at FXLauncherTest.checkStatus(FXLauncherTest.java:205) at FXLauncherTest.testBasicFXApp(FXLauncherTest.java:311) at FXLauncherTest.testBasicFXApp(FXLauncherTest.java:266) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ... 7 more ----end detailed exceptions---- _____________________________________________ test# 2- Main method: public static void main(String[] args) { launch(args); } Main-Class: helloworld.ExtHello renaming fxtest.jar to testExtendFXApp_useCP_noJAC-2-fxtest.jar FAIL: testExtendFXApp_useCP_noJAC:2 : test with helloworld.ExtHello Test static void FXLauncherTest.testExtendFXApp() throws java.lang.Exception failed: java.lang.reflect.InvocationTargetException ----begin detailed exceptions---- java.lang.reflect.InvocationTargetException at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:119) at java.base/java.lang.reflect.Method.invoke(Method.java:578) at TestHelper.run(TestHelper.java:200) at FXLauncherTest.main(FXLauncherTest.java:469) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) at java.base/java.lang.reflect.Method.invoke(Method.java:578) at com.sun.javatest.regtest.agent.MainWrapper$MainThread.run(MainWrapper.java:125) at java.base/java.lang.Thread.run(Thread.java:1589) Caused by: java.lang.Exception: Failed: testExtendFXApp_useCP_noJAC:2 at FXLauncherTest.checkStatus(FXLauncherTest.java:205) at FXLauncherTest.testExtendFXApp(FXLauncherTest.java:369) at FXLauncherTest.testExtendFXApp(FXLauncherTest.java:323) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ... 7 more ----end detailed exceptions---- _____________________________________________ test# 3: abort on missing Main-Class JavaFX-Application-Class: helloworld.HelloWorld renaming fxtest.jar to testMissingMC-3-fxtest.jar FAIL: testMissingMC:3 : test with helloworld.HelloWorld Test static void FXLauncherTest.testMissingMC() throws java.lang.Exception failed: java.lang.reflect.InvocationTargetException ----begin detailed exceptions---- java.lang.reflect.InvocationTargetException at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:119) at java.base/java.lang.reflect.Method.invoke(Method.java:578) at TestHelper.run(TestHelper.java:200) at FXLauncherTest.main(FXLauncherTest.java:469) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) at java.base/java.lang.reflect.Method.invoke(Method.java:578) at com.sun.javatest.regtest.agent.MainWrapper$MainThread.run(MainWrapper.java:125) at java.base/java.lang.Thread.run(Thread.java:1589) Caused by: java.lang.Exception: Failed: testMissingMC:3 at FXLauncherTest.checkStatus(FXLauncherTest.java:205) at FXLauncherTest.testMissingMC(FXLauncherTest.java:399) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ... 7 more ----end detailed exceptions---- _____________________________________________ test# 4: test for erroneous jfxrt.jar loading Main-Class: helloworld.HelloJava renaming fxtest.jar to testExtraneousJars_useCP-4-fxtest.jar FAIL: testExtraneousJars_useCP:4 : test with helloworld.HelloJava Test static void FXLauncherTest.testExtraneousJars() throws java.lang.Exception failed: java.lang.reflect.InvocationTargetException ----begin detailed exceptions---- java.lang.reflect.InvocationTargetException at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:119) at java.base/java.lang.reflect.Method.invoke(Method.java:578) at TestHelper.run(TestHelper.java:200) at FXLauncherTest.main(FXLauncherTest.java:469) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) at java.base/java.lang.reflect.Method.invoke(Method.java:578) at com.sun.javatest.regtest.agent.MainWrapper$MainThread.run(MainWrapper.java:125) at java.base/java.lang.Thread.run(Thread.java:1589) Caused by: java.lang.Exception: Failed: testExtraneousJars_useCP:4 at FXLauncherTest.checkStatus(FXLauncherTest.java:205) at FXLauncherTest.testExtraneousJars(FXLauncherTest.java:453) at FXLauncherTest.testExtraneousJars(FXLauncherTest.java:410) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ... 7 more ----end detailed exceptions---- Total: Passed: 0, Failed 4 STDERR: Executed command: /home/loongson/private/jdk-ls/build/linux-loongarch64-server-fastdebug/images/jdk/bin/java --module-path=mods --add-modules=javafx.graphics -cp /home/loongson/private/jdk-ls/build/linux-loongarch64-server-fastdebug/test-support/jtreg_test_jdk_tools_launcher_FXLauncherTest_java/scratch/0/fxtest.jar helloworld.HelloWorld one two ###TestError###: test did not return 0 exit value ++++Begin Test Info++++ Test Status: FAIL ++++Test Environment++++ PATH=/bin:/usr/bin:/usr/sbin DISPLAY=:0 TEST_IMAGE_DIR=/home/loongson/private/jdk-ls/build/linux-loongarch64-server-fastdebug/images/test _JVM_DWARF_PATH=/home/loongson/private/jdk-ls/build/linux-loongarch64-server-fastdebug/images/symbols XMODIFIERS=@im=fcitx LC_ALL=C CLASSPATH=/home/loongson/private/jdk-ls/build/linux-loongarch64-server-fastdebug/test-support/jtreg_test_jdk_tools_launcher_FXLauncherTest_java/classes/0/tools/launcher/FXLauncherTest.d:/home/loongson/private/jdk-ls/test/jdk/tools/launcher:/home/loongson/private/jdk-ls/build/linux-loongarch64-server-fastdebug/test-support/jtreg_test_jdk_tools_launcher_FXLauncherTest_java/classes/0/test/lib:/home/loongson/private/jdk-ls/test/lib:/home/loongson/public/jtreg/lib/javatest.jar:/home/loongson/public/jtreg/lib/jtreg.jar LANG=zh_CN.UTF-8 HOME=/home/loongson ++++Test Output++++ Error occurred during initialization of boot layer java.lang.module.FindException: Unable to compute the hash of module javafx.graphics ++++Test Stack Trace++++ java.lang.Throwable: current stack of the test TestHelper.doExec(TestHelper.java:476) TestHelper.doExec(TestHelper.java:437) FXLauncherTest.doFxExec(FXLauncherTest.java:252) FXLauncherTest.testBasicFXApp(FXLauncherTest.java:292) FXLauncherTest.testBasicFXApp(FXLauncherTest.java:266) java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) java.base/java.lang.reflect.Method.invoke(Method.java:578) TestHelper.run(TestHelper.java:200) FXLauncherTest.main(FXLauncherTest.java:469) java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) java.base/java.lang.reflect.Method.invoke(Method.java:578) com.sun.javatest.regtest.agent.MainWrapper$MainThread.run(MainWrapper.java:125) java.base/java.lang.Thread.run(Thread.java:1589) ++++End of Test Info++++ Executed command: /home/loongson/private/jdk-ls/build/linux-loongarch64-server-fastdebug/images/jdk/bin/java --module-path=mods --add-modules=javafx.graphics -cp /home/loongson/private/jdk-ls/build/linux-loongarch64-server-fastdebug/test-support/jtreg_test_jdk_tools_launcher_FXLauncherTest_java/scratch/0/fxtest.jar helloworld.ExtHello one two ###TestError###: test did not return 0 exit value ++++Begin Test Info++++ Test Status: FAIL ++++Test Environment++++ PATH=/bin:/usr/bin:/usr/sbin DISPLAY=:0 TEST_IMAGE_DIR=/home/loongson/private/jdk-ls/build/linux-loongarch64-server-fastdebug/images/test _JVM_DWARF_PATH=/home/loongson/private/jdk-ls/build/linux-loongarch64-server-fastdebug/images/symbols XMODIFIERS=@im=fcitx LC_ALL=C CLASSPATH=/home/loongson/private/jdk-ls/build/linux-loongarch64-server-fastdebug/test-support/jtreg_test_jdk_tools_launcher_FXLauncherTest_java/classes/0/tools/launcher/FXLauncherTest.d:/home/loongson/private/jdk-ls/test/jdk/tools/launcher:/home/loongson/private/jdk-ls/build/linux-loongarch64-server-fastdebug/test-support/jtreg_test_jdk_tools_launcher_FXLauncherTest_java/classes/0/test/lib:/home/loongson/private/jdk-ls/test/lib:/home/loongson/public/jtreg/lib/javatest.jar:/home/loongson/public/jtreg/lib/jtreg.jar LANG=zh_CN.UTF-8 HOME=/home/loongson ++++Test Output++++ Error occurred during initialization of boot layer java.lang.module.FindException: Unable to compute the hash of module javafx.graphics ++++Test Stack Trace++++ java.lang.Throwable: current stack of the test TestHelper.doExec(TestHelper.java:476) TestHelper.doExec(TestHelper.java:437) FXLauncherTest.doFxExec(FXLauncherTest.java:252) FXLauncherTest.testExtendFXApp(FXLauncherTest.java:350) FXLauncherTest.testExtendFXApp(FXLauncherTest.java:323) java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) java.base/java.lang.reflect.Method.invoke(Method.java:578) TestHelper.run(TestHelper.java:200) FXLauncherTest.main(FXLauncherTest.java:469) java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) java.base/java.lang.reflect.Method.invoke(Method.java:578) com.sun.javatest.regtest.agent.MainWrapper$MainThread.run(MainWrapper.java:125) java.base/java.lang.Thread.run(Thread.java:1589) ++++End of Test Info++++ ERROR: launcher did not abort properly Executed command: /home/loongson/private/jdk-ls/build/linux-loongarch64-server-fastdebug/images/jdk/bin/java --module-path=mods --add-modules=javafx.graphics -jar /home/loongson/private/jdk-ls/build/linux-loongarch64-server-fastdebug/test-support/jtreg_test_jdk_tools_launcher_FXLauncherTest_java/scratch/0/fxtest.jar one two ###TestError###: string <no main manifest attribute> not found ++++Begin Test Info++++ Test Status: FAIL ++++Test Environment++++ PATH=/bin:/usr/bin:/usr/sbin DISPLAY=:0 TEST_IMAGE_DIR=/home/loongson/private/jdk-ls/build/linux-loongarch64-server-fastdebug/images/test _JVM_DWARF_PATH=/home/loongson/private/jdk-ls/build/linux-loongarch64-server-fastdebug/images/symbols XMODIFIERS=@im=fcitx LC_ALL=C CLASSPATH=/home/loongson/private/jdk-ls/build/linux-loongarch64-server-fastdebug/test-support/jtreg_test_jdk_tools_launcher_FXLauncherTest_java/classes/0/tools/launcher/FXLauncherTest.d:/home/loongson/private/jdk-ls/test/jdk/tools/launcher:/home/loongson/private/jdk-ls/build/linux-loongarch64-server-fastdebug/test-support/jtreg_test_jdk_tools_launcher_FXLauncherTest_java/classes/0/test/lib:/home/loongson/private/jdk-ls/test/lib:/home/loongson/public/jtreg/lib/javatest.jar:/home/loongson/public/jtreg/lib/jtreg.jar LANG=zh_CN.UTF-8 HOME=/home/loongson ++++Test Output++++ Error occurred during initialization of boot layer java.lang.module.FindException: Unable to compute the hash of module javafx.graphics ++++Test Stack Trace++++ java.lang.Throwable: current stack of the test TestHelper.doExec(TestHelper.java:476) TestHelper.doExec(TestHelper.java:437) FXLauncherTest.doFxExec(FXLauncherTest.java:252) FXLauncherTest.testMissingMC(FXLauncherTest.java:390) java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) java.base/java.lang.reflect.Method.invoke(Method.java:578) TestHelper.run(TestHelper.java:200) FXLauncherTest.main(FXLauncherTest.java:469) java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) java.base/java.lang.reflect.Method.invoke(Method.java:578) com.sun.javatest.regtest.agent.MainWrapper$MainThread.run(MainWrapper.java:125) java.base/java.lang.Thread.run(Thread.java:1589) ++++End of Test Info++++ Executed command: /home/loongson/private/jdk-ls/build/linux-loongarch64-server-fastdebug/images/jdk/bin/java --module-path=mods --add-modules=javafx.graphics -verbose:class -cp /home/loongson/private/jdk-ls/build/linux-loongarch64-server-fastdebug/test-support/jtreg_test_jdk_tools_launcher_FXLauncherTest_java/scratch/0/fxtest.jar helloworld.HelloJava one two ###TestError###: test did not return 0 exit value ++++Begin Test Info++++ Test Status: FAIL ++++Test Environment++++ PATH=/bin:/usr/bin:/usr/sbin DISPLAY=:0 TEST_IMAGE_DIR=/home/loongson/private/jdk-ls/build/linux-loongarch64-server-fastdebug/images/test _JVM_DWARF_PATH=/home/loongson/private/jdk-ls/build/linux-loongarch64-server-fastdebug/images/symbols XMODIFIERS=@im=fcitx LC_ALL=C CLASSPATH=/home/loongson/private/jdk-ls/build/linux-loongarch64-server-fastdebug/test-support/jtreg_test_jdk_tools_launcher_FXLauncherTest_java/classes/0/tools/launcher/FXLauncherTest.d:/home/loongson/private/jdk-ls/test/jdk/tools/launcher:/home/loongson/private/jdk-ls/build/linux-loongarch64-server-fastdebug/test-support/jtreg_test_jdk_tools_launcher_FXLauncherTest_java/classes/0/test/lib:/home/loongson/private/jdk-ls/test/lib:/home/loongson/public/jtreg/lib/javatest.jar:/home/loongson/public/jtreg/lib/jtreg.jar LANG=zh_CN.UTF-8 HOME=/home/loongson ++++Test Output++++ [0.016s][info][class,load] java.lang.Object source: shared objects file [0.019s][info][class,load] java.io.Serializable source: shared objects file ... Thanks, Leslie Zhai ------------- PR: https://git.openjdk.org/jdk/pull/10299