Merge "Enhance run-tests.sh to skip selected executable"
diff --git a/tests/run-tests.sh b/tests/run-tests.sh
index bc931bd..48ba4ef 100755
--- a/tests/run-tests.sh
+++ b/tests/run-tests.sh
@@ -576,24 +576,42 @@
local PROGRAMS=
local PROGRAM
# Do not run the test if BROKEN_RUN is defined
- if [ -f "$TEST/BROKEN_RUN" -o -f "$TEST/BROKEN_BUILD" ] ; then
- if [ -z "$RUN_TESTS" ]; then
- dump "Skipping NDK device test run: `basename $TEST`"
- return 0
- fi
+ if [ -z "$RUN_TESTS" ]; then
+ if [ -f "$TEST/BROKEN_BUILD" ] ; then
+ dump "Skipping NDK device test not built: $TEST_NAME"
+ return 0
+ fi
+ if [ -f "$TEST/BROKEN_RUN" ] ; then
+ if [ ! -s "$TEST/BROKEN_RUN" ] ; then
+ # skip all
+ dump "Skipping NDK device test run: $TEST_NAME"
+ return 0
+ else
+ # only skip listed in file
+ SKIPPED_EXECUTABLES=`cat $TEST/BROKEN_RUN | tr '\n' ' '`
+ dump "Skipping NDK device test run: $TEST_NAME ($SKIPPED_EXECUTABLES)"
+ fi
+ fi
fi
SRCDIR="$BUILD_DIR/`basename $TEST`/libs/$CPU_ABI"
if [ ! -d "$SRCDIR" ]; then
- dump "Skipping NDK device test run (no $CPU_ABI binaries): `basename $TEST`"
+ dump "Skipping NDK device test run (no $CPU_ABI binaries): $TEST_NAME"
return 0
fi
- # First, copy all files to the device, except for gdbserver or gdb.setup.
+ # First, copy all files to the device, except for gdbserver, gdb.setup, and
+ # those declared in $TEST/BROKEN_RUN
adb_shell_mkdir "$DEVICE" $DSTDIR
for SRCFILE in `ls $SRCDIR`; do
DSTFILE=`basename $SRCFILE`
if [ "$DSTFILE" = "gdbserver" -o "$DSTFILE" = "gdb.setup" ] ; then
continue
fi
+ if [ -z "$RUN_TESTS" -a -f "$TEST/BROKEN_RUN" ]; then
+ grep -q -w -e "$DSTFILE" "$TEST/BROKEN_RUN"
+ if [ $? = 0 ] ; then
+ continue
+ fi
+ fi
SRCFILE="$SRCDIR/$SRCFILE"
if [ $HOST_OS = cygwin ]; then
SRCFILE=`cygpath -m $SRCFILE`