blob: a55af94b7adb23beb1195233b365e3cfe488e122 [file] [log] [blame]
Nicolas Geoffrayb2e7e242014-11-28 14:24:28 +00001#!/bin/bash
2#
3# Copyright (C) 2014 The Android Open Source Project
4#
5# Licensed under the Apache License, Version 2.0 (the "License");
6# you may not use this file except in compliance with the License.
7# You may obtain a copy of the License at
8#
9# http://www.apache.org/licenses/LICENSE-2.0
10#
11# Unless required by applicable law or agreed to in writing, software
12# distributed under the License is distributed on an "AS IS" BASIS,
13# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14# See the License for the specific language governing permissions and
15# limitations under the License.
16
17if [ ! -d libcore ]; then
18 echo "Script needs to be run at the root of the android tree"
19 exit 1
20fi
21
Wojciech Staszkiewicz08cf1482015-05-21 17:31:38 +010022# Jar containing jsr166 tests.
Neil Fullerb8300fc2016-02-10 13:09:10 +000023jsr166_test_jack=${OUT_DIR-out}/target/common/obj/JAVA_LIBRARIES/jsr166-tests_intermediates/classes.jack
Wojciech Staszkiewicz08cf1482015-05-21 17:31:38 +010024
25# Jar containing all the other tests.
Neil Fullerb8300fc2016-02-10 13:09:10 +000026test_jack=${OUT_DIR-out}/target/common/obj/JAVA_LIBRARIES/core-tests_intermediates/classes.jack
Nicolas Geoffrayb2e7e242014-11-28 14:24:28 +000027
Wojciech Staszkiewicz08cf1482015-05-21 17:31:38 +010028
Neil Fullerb8300fc2016-02-10 13:09:10 +000029if [ ! -f $test_jack ]; then
Wojciech Staszkiewicz08cf1482015-05-21 17:31:38 +010030 echo "Before running, you must build core-tests, jsr166-tests and vogar: \
Roland Levillain135d9f82016-05-20 18:16:54 +010031 make core-tests jsr166-tests vogar"
Nicolas Geoffrayb2e7e242014-11-28 14:24:28 +000032 exit 1
33fi
34
Roland Levillainafd6f9e2016-01-11 15:51:00 +000035expectations="--expectations art/tools/libcore_failures.txt"
36if [ "x$ART_USE_READ_BARRIER" = xtrue ]; then
37 # Tolerate some more failures on the concurrent collector configurations.
38 expectations="$expectations --expectations art/tools/libcore_failures_concurrent_collector.txt"
39fi
40
Nicolas Geoffrayf794ad72015-09-11 12:08:49 +010041emulator="no"
42if [ "$ANDROID_SERIAL" = "emulator-5554" ]; then
43 emulator="yes"
44fi
45
Nicolas Geoffrayc3837e42014-12-03 11:30:26 +000046# Packages that currently work correctly with the expectation files.
Nicolas Geoffray1f8dbf82015-06-13 13:19:16 +000047working_packages=("dalvik.system"
Brian Carlstrom4c78ffa2015-06-11 07:33:51 -070048 "libcore.icu"
David Brazdil598b2202015-02-24 10:12:06 +000049 "libcore.io"
50 "libcore.java.lang"
Nicolas Geoffrayc3837e42014-12-03 11:30:26 +000051 "libcore.java.math"
David Brazdil598b2202015-02-24 10:12:06 +000052 "libcore.java.text"
Nicolas Geoffray3cdf8182014-12-01 10:12:15 +000053 "libcore.java.util"
David Brazdil4cd7dfd2015-02-24 13:33:01 +000054 "libcore.javax.crypto"
David Brazdil598b2202015-02-24 10:12:06 +000055 "libcore.javax.security"
56 "libcore.javax.sql"
57 "libcore.javax.xml"
58 "libcore.net"
59 "libcore.reflect"
60 "libcore.util"
Nicolas Geoffray3cdf8182014-12-01 10:12:15 +000061 "org.apache.harmony.annotation"
David Brazdil4cd7dfd2015-02-24 13:33:01 +000062 "org.apache.harmony.crypto"
David Brazdile2f28ad2015-02-24 10:44:29 +000063 "org.apache.harmony.luni"
64 "org.apache.harmony.nio"
Nicolas Geoffray3cdf8182014-12-01 10:12:15 +000065 "org.apache.harmony.regex"
David Brazdile2f28ad2015-02-24 10:44:29 +000066 "org.apache.harmony.testframework"
67 "org.apache.harmony.tests.java.io"
Nicolas Geoffray3cdf8182014-12-01 10:12:15 +000068 "org.apache.harmony.tests.java.lang"
Nicolas Geoffrayc3837e42014-12-03 11:30:26 +000069 "org.apache.harmony.tests.java.math"
Nicolas Geoffray3cdf8182014-12-01 10:12:15 +000070 "org.apache.harmony.tests.java.util"
David Brazdile2f28ad2015-02-24 10:44:29 +000071 "org.apache.harmony.tests.java.text"
72 "org.apache.harmony.tests.javax.security"
Wojciech Staszkiewicz08cf1482015-05-21 17:31:38 +010073 "tests.java.lang.String"
74 "jsr166")
Nicolas Geoffrayb2e7e242014-11-28 14:24:28 +000075
Nicolas Geoffraycdcd0002015-10-31 14:47:36 +000076# List of packages we could run, but don't have rights to revert
77# changes in case of failures.
78# "org.apache.harmony.security"
79
Nicolas Geoffray9648a632015-06-15 14:35:01 +010080vogar_args=$@
81while true; do
82 if [[ "$1" == "--mode=device" ]]; then
83 vogar_args="$vogar_args --device-dir=/data/local/tmp"
84 vogar_args="$vogar_args --vm-command=/data/local/tmp/system/bin/art"
85 vogar_args="$vogar_args --vm-arg -Ximage:/data/art-test/core-optimizing.art"
86 shift
87 elif [[ "$1" == "--mode=host" ]]; then
Andreas Gampe8994a042015-12-30 19:03:17 +000088 # We explicitly give a wrong path for the image, to ensure vogar
89 # will create a boot image with the default compiler. Note that
90 # giving an existing image on host does not work because of
91 # classpath/resources differences when compiling the boot image.
92 vogar_args="$vogar_args --vm-arg -Ximage:/non/existent/vogar.art"
Nicolas Geoffray9648a632015-06-15 14:35:01 +010093 shift
Nicolas Geoffray7f437912015-06-15 14:35:01 +010094 elif [[ "$1" == "--debug" ]]; then
Nicolas Geoffray9648a632015-06-15 14:35:01 +010095 # Remove the --debug from the arguments.
96 vogar_args=${vogar_args/$1}
97 vogar_args="$vogar_args --vm-arg -XXlib:libartd.so"
Nicolas Geoffray9648a632015-06-15 14:35:01 +010098 shift
99 elif [[ "$1" == "" ]]; then
100 break
101 else
102 shift
103 fi
104done
105
Nicolas Geoffray44368e82015-09-30 12:02:21 +0100106# Increase the timeout, as vogar cannot set individual test
107# timeout when being asked to run packages, and some tests go above
108# the default timeout.
109vogar_args="$vogar_args --timeout 480"
Nicolas Geoffrayf794ad72015-09-11 12:08:49 +0100110
Neil Fullerb8300fc2016-02-10 13:09:10 +0000111# Use Jack with "1.8" configuration.
Neil Fullerb8300fc2016-02-10 13:09:10 +0000112vogar_args="$vogar_args --toolchain jack --language JN"
113
Nicolas Geoffrayb2e7e242014-11-28 14:24:28 +0000114# Run the tests using vogar.
Nicolas Geoffray3cdf8182014-12-01 10:12:15 +0000115echo "Running tests for the following test packages:"
116echo ${working_packages[@]} | tr " " "\n"
Neil Fullerb8300fc2016-02-10 13:09:10 +0000117vogar $vogar_args --vm-arg -Xusejit:true $expectations --classpath $jsr166_test_jack --classpath $test_jack ${working_packages[@]}