1#!/bin/bash
2#
3# Copyright (C) 2007 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
17# Set up prog to be the path of this script, including following symlinks,
18# and set up progdir to be the fully-qualified pathname of its directory.
19prog="$0"
20while [ -h "${prog}" ]; do
21    newProg=`/bin/ls -ld "${prog}"`
22    newProg=`expr "${newProg}" : ".* -> \(.*\)$"`
23    if expr "x${newProg}" : 'x/' >/dev/null; then
24        prog="${newProg}"
25    else
26        progdir=`dirname "${prog}"`
27        prog="${progdir}/${newProg}"
28    fi
29done
30oldwd=`pwd`
31progdir=`dirname "${prog}"`
32cd "${progdir}"
33progdir=`pwd`
34prog="${progdir}"/`basename "${prog}"`
35
36run_args=""
37usage="no"
38
39while true; do
40    if [ "x$1" = "x--host" ]; then
41        run_args="${run_args} --host"
42        shift
43    elif [ "x$1" = "x--reference" ]; then
44        run_args="${run_args} --reference"
45        shift
46    elif [ "x$1" = "x--jit" ]; then
47        run_args="${run_args} --jit"
48        shift
49    elif [ "x$1" = "x--fast" ]; then
50        run_args="${run_args} --fast"
51        shift
52    elif [ "x$1" = "x--portable" ]; then
53        run_args="${run_args} --portable"
54        shift
55    elif [ "x$1" = "x--debug" ]; then
56        run_args="${run_args} --debug"
57        shift
58    elif [ "x$1" = "x--zygote" ]; then
59        run_args="${run_args} --zygote"
60        shift
61    elif [ "x$1" = "x--no-verify" ]; then
62        run_args="${run_args} --no-verify"
63        shift
64    elif [ "x$1" = "x--no-optimize" ]; then
65        run_args="${run_args} --no-optimize"
66        shift
67    elif [ "x$1" = "x--valgrind" ]; then
68        run_args="${run_args} --valgrind"
69        shift
70    elif [ "x$1" = "x--dev" ]; then
71        run_args="${run_args} --dev"
72        shift
73    elif [ "x$1" = "x--update" ]; then
74        run_args="${run_args} --update"
75        shift
76    elif [ "x$1" = "x--help" ]; then
77        usage="yes"
78        shift
79    elif expr "x$1" : "x--" >/dev/null 2>&1; then
80        echo "unknown option: $1" 1>&2
81        usage="yes"
82        break
83    else
84        break
85    fi
86done
87
88if [ "$usage" = "yes" ]; then
89    prog=`basename $prog`
90    (
91        echo "usage:"
92        echo "  $prog --help     Print this message."
93        echo "  $prog [options]  Run all tests with the given options."
94        echo "  Options are all passed to run-test; refer to that for " \
95             "further documentation:"
96        echo "    --debug --dev --fast --host --no-optimize --no-verify" \
97             "--portable"
98        echo "    --reference --update --valgrind --zygote"
99    ) 1>&2
100    exit 1
101fi
102
103passed=0
104failed=0
105failNames=""
106
107for i in *; do
108    if [ -d "$i" -a -r "$i" -a -r "${i}/info.txt" ]; then
109        ./run-test ${run_args} "$i"
110        if [ "$?" = "0" ]; then
111            ((passed += 1))
112        else
113            ((failed += 1))
114            failNames="$failNames $i"
115        fi
116    fi
117done
118
119echo "passed: $passed test(s)"
120echo "failed: $failed test(s)"
121
122for i in $failNames; do
123    echo "failed: $i"
124done
125