run-test revision cf2e7b0621dfe7fcacd56555dffabab65d1130e7
19166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com#!/bin/bash 29166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com# 39166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com# Copyright (C) 2007 The Android Open Source Project 49166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com# 59166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com# Licensed under the Apache License, Version 2.0 (the "License"); 69166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com# you may not use this file except in compliance with the License. 79166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com# You may obtain a copy of the License at 89166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com# 99166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com# http://www.apache.org/licenses/LICENSE-2.0 109166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com# 119166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com# Unless required by applicable law or agreed to in writing, software 129166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com# distributed under the License is distributed on an "AS IS" BASIS, 139166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 149166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com# See the License for the specific language governing permissions and 159166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com# limitations under the License. 169166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com 179166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com# Set up prog to be the path of this script, including following symlinks, 189166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com# and set up progdir to be the fully-qualified pathname of its directory. 199166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.comprog="$0" 209166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.comwhile [ -h "${prog}" ]; do 219166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com newProg=`/bin/ls -ld "${prog}"` 22927b7028d44c46e9cbc18368f16ec2262d59d94dcaryclark@google.com newProg=`expr "${newProg}" : ".* -> \(.*\)$"` 23927b7028d44c46e9cbc18368f16ec2262d59d94dcaryclark@google.com if expr "x${newProg}" : 'x/' >/dev/null; then 249166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com prog="${newProg}" 259166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com else 269166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com progdir=`dirname "${prog}"` 279166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com prog="${progdir}/${newProg}" 289166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com fi 299166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.comdone 309166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.comoldwd=`pwd` 319166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.comprogdir=`dirname "${prog}"` 329166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.comcd "${progdir}" 339166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.comprogdir=`pwd` 349166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.comprog="${progdir}"/`basename "${prog}"` 359166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.comtest_dir="test-$$" 369166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.comtmp_dir="/tmp/$USER/${test_dir}" 379166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com 389166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.comexport JAVA="java" 399166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.comexport JAVAC="javac -g" 409166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.comexport RUN="${progdir}/etc/push-and-run-test-jar" 419166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.comexport DEX_LOCATION=/data/run-test/${test_dir} 429166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.comexport NEED_DEX="true" 439166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com 449166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com# If dx was not set by the environment variable, assume it is in the path. 459166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.comif [ -z "$DX" ]; then 469166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com export DX="dx" 479166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.comfi 489166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com 499166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com# If jasmin was not set by the environment variable, assume it is in the path. 509166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.comif [ -z "$JASMIN" ]; then 519166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com export JASMIN="jasmin" 529166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.comfi 534fdbb229649caf74e5c1b55a1823926df903af34caryclark@google.com 549166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com 554fdbb229649caf74e5c1b55a1823926df903af34caryclark@google.cominfo="info.txt" 569166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.combuild="build" 579166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.comrun="run" 589166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.comexpected="expected.txt" 599166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.comoutput="output.txt" 609166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.combuild_output="build-output.txt" 619166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.comlib="libartd.so" 627eaa53d8f7e48fd17d02b5e3bd91f90e9c1899efcaryclark@google.comrun_args="--quiet" 639166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com 649166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.comprebuild_mode="no" 659166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.comtarget_mode="yes" 669166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.comdev_mode="no" 679166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.comupdate_mode="no" 689166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.comdebug_mode="no" 699166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.comrelocate="yes" 709166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.comruntime="art" 719166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.comusage="no" 729166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.combuild_only="no" 739166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.comsuffix64="" 749166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com 759166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.comwhile true; do 769166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com if [ "x$1" = "x--host" ]; then 779166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com target_mode="no" 789166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com DEX_LOCATION=$tmp_dir 799166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com shift 809166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com elif [ "x$1" = "x--jvm" ]; then 819166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com target_mode="no" 829166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com runtime="jvm" 839166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com NEED_DEX="false" 849166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com shift 859166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com elif [ "x$1" = "x-O" ]; then 869166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com lib="libart.so" 879166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com shift 889166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com elif [ "x$1" = "x--dalvik" ]; then 899166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com lib="libdvm.so" 909166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com runtime="dalvik" 919166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com shift 929166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com elif [ "x$1" = "x--relocate" ]; then 939166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com relocate="yes" 949166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com shift 959166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com elif [ "x$1" = "x--no-relocate" ]; then 969166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com relocate="no" 979166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com shift 989166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com elif [ "x$1" = "x--prebuild" ]; then 999166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com prebuild_mode="yes" 1009166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com shift; 1019166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com elif [ "x$1" = "x--no-prebuild" ]; then 1029166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com prebuild_mode="no" 1039166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com shift; 1049166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com elif [ "x$1" = "x--image" ]; then 1059166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com shift 1069166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com image="$1" 1079166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com run_args="${run_args} --image $image" 1089166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com shift 1099166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com elif [ "x$1" = "x-Xcompiler-option" ]; then 1109166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com shift 1119166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com option="$1" 1129166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com run_args="${run_args} -Xcompiler-option $option" 1139166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com shift 1149166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com elif [ "x$1" = "x--runtime-option" ]; then 1159166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com shift 1169166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com option="$1" 1179166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com run_args="${run_args} --runtime-option $option" 1189166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com shift 1199166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com elif [ "x$1" = "x--debug" ]; then 1209166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com run_args="${run_args} --debug" 1219166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com shift 1229166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com elif [ "x$1" = "x--gdb" ]; then 1239166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com run_args="${run_args} --gdb" 1249166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com dev_mode="yes" 1259166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com shift 1269166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com elif [ "x$1" = "x--zygote" ]; then 1279166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com run_args="${run_args} --zygote" 1289166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com shift 1299166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com elif [ "x$1" = "x--interpreter" ]; then 1309166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com run_args="${run_args} --interpreter" 1319166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com shift 1329166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com elif [ "x$1" = "x--no-verify" ]; then 1339166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com run_args="${run_args} --no-verify" 1349166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com shift 1359166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com elif [ "x$1" = "x--no-optimize" ]; then 1369166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com run_args="${run_args} --no-optimize" 1379166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com shift 1389166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com elif [ "x$1" = "x--no-precise" ]; then 1399166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com run_args="${run_args} --no-precise" 1409166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com shift 1419166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com elif [ "x$1" = "x--invoke-with" ]; then 1429166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com shift 1439166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com what="$1" 1449166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com if [ "x$what" = "x" ]; then 1459166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com echo "$0 missing argument to --invoke-with" 1>&2 1469166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com usage="yes" 1479166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com break 1489166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com fi 1499166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com run_args="${run_args} --invoke-with ${what}" 1509166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com shift 1519166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com elif [ "x$1" = "x--dev" ]; then 1529166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com run_args="${run_args} --dev" 1539166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com dev_mode="yes" 1549166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com shift 1559166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com elif [ "x$1" = "x--build-only" ]; then 1569166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com build_only="yes" 1579166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com shift 1589166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com elif [ "x$1" = "x--output-path" ]; then 1599166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com shift 1609166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com tmp_dir=$1 1619166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com if [ "x$tmp_dir" = "x" ]; then 1624431e7757cfcb8cfa99535eed0e9f156dabf95c2commit-bot@chromium.org echo "$0 missing argument to --output-path" 1>&2 1639166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com usage="yes" 1649166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com break 165dac1d17027dcaa5596885a9f333979418b35001ccaryclark fi 166dac1d17027dcaa5596885a9f333979418b35001ccaryclark shift 167dac1d17027dcaa5596885a9f333979418b35001ccaryclark elif [ "x$1" = "x--update" ]; then 168a2bbc6e19d5332e81784e582c290cc060f40c4c7caryclark@google.com update_mode="yes" 169a2bbc6e19d5332e81784e582c290cc060f40c4c7caryclark@google.com shift 170a2bbc6e19d5332e81784e582c290cc060f40c4c7caryclark@google.com elif [ "x$1" = "x--help" ]; then 171b0a0589f8ac0254ec1beba9db2fc32a2bedb31e5skia.committer@gmail.com usage="yes" 172b0a0589f8ac0254ec1beba9db2fc32a2bedb31e5skia.committer@gmail.com shift 1737eaa53d8f7e48fd17d02b5e3bd91f90e9c1899efcaryclark@google.com elif [ "x$1" = "x--64" ]; then 1747eaa53d8f7e48fd17d02b5e3bd91f90e9c1899efcaryclark@google.com run_args="${run_args} --64" 1757eaa53d8f7e48fd17d02b5e3bd91f90e9c1899efcaryclark@google.com suffix64="64" 176a2bbc6e19d5332e81784e582c290cc060f40c4c7caryclark@google.com shift 177a2bbc6e19d5332e81784e582c290cc060f40c4c7caryclark@google.com elif [ "x$1" = "x--trace" ]; then 178a2bbc6e19d5332e81784e582c290cc060f40c4c7caryclark@google.com run_args="${run_args} --runtime-option -Xmethod-trace --runtime-option -Xmethod-trace-file:${DEX_LOCATION}/trace.bin --runtime-option -Xmethod-trace-file-size:2000000" 179a2bbc6e19d5332e81784e582c290cc060f40c4c7caryclark@google.com shift 180a2bbc6e19d5332e81784e582c290cc060f40c4c7caryclark@google.com elif expr "x$1" : "x--" >/dev/null 2>&1; then 181a2bbc6e19d5332e81784e582c290cc060f40c4c7caryclark@google.com echo "unknown $0 option: $1" 1>&2 182a2bbc6e19d5332e81784e582c290cc060f40c4c7caryclark@google.com usage="yes" 183a2bbc6e19d5332e81784e582c290cc060f40c4c7caryclark@google.com break 184a2bbc6e19d5332e81784e582c290cc060f40c4c7caryclark@google.com else 1857eaa53d8f7e48fd17d02b5e3bd91f90e9c1899efcaryclark@google.com break 1867eaa53d8f7e48fd17d02b5e3bd91f90e9c1899efcaryclark@google.com fi 1877eaa53d8f7e48fd17d02b5e3bd91f90e9c1899efcaryclark@google.comdone 1887eaa53d8f7e48fd17d02b5e3bd91f90e9c1899efcaryclark@google.commkdir -p $tmp_dir 1897eaa53d8f7e48fd17d02b5e3bd91f90e9c1899efcaryclark@google.com 1907eaa53d8f7e48fd17d02b5e3bd91f90e9c1899efcaryclark@google.comif [ "$target_mode" = "no" ]; then 191570863f2e22b8ea7d7c504bd15e4f766af097df2caryclark@google.com if [ "$runtime" = "jvm" ]; then 192570863f2e22b8ea7d7c504bd15e4f766af097df2caryclark@google.com RUN="${progdir}/etc/reference-run-test-classes" 1937f1af501f206da48a7ff791af53432c9c1c89d08skia.committer@gmail.com if [ "$prebuild_mode" = "yes" ]; then 1947f1af501f206da48a7ff791af53432c9c1c89d08skia.committer@gmail.com echo "--prebuild with --jvm is unsupported"; 1957f1af501f206da48a7ff791af53432c9c1c89d08skia.committer@gmail.com exit 1; 1967f1af501f206da48a7ff791af53432c9c1c89d08skia.committer@gmail.com fi 1977f1af501f206da48a7ff791af53432c9c1c89d08skia.committer@gmail.com else 1987f1af501f206da48a7ff791af53432c9c1c89d08skia.committer@gmail.com RUN="${progdir}/etc/host-run-test-jar" 1997f1af501f206da48a7ff791af53432c9c1c89d08skia.committer@gmail.com if [ "$prebuild_mode" = "yes" ]; then 2007f1af501f206da48a7ff791af53432c9c1c89d08skia.committer@gmail.com run_args="${run_args} --prebuild" 2017f1af501f206da48a7ff791af53432c9c1c89d08skia.committer@gmail.com fi 2027f1af501f206da48a7ff791af53432c9c1c89d08skia.committer@gmail.com fi 2037f1af501f206da48a7ff791af53432c9c1c89d08skia.committer@gmail.comelse 2044fdbb229649caf74e5c1b55a1823926df903af34caryclark@google.com if [ "$prebuild_mode" = "yes" ]; then 2054fdbb229649caf74e5c1b55a1823926df903af34caryclark@google.com RUN="${progdir}/etc/push-and-run-prebuilt-test-jar" 2068dcea7dcf96aeed5cf8d3afdf62330d73dd93c71robertphillips@google.com fi 2078dcea7dcf96aeed5cf8d3afdf62330d73dd93c71robertphillips@google.comfi 2088dcea7dcf96aeed5cf8d3afdf62330d73dd93c71robertphillips@google.com 2098dcea7dcf96aeed5cf8d3afdf62330d73dd93c71robertphillips@google.comif [ ! "$runtime" = "jvm" ]; then 2108dcea7dcf96aeed5cf8d3afdf62330d73dd93c71robertphillips@google.com run_args="${run_args} --lib $lib" 2118dcea7dcf96aeed5cf8d3afdf62330d73dd93c71robertphillips@google.comfi 2128dcea7dcf96aeed5cf8d3afdf62330d73dd93c71robertphillips@google.com 2138dcea7dcf96aeed5cf8d3afdf62330d73dd93c71robertphillips@google.comif [ "$runtime" = "dalvik" ]; then 2148dcea7dcf96aeed5cf8d3afdf62330d73dd93c71robertphillips@google.com if [ "$target_mode" = "no" ]; then 2158dcea7dcf96aeed5cf8d3afdf62330d73dd93c71robertphillips@google.com framework="${OUT}/system/framework" 2168dcea7dcf96aeed5cf8d3afdf62330d73dd93c71robertphillips@google.com bpath="${framework}/core.jar:${framework}/conscrypt.jar:${framework}/okhttp.jar:${framework}/core-junit.jar:${framework}/bouncycastle.jar:${framework}/ext.jar" 2178dcea7dcf96aeed5cf8d3afdf62330d73dd93c71robertphillips@google.com run_args="${run_args} --boot -Xbootclasspath:${bpath}" 2188dcea7dcf96aeed5cf8d3afdf62330d73dd93c71robertphillips@google.com else 2198dcea7dcf96aeed5cf8d3afdf62330d73dd93c71robertphillips@google.com true # defaults to using target BOOTCLASSPATH 2208dcea7dcf96aeed5cf8d3afdf62330d73dd93c71robertphillips@google.com fi 2218dcea7dcf96aeed5cf8d3afdf62330d73dd93c71robertphillips@google.comelif [ "$runtime" = "art" ]; then 2228dcea7dcf96aeed5cf8d3afdf62330d73dd93c71robertphillips@google.com if [ "$target_mode" = "no" ]; then 2238dcea7dcf96aeed5cf8d3afdf62330d73dd93c71robertphillips@google.com # ANDROID_BUILD_TOP and ANDROID_HOST_OUT are not set in a build environment. 2248dcea7dcf96aeed5cf8d3afdf62330d73dd93c71robertphillips@google.com if [ -z "$ANDROID_BUILD_TOP" ]; then 2258dcea7dcf96aeed5cf8d3afdf62330d73dd93c71robertphillips@google.com export ANDROID_BUILD_TOP=$oldwd 2268dcea7dcf96aeed5cf8d3afdf62330d73dd93c71robertphillips@google.com fi 2278dcea7dcf96aeed5cf8d3afdf62330d73dd93c71robertphillips@google.com if [ -z "$ANDROID_HOST_OUT" ]; then 2288dcea7dcf96aeed5cf8d3afdf62330d73dd93c71robertphillips@google.com export ANDROID_HOST_OUT=$ANDROID_BUILD_TOP/out/host/linux-x86 2298dcea7dcf96aeed5cf8d3afdf62330d73dd93c71robertphillips@google.com fi 2308dcea7dcf96aeed5cf8d3afdf62330d73dd93c71robertphillips@google.com run_args="${run_args} --boot -Ximage:${ANDROID_HOST_OUT}/framework/core.art" 2318dcea7dcf96aeed5cf8d3afdf62330d73dd93c71robertphillips@google.com else 2328dcea7dcf96aeed5cf8d3afdf62330d73dd93c71robertphillips@google.com run_args="${run_args} --boot -Ximage:/data/art-test/core.art" 2338dcea7dcf96aeed5cf8d3afdf62330d73dd93c71robertphillips@google.com fi 2348dcea7dcf96aeed5cf8d3afdf62330d73dd93c71robertphillips@google.com if [ "$relocate" = "yes" ]; then 2358dcea7dcf96aeed5cf8d3afdf62330d73dd93c71robertphillips@google.com run_args="${run_args} --relocate" 2368dcea7dcf96aeed5cf8d3afdf62330d73dd93c71robertphillips@google.com else 2378dcea7dcf96aeed5cf8d3afdf62330d73dd93c71robertphillips@google.com run_args="${run_args} --no-relocate" 238fa2aeee27af27f2934ee52a9732148f66481fb03caryclark@google.com fi 239cffbcc3b9665f2c928544b6fc6b8a0e22a4210fbcaryclark@google.comfi 240cffbcc3b9665f2c928544b6fc6b8a0e22a4210fbcaryclark@google.com 241cffbcc3b9665f2c928544b6fc6b8a0e22a4210fbcaryclark@google.comif [ "$dev_mode" = "yes" -a "$update_mode" = "yes" ]; then 242cffbcc3b9665f2c928544b6fc6b8a0e22a4210fbcaryclark@google.com echo "--dev and --update are mutually exclusive" 1>&2 243cffbcc3b9665f2c928544b6fc6b8a0e22a4210fbcaryclark@google.com usage="yes" 244cffbcc3b9665f2c928544b6fc6b8a0e22a4210fbcaryclark@google.comfi 245a5e55925ea03e76885804bda77408a1d6f04c335caryclark@google.com 246a5e55925ea03e76885804bda77408a1d6f04c335caryclark@google.comif [ "$usage" = "no" ]; then 247a5e55925ea03e76885804bda77408a1d6f04c335caryclark@google.com if [ "x$1" = "x" -o "x$1" = "x-" ]; then 248b3f0921fba9457ba7ea79f220d8c1ec9345bfd3acaryclark@google.com test_dir=`basename "$oldwd"` 249b3f0921fba9457ba7ea79f220d8c1ec9345bfd3acaryclark@google.com else 250b3f0921fba9457ba7ea79f220d8c1ec9345bfd3acaryclark@google.com test_dir="$1" 2519166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com fi 2529166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com 2539166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com if [ '!' -d "$test_dir" ]; then 2549166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com td2=`echo ${test_dir}-*` 2559166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com if [ '!' -d "$td2" ]; then 2569166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com echo "${test_dir}: no such test directory" 1>&2 2579166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com usage="yes" 2589166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com fi 2599166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com test_dir="$td2" 2609166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com fi 2619166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com # Shift to get rid of the test name argument. The rest of the arguments 2629166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com # will get passed to the test run. 2639166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com shift 2649166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.comfi 2659166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com 2669166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.comif [ "$usage" = "yes" ]; then 2679166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com prog=`basename $prog` 2689166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com ( 2699166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com echo "usage:" 2709166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com echo " $prog --help Print this message." 2719166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com echo " $prog [options] [test-name] Run test normally." 2729166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com echo " $prog --dev [options] [test-name] Development mode" \ 2739166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com "(dumps to stdout)." 2749166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com echo " $prog --update [options] [test-name] Update mode" \ 2759166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com "(replaces expected.txt)." 2769166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com echo ' Omitting the test name or specifying "-" will use the' \ 2779166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com "current directory." 2789166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com echo " Runtime Options:" 2799166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com echo " -O Run non-debug rather than debug build (off by default)." 2809166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com echo " -Xcompiler-option Pass an option to the compiler." 2819166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com echo " --runtime-option Pass an option to the runtime." 2829166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com echo " --debug Wait for a debugger to attach." 2839166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com echo " --gdb Run under gdb; incompatible with some tests." 2849166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com echo " --build-only Build test files only (off by default)." 2859166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com echo " --interpreter Enable interpreter only mode (off by default)." 2869166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com echo " --no-verify Turn off verification (on by default)." 2879166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com echo " --no-optimize Turn off optimization (on by default)." 2889166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com echo " --no-precise Turn off precise GC (on by default)." 2899166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com echo " --zygote Spawn the process from the Zygote." \ 2909166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com "If used, then the" 2919166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com echo " other runtime options are ignored." 2929166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com echo " --prebuild Run dex2oat on the files before starting test." 2939166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com echo " --no-prebuild Do not run dex2oat on the files before starting" 2949166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com echo " the test. (default)" 2959166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com echo " --relocate Force the use of relocating in the test, making" 2969166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com echo " the image and oat files be relocated to a random" 2979166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com echo " address before running. (default)" 2989166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com echo " --no-relocate Force the use of no relocating in the test" 2999166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com echo " --host Use the host-mode virtual machine." 3009166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com echo " --invoke-with Pass --invoke-with option to runtime." 3019166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com echo " --dalvik Use Dalvik (off by default)." 3029166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com echo " --jvm Use a host-local RI virtual machine." 3039166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com echo " --output-path [path] Location where to store the build" \ 3049166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com "files." 3059166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com echo " --64 Run the test in 64-bit mode" 3069166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com echo " --trace Run with method tracing" 3079166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com ) 1>&2 3084431e7757cfcb8cfa99535eed0e9f156dabf95c2commit-bot@chromium.org exit 1 3099166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.comfi 3107eaa53d8f7e48fd17d02b5e3bd91f90e9c1899efcaryclark@google.com 3117eaa53d8f7e48fd17d02b5e3bd91f90e9c1899efcaryclark@google.comcd "$test_dir" 3128d0a524a4847bc7e1cc63a93b78922739466c201caryclark@google.comtest_dir=`pwd` 3138d0a524a4847bc7e1cc63a93b78922739466c201caryclark@google.com 3149166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.comtd_info="${test_dir}/${info}" 3159166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.comtd_expected="${test_dir}/${expected}" 316cffbcc3b9665f2c928544b6fc6b8a0e22a4210fbcaryclark@google.com 3179166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.comif [ ! -r $td_info ]; then 3189166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com echo "${test_dir}: missing file $td_info" 1>&2 319cffbcc3b9665f2c928544b6fc6b8a0e22a4210fbcaryclark@google.com exit 1 3209166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.comfi 3219166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com 3229166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.comif [ ! -r $td_expected ]; then 323d892bd8ba676d34d4ce4a73ac7aad88e102fad70caryclark@google.com echo "${test_dir}: missing file $td_expected" 1>&2 3249166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com exit 1 3259166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.comfi 3269166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com 3279166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com# copy the test to a temp dir and run it 3289166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com 329cffbcc3b9665f2c928544b6fc6b8a0e22a4210fbcaryclark@google.comecho "${test_dir}: building..." 1>&2 3309166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com 3319166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.comrm -rf "$tmp_dir" 3329166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.comcp -Rp "$test_dir" "$tmp_dir" 333d892bd8ba676d34d4ce4a73ac7aad88e102fad70caryclark@google.comcd "$tmp_dir" 3349166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com 3359166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.comif [ '!' -r "$build" ]; then 3369166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com cp "${progdir}/etc/default-build" build 3379166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.comfi 3389166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com 339cffbcc3b9665f2c928544b6fc6b8a0e22a4210fbcaryclark@google.comif [ '!' -r "$run" ]; then 3409166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com cp "${progdir}/etc/default-run" run 3419166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.comfi 3429166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com 3439166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.comchmod 755 "$build" 3449166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.comchmod 755 "$run" 3457eaa53d8f7e48fd17d02b5e3bd91f90e9c1899efcaryclark@google.com 3469166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.comexport TEST_NAME=`basename ${test_dir}` 3479166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com 3489166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com# To cause tests to fail fast, limit the file sizes created by dx, dex2oat and ART output to 2MB. 3499166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.comfile_size_limit=2048 3504fdbb229649caf74e5c1b55a1823926df903af34caryclark@google.comif echo "$test_dir" | grep 089; then 3519166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com file_size_limit=5120 3524fdbb229649caf74e5c1b55a1823926df903af34caryclark@google.comelif echo "$test_dir" | grep 083; then 3535ec2b1ee8a8265c0d46092c801407073f46b3451caryclark@google.com file_size_limit=5120 3549166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.comfi 3559166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.comif ! ulimit -S "$file_size_limit"; then 356cffbcc3b9665f2c928544b6fc6b8a0e22a4210fbcaryclark@google.com echo "ulimit file size setting failed" 357cffbcc3b9665f2c928544b6fc6b8a0e22a4210fbcaryclark@google.comfi 3589166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com 359cffbcc3b9665f2c928544b6fc6b8a0e22a4210fbcaryclark@google.comgood="no" 360cffbcc3b9665f2c928544b6fc6b8a0e22a4210fbcaryclark@google.comif [ "$dev_mode" = "yes" ]; then 361cffbcc3b9665f2c928544b6fc6b8a0e22a4210fbcaryclark@google.com "./${build}" 2>&1 3629166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com build_exit="$?" 3637eaa53d8f7e48fd17d02b5e3bd91f90e9c1899efcaryclark@google.com echo "build exit status: $build_exit" 1>&2 3649166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com if [ "$build_exit" = '0' ]; then 3659166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com echo "${test_dir}: running..." 1>&2 3669166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com "./${run}" $run_args "$@" 2>&1 3679166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com run_exit="$?" 3689166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com echo "run exit status: $run_exit" 1>&2 3697eaa53d8f7e48fd17d02b5e3bd91f90e9c1899efcaryclark@google.com if [ "$run_exit" = "0" ]; then 3709166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com good="yes" 3719166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com fi 3729166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com fi 3739166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.comelif [ "$update_mode" = "yes" ]; then 3749166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com "./${build}" >"$build_output" 2>&1 3757eaa53d8f7e48fd17d02b5e3bd91f90e9c1899efcaryclark@google.com build_exit="$?" 3769166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com if [ "$build_exit" = '0' ]; then 3779166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com echo "${test_dir}: running..." 1>&2 3789166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com "./${run}" $run_args "$@" >"$output" 2>&1 3794431e7757cfcb8cfa99535eed0e9f156dabf95c2commit-bot@chromium.org sed -e 's/[[:cntrl:]]$//g' < "$output" >"${td_expected}" 3804431e7757cfcb8cfa99535eed0e9f156dabf95c2commit-bot@chromium.org good="yes" 3819166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com else 3829166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com cat "$build_output" 1>&2 3839166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com echo "build exit status: $build_exit" 1>&2 3844431e7757cfcb8cfa99535eed0e9f156dabf95c2commit-bot@chromium.org fi 3854431e7757cfcb8cfa99535eed0e9f156dabf95c2commit-bot@chromium.orgelif [ "$build_only" = "yes" ]; then 3865ec2b1ee8a8265c0d46092c801407073f46b3451caryclark@google.com good="yes" 3879166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com "./${build}" >"$build_output" 2>&1 3889166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com build_exit="$?" 3899166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com if [ "$build_exit" '!=' '0' ]; then 3909166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com cp "$build_output" "$output" 3919166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com echo "build exit status: $build_exit" >>"$output" 3929166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com diff --strip-trailing-cr -q "$expected" "$output" >/dev/null 3939166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com if [ "$?" '!=' "0" ]; then 3949166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com good="no" 3959166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com echo "BUILD FAILED For ${TEST_NAME}" 396db60de7cbe3ea9643a0471e1225a6abeac021de3caryclark@google.com fi 3979166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com fi 3989166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com # Clean up extraneous files that are not used by tests. 3999166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com find $tmp_dir -mindepth 1 ! -regex ".*/\(.*jar\|$output\|$expected\)" | xargs rm -rf 4009166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com exit 0 4019166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.comelse 4029166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com "./${build}" >"$build_output" 2>&1 4039166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com build_exit="$?" 4049166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com if [ "$build_exit" = '0' ]; then 4059166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com echo "${test_dir}: running..." 1>&2 4069166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com "./${run}" $run_args "$@" >"$output" 2>&1 4079166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com else 4089166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com cp "$build_output" "$output" 4099166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com echo "build exit status: $build_exit" >>"$output" 4109166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com fi 4119166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com diff --strip-trailing-cr -q "$expected" "$output" >/dev/null 4129166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com if [ "$?" = "0" ]; then 4139166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com # output == expected 4149166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com good="yes" 4159166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com echo "${test_dir}: succeeded!" 1>&2 4169166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com fi 4179166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.comfi 4189166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com 4199166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com# Clean up test files. 4209166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.comif [ "$good" == "yes" ]; then 4219166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com cd "$oldwd" 4229166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com rm -rf "$tmp_dir" 4239166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com if [ "$target_mode" = "yes" -a "$build_exit" = "0" ]; then 4249166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com adb shell rm -rf $DEX_LOCATION 4259166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com fi 4269166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com exit 0 4279166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.comfi 4289166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com 4299166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com 4309166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com( 4319166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com if [ "$update_mode" != "yes" ]; then 4329166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com echo "${test_dir}: FAILED!" 4339166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com echo ' ' 4349166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com echo '#################### info' 4359166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com cat "${td_info}" | sed 's/^/# /g' 4369166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com echo '#################### diffs' 4374fdbb229649caf74e5c1b55a1823926df903af34caryclark@google.com diff --strip-trailing-cr -u "$expected" "$output" | tail -n 500 4389166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com echo '####################' 4394fdbb229649caf74e5c1b55a1823926df903af34caryclark@google.com echo ' ' 4409166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com fi 4419166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com echo "${TEST_NAME} files left in ${tmp_dir} on host" 4427eaa53d8f7e48fd17d02b5e3bd91f90e9c1899efcaryclark@google.com if [ "$target_mode" == "yes" ]; then 4439166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com echo "and in ${DEX_LOCATION} on target" 4449166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com fi 4459166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com 4469166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com) 1>&2 4479166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com 4489166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.comexit 1 4499166dcb3a0e8784bea83d76ae01aa338c049ae05caryclark@google.com