< prev index next >

test/jdk/tools/jpackage/run_tests.sh

Print this page




  24 
  25 
  26 find_all_packaging_tests ()
  27 {
  28   find_packaging_tests share
  29   case "$(uname -s)" in
  30     Darwin)
  31       find_packaging_tests macosx;;
  32     Linux)
  33       find_packaging_tests linux;;
  34     CYGWIN*|MINGW32*|MSYS*)
  35       find_packaging_tests windows;;
  36     *)
  37       fatal Failed to detect OS type;;
  38   esac
  39 }
  40 
  41 
  42 help_usage ()
  43 {
  44   echo "Usage: `basename $0` [options] [test_names]"
  45   echo "Options:"
  46   echo "  -h              - print this message"
  47   echo "  -v              - verbose output"
  48   echo "  -c              - keep jtreg cache"
  49   echo "  -a              - run all, not only SQE tests"
  50   echo "  -d              - dry run. Print jtreg command line, but don't execute it"
  51   echo "  -t <jdk>        - path to JDK to be tested [ mandatory ]"
  52   echo "  -j <openjdk>    - path to local copy of openjdk repo with jpackage jtreg tests"
  53   echo "                    Optional, default is openjdk repo where this script resides"
  54   echo "  -o <outputdir>  - path to folder where to copy artifacts for testing."
  55   echo "                    Optional, default is the current directory."
  56   echo '  -r <runtimedir> - value for `jpackage.test.runtime-image` property.'
  57   echo "                    Optional, for jtreg tests debug purposes only."
  58   echo '  -l <logfile>    - value for `jpackage.test.logfile` property.'
  59   echo "                    Optional, for jtreg tests debug purposes only."
  60   echo "  -m <mode>       - mode to run jtreg tests."
  61   echo '                    Should be one of `create`, `update`, `verify-install` or `verify-uninstall`.'
  62   echo '                    Optional, default mode is `update`.'
  63   echo '                    - `create`'
  64   echo '                      Remove all package bundles from the output directory before running jtreg tests.'
  65   echo '                    - `update`'
  66   echo '                      Run jtreg tests and overrite existing package bundles in the output directory.'
  67   echo '                    - `verify-install`'
  68   echo '                      Verify installed packages created with the previous run of the script.'
  69   echo '                    - `verify-uninstall`'
  70   echo '                      Verify packages created with the previous run of the script were uninstalled cleanly.'
  71   echo '                    - `print-default-tests`'
  72   echo '                      Print default list of packaging tests and exit.'
  73 }
  74 
  75 error ()
  76 {
  77   echo "$@" > /dev/stderr
  78 }
  79 
  80 fatal ()
  81 {
  82   error "$@"
  83   exit 1
  84 }
  85 
  86 fatal_with_help_usage ()
  87 {
  88   error "$@"
  89   help_usage
  90   exit 1


 118 # Path to local copy of open jdk repo with jpackage jtreg tests
 119 # hg clone http://hg.openjdk.java.net/jdk/sandbox
 120 # cd sandbox; hg update -r JDK-8200758-branch
 121 open_jdk_with_jpackage_jtreg_tests=$(dirname $0)/../../../../
 122 
 123 # Directory where to save artifacts for testing.
 124 output_dir=$PWD
 125 
 126 # Script and jtreg debug.
 127 verbose=
 128 jtreg_verbose="-verbose:fail,error,summary"
 129 
 130 keep_jtreg_cache=
 131 
 132 # Mode in which to run jtreg tests
 133 mode=update
 134 
 135 # jtreg extra arguments
 136 declare -a jtreg_args
 137 
 138 # Run all tests



 139 run_all_tests=
 140 
 141 mapfile -t tests < <(find_all_packaging_tests)
 142 
 143 while getopts "vahdct:j:o:r:m:l:" argname; do
 144   case "$argname" in
 145     v) verbose=yes;;
 146     a) run_all_tests=yes;;
 147     d) dry_run=yes;;
 148     c) keep_jtreg_cache=yes;;
 149     t) test_jdk="$OPTARG";;
 150     j) open_jdk_with_jpackage_jtreg_tests="$OPTARG";;
 151     o) output_dir="$OPTARG";;
 152     r) runtime_dir="$OPTARG";;
 153     l) logfile="$OPTARG";;
 154     m) mode="$OPTARG";;
 155     h) help_usage; exit 0;;
 156     ?) help_usage; exit 1;;
 157   esac
 158 done


 189 
 190 if [ -n "$runtime_dir" ]; then
 191   if [ ! -d "$runtime_dir" ]; then
 192     fatal 'Value of `-r` option is set to non-existing directory'.
 193   fi
 194   jtreg_args+=("-Djpackage.test.runtime-image=$(to_native_path "$(cd "$runtime_dir" && pwd)")")
 195 fi
 196 
 197 if [ -n "$logfile" ]; then
 198   if [ ! -d "$(dirname "$logfile")" ]; then
 199     fatal 'Value of `-l` option specified a file in non-existing directory'.
 200   fi
 201   logfile="$(cd "$(dirname "$logfile")" && pwd)/$(basename "$logfile")"
 202   jtreg_args+=("-Djpackage.test.logfile=$(to_native_path "$logfile")")
 203 fi
 204 
 205 if [ "$mode" = create ]; then
 206   true
 207 elif [ "$mode" = update ]; then
 208   true
 209 elif [ "$mode" = verify-install ]; then
 210   jtreg_args+=("-Djpackage.test.action=$mode")
 211 elif [ "$mode" = verify-uninstall ]; then
 212   jtreg_args+=("-Djpackage.test.action=$mode")
 213 else
 214   fatal_with_help_usage 'Invalid value of -m option:' [$mode]
 215 fi
 216 
 217 if [ -z "$run_all_tests" ]; then
 218   jtreg_args+=(-Djpackage.test.SQETest=yes)
 219 fi
 220 
 221 # All remaining command line arguments are tests to run that should override the defaults




 222 [ $# -eq 0 ] || tests=($@)
 223 
 224 
 225 installJtreg ()
 226 {
 227   # Install jtreg if missing
 228   if [ -z "$JT_HOME" ]; then
 229     if [ ! -f "$jtreg_jar" ]; then
 230       exec_command mkdir -p "$workdir"
 231       if [[ ${jtreg_bundle: -7} == ".tar.gz" ]]; then
 232         exec_command "(" cd "$workdir" "&&" wget "$jtreg_bundle" "&&" tar -xzf "$(basename $jtreg_bundle)" ";" rm -f "$(basename $jtreg_bundle)" ")"
 233       else
 234         if [[ ${jtreg_bundle: -4} == ".zip" ]]; then
 235           exec_command "(" cd "$workdir" "&&" wget "$jtreg_bundle" "&&" unzip "$(basename $jtreg_bundle)" ";" rm -f "$(basename $jtreg_bundle)" ")"
 236         else
 237           fatal 'Unsupported extension of JREG bundle ['$JT_BUNDLE_URL']. Only *.zip or *.tar.gz is supported.'
 238         fi
 239       fi
 240     fi
 241   else




  24 
  25 
  26 find_all_packaging_tests ()
  27 {
  28   find_packaging_tests share
  29   case "$(uname -s)" in
  30     Darwin)
  31       find_packaging_tests macosx;;
  32     Linux)
  33       find_packaging_tests linux;;
  34     CYGWIN*|MINGW32*|MSYS*)
  35       find_packaging_tests windows;;
  36     *)
  37       fatal Failed to detect OS type;;
  38   esac
  39 }
  40 
  41 
  42 help_usage ()
  43 {
  44   echo "Usage: `basename $0` [options] [--] [jtreg_options|test_names]"
  45   echo "Options:"
  46   echo "  -h              - print this message"
  47   echo "  -v              - verbose output"
  48   echo "  -c              - keep jtreg cache"
  49   echo "  -a              - run all, not only SQE tests"
  50   echo "  -d              - dry run. Print jtreg command line, but don't execute it"
  51   echo "  -t <jdk>        - path to JDK to be tested [ mandatory ]"
  52   echo "  -j <openjdk>    - path to local copy of openjdk repo with jpackage jtreg tests"
  53   echo "                    Optional, default is openjdk repo where this script resides"
  54   echo "  -o <outputdir>  - path to folder where to copy artifacts for testing."
  55   echo "                    Optional, default is the current directory."
  56   echo '  -r <runtimedir> - value for `jpackage.test.runtime-image` property.'
  57   echo "                    Optional, for jtreg tests debug purposes only."
  58   echo '  -l <logfile>    - value for `jpackage.test.logfile` property.'
  59   echo "                    Optional, for jtreg tests debug purposes only."
  60   echo "  -m <mode>       - mode to run jtreg tests."
  61   echo '                    Should be one of `create`, `update` or `print-default-tests`.'
  62   echo '                    Optional, default mode is `update`.'
  63   echo '                    - `create`'
  64   echo '                      Remove all package bundles from the output directory before running jtreg tests.'
  65   echo '                    - `update`'
  66   echo '                      Run jtreg tests and overrite existing package bundles in the output directory.'




  67   echo '                    - `print-default-tests`'
  68   echo '                      Print default list of packaging tests and exit.'
  69 }
  70 
  71 error ()
  72 {
  73   echo "$@" > /dev/stderr
  74 }
  75 
  76 fatal ()
  77 {
  78   error "$@"
  79   exit 1
  80 }
  81 
  82 fatal_with_help_usage ()
  83 {
  84   error "$@"
  85   help_usage
  86   exit 1


 114 # Path to local copy of open jdk repo with jpackage jtreg tests
 115 # hg clone http://hg.openjdk.java.net/jdk/sandbox
 116 # cd sandbox; hg update -r JDK-8200758-branch
 117 open_jdk_with_jpackage_jtreg_tests=$(dirname $0)/../../../../
 118 
 119 # Directory where to save artifacts for testing.
 120 output_dir=$PWD
 121 
 122 # Script and jtreg debug.
 123 verbose=
 124 jtreg_verbose="-verbose:fail,error,summary"
 125 
 126 keep_jtreg_cache=
 127 
 128 # Mode in which to run jtreg tests
 129 mode=update
 130 
 131 # jtreg extra arguments
 132 declare -a jtreg_args
 133 
 134 # Create packages only
 135 jtreg_args+=("-Djpackage.test.action=create")
 136 
 137 # run all tests
 138 run_all_tests=
 139 
 140 mapfile -t tests < <(find_all_packaging_tests)
 141 
 142 while getopts "vahdct:j:o:r:m:l:" argname; do
 143   case "$argname" in
 144     v) verbose=yes;;
 145     a) run_all_tests=yes;;
 146     d) dry_run=yes;;
 147     c) keep_jtreg_cache=yes;;
 148     t) test_jdk="$OPTARG";;
 149     j) open_jdk_with_jpackage_jtreg_tests="$OPTARG";;
 150     o) output_dir="$OPTARG";;
 151     r) runtime_dir="$OPTARG";;
 152     l) logfile="$OPTARG";;
 153     m) mode="$OPTARG";;
 154     h) help_usage; exit 0;;
 155     ?) help_usage; exit 1;;
 156   esac
 157 done


 188 
 189 if [ -n "$runtime_dir" ]; then
 190   if [ ! -d "$runtime_dir" ]; then
 191     fatal 'Value of `-r` option is set to non-existing directory'.
 192   fi
 193   jtreg_args+=("-Djpackage.test.runtime-image=$(to_native_path "$(cd "$runtime_dir" && pwd)")")
 194 fi
 195 
 196 if [ -n "$logfile" ]; then
 197   if [ ! -d "$(dirname "$logfile")" ]; then
 198     fatal 'Value of `-l` option specified a file in non-existing directory'.
 199   fi
 200   logfile="$(cd "$(dirname "$logfile")" && pwd)/$(basename "$logfile")"
 201   jtreg_args+=("-Djpackage.test.logfile=$(to_native_path "$logfile")")
 202 fi
 203 
 204 if [ "$mode" = create ]; then
 205   true
 206 elif [ "$mode" = update ]; then
 207   true




 208 else
 209   fatal_with_help_usage 'Invalid value of -m option:' [$mode]
 210 fi
 211 
 212 if [ -z "$run_all_tests" ]; then
 213   jtreg_args+=(-Djpackage.test.SQETest=yes)
 214 fi
 215 
 216 # Drop arguments separator
 217 [ "$1" != "--" ] || shift
 218 
 219 # All remaining command line arguments are tests to run
 220 # that should override the defaults and explicit jtreg arguments
 221 [ $# -eq 0 ] || tests=($@)
 222 
 223 
 224 installJtreg ()
 225 {
 226   # Install jtreg if missing
 227   if [ -z "$JT_HOME" ]; then
 228     if [ ! -f "$jtreg_jar" ]; then
 229       exec_command mkdir -p "$workdir"
 230       if [[ ${jtreg_bundle: -7} == ".tar.gz" ]]; then
 231         exec_command "(" cd "$workdir" "&&" wget "$jtreg_bundle" "&&" tar -xzf "$(basename $jtreg_bundle)" ";" rm -f "$(basename $jtreg_bundle)" ")"
 232       else
 233         if [[ ${jtreg_bundle: -4} == ".zip" ]]; then
 234           exec_command "(" cd "$workdir" "&&" wget "$jtreg_bundle" "&&" unzip "$(basename $jtreg_bundle)" ";" rm -f "$(basename $jtreg_bundle)" ")"
 235         else
 236           fatal 'Unsupported extension of JREG bundle ['$JT_BUNDLE_URL']. Only *.zip or *.tar.gz is supported.'
 237         fi
 238       fi
 239     fi
 240   else


< prev index next >