diff options
author | 2017-07-12 11:55:22 +0100 | |
---|---|---|
committer | 2017-07-13 09:43:25 +0100 | |
commit | 42f16581dc7bf1bfebe505d061379643adbb4a33 (patch) | |
tree | bef1c4e7d1c22bbbdbc4109c63dbdf8a9704c052 | |
parent | 8ea20746896a5930d99b74d54213ff5a742ae937 (diff) |
Testing: Remove old run-all-tests script
Update test.py with additional help
Update README.txt
Test: art/test.py -r
Change-Id: I25320aff9bd7041a1aad738119aec1422e5a0309
-rwxr-xr-x | test.py | 18 | ||||
-rw-r--r-- | test/README.md | 73 | ||||
-rw-r--r-- | test/README.txt | 13 | ||||
-rwxr-xr-x | test/run-all-tests | 241 |
4 files changed, 84 insertions, 261 deletions
@@ -28,14 +28,15 @@ import argparse 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 options.run_test or not options.gtest: 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 0000000000..c68b40b135 --- /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 eb1ce36f5d..0000000000 --- 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 a0d2f23aa4..0000000000 --- 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 |