test/org/openjdk/jigsaw/hello-repo.sh

Print this page

        

*** 20,30 **** # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA # or visit www.oracle.com if you need additional information or have any # questions. # @test ! # @summary Basic test of repo on file system # @run shell hello-repo.sh set -e BIN=${TESTJAVA:-../../../../build}/bin --- 20,30 ---- # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA # or visit www.oracle.com if you need additional information or have any # questions. # @test ! # @summary Basic test of repo on file system, and resolver filtering on OS/ARCH # @run shell hello-repo.sh set -e BIN=${TESTJAVA:-../../../../build}/bin
*** 35,44 **** --- 35,51 ---- d=`dirname $1` if [ ! -d $d ]; then mkdir -p $d; fi cat - >$1 } + compare() { + if [ "$1" != "$2" ]; then + echo "FAIL: expected [$1], got [$2]" + exit 1 + fi + } + rm -rf z.* mk z.src/app/module-info.java <<EOF module app @ 1.0 { requires foolib;
*** 46,78 **** } EOF mk z.src/app/com/app/Main.java <<EOF package com.app; public class Main { public static void main(String[] args) { ! System.out.println("Hello"); } } EOF ! mk z.src/foolib/module-info.java <<EOF module foolib @ 1.0 { } EOF mkdir z.mods $BIN/javac -source 8 -d z.mods -modulepath z.modules \ ! `find z.src -name '*.java'` mkdir z.pkgs $BIN/jpkg ${TESTTOOLVMOPTS} -d z.pkgs -m z.mods/app jmod app ! $BIN/jpkg ${TESTTOOLVMOPTS} -d z.pkgs -m z.mods/foolib jmod foolib $BIN/jrepo ${TESTTOOLVMOPTS} z.repo create $BIN/jrepo ${TESTTOOLVMOPTS} z.repo add z.pkgs/*.jmod $BIN/jmod ${TESTTOOLVMOPTS} create -L z.mlib $BIN/jmod ${TESTTOOLVMOPTS} add-repo -L z.mlib z.repo $BIN/jmod ${TESTTOOLVMOPTS} -L z.mlib install -n app $BIN/jmod ${TESTTOOLVMOPTS} -L z.mlib install app ! $BIN/java ${VMOPTS} -L z.mlib -m app --- 53,135 ---- } EOF mk z.src/app/com/app/Main.java <<EOF package com.app; + import java.lang.reflect.Module; public class Main { public static void main(String[] args) { ! System.out.println("Hello, " + com.foolib.Lib.text()); } } EOF ! mk z.src/foolib1/module-info.java <<EOF module foolib @ 1.0 { + exports com.foolib; } EOF + mk z.src/foolib1/com/foolib/Lib.java <<EOF + package com.foolib; + public class Lib { + public static String text() { + return "foolib @ 1"; + } + } + EOF + + mk z.src/foolib2/module-info.java <<EOF + module foolib @ 2.0 { + exports com.foolib; + } + EOF + + mk z.src/foolib2/com/foolib/Lib.java <<EOF + package com.foolib; + public class Lib { + public static String text() { + return "foolib @ 2"; + } + } + EOF + + ## Two versions of foolib in the repo, ensure resolver picks the correct version + mkdir z.mods $BIN/javac -source 8 -d z.mods -modulepath z.modules \ ! `find z.src/app z.src/foolib1 -name '*.java'` ! mkdir z.mods/foolib2 ! $BIN/javac -source 8 -d z.mods/foolib2 `find z.src/foolib2 -name '*.java'` mkdir z.pkgs $BIN/jpkg ${TESTTOOLVMOPTS} -d z.pkgs -m z.mods/app jmod app ! $BIN/jpkg ${TESTTOOLVMOPTS} -d z.pkgs -m z.mods/foolib1 jmod foolib ! $BIN/jpkg ${TESTTOOLVMOPTS} -d z.pkgs -m z.mods/foolib2 jmod foolib $BIN/jrepo ${TESTTOOLVMOPTS} z.repo create $BIN/jrepo ${TESTTOOLVMOPTS} z.repo add z.pkgs/*.jmod $BIN/jmod ${TESTTOOLVMOPTS} create -L z.mlib $BIN/jmod ${TESTTOOLVMOPTS} add-repo -L z.mlib z.repo $BIN/jmod ${TESTTOOLVMOPTS} -L z.mlib install -n app $BIN/jmod ${TESTTOOLVMOPTS} -L z.mlib install app ! OUT=`$BIN/java ${VMOPTS} -L z.mlib -m app | tr -d ' \n\r'` ! compare Hello,foolib@2 $OUT ! ! ## create OS/ARCH specific library and jmods ! mkdir z.arch_pkgs ! rm -rf z.mlib z.repo ! $BIN/jpkg ${TESTTOOLVMOPTS} -d z.arch_pkgs -os Bos -arch Barch -m z.mods/app jmod app ! $BIN/jpkg ${TESTTOOLVMOPTS} -d z.arch_pkgs -os Bos -arch Barch -m z.mods/foolib1 jmod foolib ! $BIN/jpkg ${TESTTOOLVMOPTS} -d z.arch_pkgs -os Cos -arch Carch -m z.mods/foolib2 jmod foolib ! ! $BIN/jrepo ${TESTTOOLVMOPTS} z.repo create ! $BIN/jrepo ${TESTTOOLVMOPTS} z.repo add z.arch_pkgs/*.jmod ! ! $BIN/jmod ${TESTTOOLVMOPTS} create -L z.mlib -os Bos -arch Barch ! $BIN/jmod ${TESTTOOLVMOPTS} add-repo -L z.mlib z.repo ! $BIN/jmod ${TESTTOOLVMOPTS} -L z.mlib install -n app ! $BIN/jmod ${TESTTOOLVMOPTS} -L z.mlib install app ! OUT=`$BIN/java ${VMOPTS} -L z.mlib -m app | tr -d ' \n\r'` ! compare Hello,foolib@1 $OUT !