Patch for jigsaw tests to run on all platforms

Mandy Chung mandy.chung at oracle.com
Sat Mar 12 18:13:26 PST 2011


  This patch fixes the jigsaw tests to run on all platforms and also
replace calls to the java.io.File.renameTo method with
java.nio.file.Files.move method since on windows File.renameTo
fails if the target file exists.

Webrev at:
   http://cr.openjdk.java.net/~mchung/jigsaw/webrevs/jigsaw-tests.00/

The jigsaw tests use gawk but gawk is not installed on Solaris
/bin:/usr/bin and also MKS on windows.   When we use jtreg harness
to run jigsaw tests, it resets the PATH to /bin:/usr/bin by design.
On solaris, 'sh' is an old bourne shell that doesn't support "$(cmd)"
syntax for command substitution and it doesn't support:
    export JAVA_MODULES=z.lib
instead, it has to use
    JAVA_MODULES=z.lib
    export JAVA_MODULES

Unfortunately, we have to live with the limitation and change
the jigsaw shell tests be portable on all platforms and configurations
(use nawk on solaris, and `cmd` syntax and export env. var
as described above.)

With this patch, now the jigsaw tests can run on jprt machines.
There are still few test failures (1 failure on linux and
6 on windows - see below for the list).  I'd like to push this
patch first and resolves the remaining test failures next.
As we're starting to do more jigsaw works, we need these tests
to run on jprt machines on all platforms to catch any regression.

In the next patch, I'll do a pass on the implementation
and clean up to make better use of java.nio.file when appropriate.

In this patch, I also add a new "jigsaw" testset that will run
jdk_jigsaw and jdk_lang test targets.  You can submit a jprt job
from the top repo using the following command:
    jprt submit -control 'langtools hotspot jdk' \
        -buildenv BUILD_MODULES=all \

        -nopostinstall -noqa \
        -testset jigsaw

You can also add additional test targets as you like.  You can
use the default testset (without the -testset option) if you should
run more tests to exercise your change.  You can also set
SKIP_BOOT_CYCLE=false build variable that will build the modular
bootjdk and use it to build the JDK module image.

Mandy

--------------

solaris: name=jdk_jigsaw run=31 pass=31 fail=0 excluded=0
linux:   name=jdk_jigsaw run=31 pass=30 fail=1 excluded=0
windows: name=jdk_jigsaw run=31 pass=25 fail=6 excluded=0


FAILED: org/openjdk/jigsaw/repolist.sh (failed on linux&  windows)
   - this test needs a better way to verify the repository URI
   Comparing with http://localhost:<port>/ doesn't always match.


FAILED: org/openjdk/jigsaw/cli/JpkgArgsTest.java
FAILED: org/openjdk/jigsaw/cli/ModuleFormatTest01.sh
FAILED: org/openjdk/jigsaw/cli/signed-module.sh
FAILED: org/openjdk/jigsaw/pubrepo.sh
FAILED: org/openjdk/jigsaw/remrepo.sh
   - the above fail on windows needs further investigation

The following 2 passed on windows-i586 but failed to clean up
files after test:

org/openjdk/jigsaw/cli/ModuleFormatHeaderHashTest.java
org/openjdk/jigsaw/cli/ModuleFormatTestLeftOverBytes.java




More information about the jigsaw-dev mailing list