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
|