Testing: Remove old run-all-tests script
Update test.py with additional help
Update README.txt
Test: art/test.py -r
Change-Id: I25320aff9bd7041a1aad738119aec1422e5a0309
diff --git a/test.py b/test.py
index 414d779..047d812 100755
--- a/test.py
+++ b/test.py
@@ -28,14 +28,15 @@
ANDROID_BUILD_TOP = os.environ.get('ANDROID_BUILD_TOP', os.getcwd())
parser = argparse.ArgumentParser()
-parser.add_argument('-j', default='', dest='n_threads')
-parser.add_argument('--run-test', '-r', action='store_true', dest='run_test')
-parser.add_argument('--gtest', '-g', action='store_true', dest='gtest')
-parser.add_argument('--target', action='store_true', dest='target')
-parser.add_argument('--host', action='store_true', dest='host')
+parser.add_argument('-j', default='', dest='n_threads', help='specify number of concurrent tests')
+parser.add_argument('--run-test', '-r', action='store_true', dest='run_test', help='execute run tests')
+parser.add_argument('--gtest', '-g', action='store_true', dest='gtest', help='execute gtest tests')
+parser.add_argument('--target', action='store_true', dest='target', help='test on target system')
+parser.add_argument('--host', action='store_true', dest='host', help='test on build host system')
+parser.add_argument('--help-runner', action='store_true', dest='help_runner', help='show help for optional run test arguments')
options, unknown = parser.parse_known_args()
-if options.run_test or not options.gtest:
+if options.run_test or options.help_runner or not options.gtest:
testrunner = os.path.join('./',
ANDROID_BUILD_TOP,
'art/test/testrunner/testrunner.py')
@@ -44,11 +45,14 @@
if arg == '--run-test' or arg == '--gtest' \
or arg == '-r' or arg == '-g':
continue
+ if arg == '--help-runner':
+ run_test_args = ['--help']
+ break
run_test_args.append(arg)
test_runner_cmd = [testrunner] + run_test_args
print test_runner_cmd
- if subprocess.call(test_runner_cmd):
+ if subprocess.call(test_runner_cmd) or options.help_runner:
sys.exit(1)
if options.gtest or not options.run_test:
diff --git a/test/README.md b/test/README.md
new file mode 100644
index 0000000..c68b40b
--- /dev/null
+++ b/test/README.md
@@ -0,0 +1,73 @@
+# VM test harness
+
+There are two suites of tests in this directory: run-tests and gtests.
+
+The run-tests are identified by directories named with with a numeric
+prefix and containing an info.txt file. For most run tests, the
+sources are in the "src" subdirectory. Sources found in the "src2"
+directory are compiled separately but to the same output directory;
+this can be used to exercise "API mismatch" situations by replacing
+class files created in the first pass. The "src-ex" directory is
+built separately, and is intended for exercising class loaders.
+
+The gtests are in named directories and contain a .java source
+file.
+
+All tests in either suite can be run using the "art/test.py"
+script. Additionally, run-tests can be run individidually. All of the
+tests can be run on the build host, on a USB-attached device, or using
+the build host "reference implementation".
+
+To see command flags run:
+
+```sh
+$ art/test.py -h
+```
+
+## Running all tests on the build host
+
+```sh
+$ art/test.py --host
+```
+
+## Running all tests on the target device
+
+```sh
+$ art/test.py --target
+```
+
+## Running all gtests on the build host
+
+```sh
+$ art/test.py --host -g
+```
+
+## Running all gtests on the target device
+
+```sh
+$ art/test.py --target -g
+```
+
+## Running all run-tests on the build host
+
+```sh
+$ art/test.py --host -r
+```
+
+## Running all run-tests on the target device
+
+```sh
+$ art/test.py --target -r
+```
+
+## Running one run-test on the build host
+
+```sh
+$ art/test.py --host -r -t 001-HelloWorld
+```
+
+## Running one run-test on the target device
+
+```sh
+$ art/test.py --target -r -t 001-HelloWorld
+```
diff --git a/test/README.txt b/test/README.txt
deleted file mode 100644
index eb1ce36..0000000
--- a/test/README.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-VM test harness.
-
-Use "./run-all-tests" to run all tests, or "./run-test <number>" to run a
-single test. Run "./run-test" with no arguments to see command flags;
-in particular, the tests can be run on the desktop, on a USB-attached
-device, or using the desktop "reference implementation".
-
-
-For most tests, the sources are in the "src" subdirectory. Sources found
-in the "src2" directory are compiled separately but to the same output
-directory; this can be used to exercise "API mismatch" situations by
-replacing class files created in the first pass. The "src-ex" directory
-is built separately, and is intended for exercising class loaders.
diff --git a/test/run-all-tests b/test/run-all-tests
deleted file mode 100755
index a0d2f23..0000000
--- a/test/run-all-tests
+++ /dev/null
@@ -1,241 +0,0 @@
-#!/bin/bash
-#
-# Copyright (C) 2007 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Set up prog to be the path of this script, including following symlinks,
-# and set up progdir to be the fully-qualified pathname of its directory.
-prog="$0"
-while [ -h "${prog}" ]; do
- newProg=`/bin/ls -ld "${prog}"`
- newProg=`expr "${newProg}" : ".* -> \(.*\)$"`
- if expr "x${newProg}" : 'x/' >/dev/null; then
- prog="${newProg}"
- else
- progdir=`dirname "${prog}"`
- prog="${progdir}/${newProg}"
- fi
-done
-oldwd=`pwd`
-progdir=`dirname "${prog}"`
-cd "${progdir}"
-progdir=`pwd`
-prog="${progdir}"/`basename "${prog}"`
-
-run_args=""
-usage="no"
-sequental="no"
-
-while true; do
- if [ "x$1" = "x--host" ]; then
- run_args="${run_args} --host"
- shift
- elif [ "x$1" = "x--use-java-home" ]; then
- run_args="${run_args} --use-java-home"
- shift
- elif [ "x$1" = "x--no-image" ]; then
- run_args="${run_args} --no-image"
- shift
- elif [ "x$1" = "x--optimizing" ]; then
- run_args="${run_args} --optimizing"
- shift
- elif [ "x$1" = "x--image" ]; then
- run_args="${run_args} --image"
- shift
- elif [ "x$1" = "x--never-clean" ]; then
- run_args="${run_args} --never-clean"
- shift
- elif [ "x$1" = "x--jvm" ]; then
- run_args="${run_args} --jvm"
- shift
- elif [ "x$1" = "x--debug" ]; then
- run_args="${run_args} --debug"
- shift
- elif [ "x$1" = "x--build-only" ]; then
- run_args="${run_args} --build-only"
- shift
- elif [ "x$1" = "x--build-with-jack" ]; then
- run_args="${run_args} --build-with-jack"
- shift
- elif [ "x$1" = "x--build-with-javac-dx" ]; then
- run_args="${run_args} --build-with-javac-dx"
- shift
- elif [ "x$1" = "x--dex2oat-swap" ]; then
- run_args="${run_args} --dex2oat-swap"
- shift
- elif [ "x$1" = "x--dalvik" ]; then
- run_args="${run_args} --dalvik"
- shift
- elif [ "x$1" = "x--debuggable" ]; then
- run_args="${run_args} --debuggable"
- shift
- elif [ "x$1" = "x--zygote" ]; then
- run_args="${run_args} --zygote"
- shift
- elif [ "x$1" = "x--interpreter" ]; then
- run_args="${run_args} --interpreter"
- shift
- elif [ "x$1" = "x--jit" ]; then
- run_args="${run_args} --jit"
- shift
- elif [ "x$1" = "x--verify-soft-fail" ]; then
- run_args="${run_args} --verify-soft-fail"
- shift
- elif [ "x$1" = "x--no-verify" ]; then
- run_args="${run_args} --no-verify"
- shift
- elif [ "x$1" = "x--no-optimize" ]; then
- run_args="${run_args} --no-optimize"
- shift
- elif [ "x$1" = "x--dev" ]; then
- run_args="${run_args} --dev"
- shift
- elif [ "x$1" = "x--update" ]; then
- run_args="${run_args} --update"
- shift
- elif [ "x$1" = "x--help" ]; then
- usage="yes"
- shift
- elif [ "x$1" = "x--seq" ]; then
- sequental="yes"
- shift
- elif [ "x$1" = "x-O" ]; then
- run_args="${run_args} -O"
- shift
- elif [ "x$1" = "x--64" ]; then
- run_args="${run_args} --64"
- shift
- elif [ "x$1" = "x--gcstress" ]; then
- run_args="${run_args} --gcstress"
- shift
- elif [ "x$1" = "x--gcverify" ]; then
- run_args="${run_args} --gcverify"
- shift
- elif [ "x$1" = "x--trace" ]; then
- run_args="${run_args} --trace"
- shift
- elif [ "x$1" = "x--relocate" ]; then
- run_args="${run_args} --relocate"
- shift
- elif [ "x$1" = "x--no-relocate" ]; then
- run_args="${run_args} --no-relocate"
- shift
- elif [ "x$1" = "x--no-prebuild" ]; then
- run_args="${run_args} --no-prebuild"
- shift;
- elif [ "x$1" = "x--prebuild" ]; then
- run_args="${run_args} --prebuild"
- shift;
- elif [ "x$1" = "x--no-dex2oat" ]; then
- run_args="${run_args} --no-dex2oat"
- shift;
- elif [ "x$1" = "x--no-patchoat" ]; then
- run_args="${run_args} --no-patchoat"
- shift;
- elif [ "x$1" = "x--always-clean" ]; then
- run_args="${run_args} --always-clean"
- shift
- elif [ "x$1" = "x--pic-test" ]; then
- run_args="${run_args} --pic-test"
- shift
- elif [ "x$1" = "x--pic-image" ]; then
- run_args="${run_args} --pic-image"
- shift
- elif [ "x$1" = "x--strace" ]; then
- run_args="${run_args} --strace"
- shift
- elif [ "x$1" = "x--random-profile" ]; then
- run_args="${run_args} --random-profile"
- shift
- elif expr "x$1" : "x--" >/dev/null 2>&1; then
- echo "unknown $0 option: $1" 1>&2
- usage="yes"
- break
- else
- break
- fi
-done
-
-if [ "$usage" = "yes" ]; then
- prog=`basename $prog`
- (
- echo "usage:"
- echo " $prog --help Print this message."
- echo " $prog [options] Run all tests with the given options."
- echo " Options are all passed to run-test; refer to that for " \
- "further documentation:"
- echo " --debug --dev --host --interpreter --jit --jvm --no-optimize"
- echo " --no-verify --verify-soft-fail -O --update --zygote --64"
- echo " --relocate --prebuild --always-clean --gcstress --gcverify"
- echo " --trace --no-patchoat --no-dex2oat --use-java-home --pic-image"
- echo " --pic-test --strace --debuggable --dalvik --dex2oat-swap"
- echo " --build-only --build-with-jack --build-with-javac-dx"
- echo " --never-clean --image --no-image --optimizing"
- echo " --no-relocate --no-prebuild"
- echo " Specific Runtime Options:"
- echo " --seq Run tests one-by-one, avoiding failures caused by busy CPU"
- ) 1>&2
- exit 1
-fi
-
-if [ "$sequental" == "yes" ]; then
- i=0
- for test_name in *; do
- if [ -d "$test_name" -a -r "$test_name" -a -r "$test_name/info.txt" ]; then
- ./run-test ${run_args} "$test_name"
- RES=$?
- test_pids[i]=i
- test_names[test_pids[i]]="$test_name"
- if [ "$RES" != "0" ]; then
- let failure_count+=1
- failed_test_names="$failed_test_names ${test_names[i]}"
- else
- let succeeded_count+=1
- fi
- let i+=1
- fi
- done
-else
- # start all the tests
- i=0
- for test_name in *; do
- if [ -d "$test_name" -a -r "$test_name" -a -r "$test_name/info.txt" ]; then
- ./run-test ${run_args} "$test_name" &
- test_pids[i]=$!
- test_names[test_pids[i]]="$test_name"
- let i+=1
- fi
- done
-
- # wait for all the tests, collecting the failures
- failure_count=0
- succeeded_count=0
- failed_test_names=""
- for pid in ${test_pids[@]}; do
- wait $pid
- if [ "$?" != "0" ]; then
- let failure_count+=1
- failed_test_names="$failed_test_names ${test_names[$pid]}[pid=$pid]"
- else
- let succeeded_count+=1
- fi
- done
-fi
-
-echo "succeeded tests: $succeeded_count"
-echo "failed tests: $failure_count"
-
-for i in $failed_test_names; do
- echo "failed: $i"
-done