Hi Alan,

Here is the result of one of the tests run in initial state (no fix applied)

1) no module limitation

jtreg -jdk:/home/skovalev/TRASH/jdk-9 -verbose:all /home/skovalev/repos/jake/jdk/test/java/util/jar/JarFile/mrjar/MultiReleaseJarAPI.java

TEST RESULT: Passed. Execution successful

2) limit modules java.base

jtreg -jdk:/home/skovalev/jdk-9 -verbose:all -javaoptions:"--limit-modules java.base" /home/skovalev/repos/jake/jdk/test/java/util/jar/JarFile/mrjar/MultiReleaseJarAPI.java

STDOUT:
Error occurred during initialization of VM
java.lang.module.ResolutionException: Module java.compiler not found, required by jdk.compiler
        at java.lang.module.Resolver.fail(java.base@9-ea/Resolver.java:790)
at java.lang.module.Resolver.resolve(java.base@9-ea/Resolver.java:138) at java.lang.module.Resolver.resolveRequires(java.base@9-ea/Resolver.java:108) at java.lang.module.Configuration.resolveRequiresAndUses(java.base@9-ea/Configuration.java:370) at java.lang.module.ModuleDescriptor$1.resolveRequiresAndUses(java.base@9-ea/ModuleDescriptor.java:1986) at jdk.internal.module.ModuleBootstrap.boot(java.base@9-ea/ModuleBootstrap.java:263)
        at java.lang.System.initPhase2(java.base@9-ea/System.java:1927)

3) In case I limiting modules java.base and jdk.compiler only (with modified TEST.prioperties)

jtreg -jdk:/home/skovalev/jdk-9 -verbose:all -javaoptions:"--limit-modules java.base,jdk.compiler" /home/skovalev/repos/jdk9-dev/jdk/test/java/util/jar/JarFile/mrjar/MultiReleaseJarAPI.java

config MultiReleaseJarAPI.initialize(): failure
java.lang.NoClassDefFoundError: jdk/security/jarsigner/JarSigner$Builder
at CreateMultiReleaseTestJars.buildSignedMultiReleaseJar(CreateMultiReleaseTestJars.java:147)
        at MultiReleaseJarAPI.initialize(MultiReleaseJarAPI.java:74)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(java.base@9-ea/Native Method) at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(java.base@9-ea/NativeMethodAccessorImpl.java:62) at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(java.base@9-ea/DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(java.base@9-ea/Method.java:535)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:86) at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:515) at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:216) at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:143) at org.testng.internal.TestMethodWorker.invokeBeforeClassMethods(TestMethodWorker.java:178) at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:108)
        at org.testng.TestRunner.privateRun(TestRunner.java:778)
        at org.testng.TestRunner.run(TestRunner.java:632)
        at org.testng.SuiteRunner.runTest(SuiteRunner.java:366)
        at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:361)
        at org.testng.SuiteRunner.privateRun(SuiteRunner.java:319)
        at org.testng.SuiteRunner.run(SuiteRunner.java:268)
        at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
        at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
        at org.testng.TestNG.runSuitesSequentially(TestNG.java:1222)
        at org.testng.TestNG.runSuitesLocally(TestNG.java:1147)
        at org.testng.TestNG.runSuites(TestNG.java:1072)
        at org.testng.TestNG.run(TestNG.java:1044)
at com.sun.javatest.regtest.TestNGAction$TestNGRunner.main(TestNGAction.java:220) at com.sun.javatest.regtest.TestNGAction$TestNGRunner.main(TestNGAction.java:184) at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(java.base@9-ea/Native Method) at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(java.base@9-ea/NativeMethodAccessorImpl.java:62) at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(java.base@9-ea/DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(java.base@9-ea/Method.java:535)
at com.sun.javatest.regtest.agent.MainWrapper$MainThread.run(MainWrapper.java:110)
        at java.lang.Thread.run(java.base@9-ea/Thread.java:843)



25.09.16 17:48, Alan Bateman wrote:
On 25/09/2016 13:53, Sergei Kovalev wrote:

Hi Alan,

The modules list in mrar/TEST.properties guarantee that jtreg add "--add-module @modules" command line option during test execution. If you create custom JRE that does not contains the modules, the tests fails. The proposed fix guarantee that jtreg skips the tests if no listed modules found.
Are you sure about this? I believe the original intent was that jtreg would select the test to run when the runtime has the required modules (@modules just overrides the value of "modules" that is read from TEST.properties).

In any case, it should be "@modules java.compiler", no need to include /javax.tools because that package is exported.

-Alan

--
With best regards,
Sergei

Reply via email to