aboutsummaryrefslogtreecommitdiff
path: root/binary_search_tool/android/switch_to_bad.sh
diff options
context:
space:
mode:
Diffstat (limited to 'binary_search_tool/android/switch_to_bad.sh')
-rwxr-xr-xbinary_search_tool/android/switch_to_bad.sh42
1 files changed, 42 insertions, 0 deletions
diff --git a/binary_search_tool/android/switch_to_bad.sh b/binary_search_tool/android/switch_to_bad.sh
new file mode 100755
index 00000000..f746b628
--- /dev/null
+++ b/binary_search_tool/android/switch_to_bad.sh
@@ -0,0 +1,42 @@
+#!/bin/bash -u
+#
+# Copyright 2016 Google Inc. All Rights Reserved.
+#
+# This script is intended to be used by binary_search_state.py, as
+# part of the binary search triage on the Android source tree. This script
+# symlinks a list of object files from the 'bad' build tree into the working
+# build tree, for testing.
+#
+# It is highly recommended to not use --noincremental with these scripts. If the
+# switch scripts are given non incremental sets of GOOD/BAD objects, make will
+# not be able to do an incremental build and will take much longer to build.
+#
+
+
+source android/common.sh
+
+OBJ_LIST_FILE=$1
+
+# Symlink from BAD obj to working tree.
+SWITCH_CMD="ln -f ${BISECT_BAD_BUILD}/{} {}; touch {};"
+
+overall_status=0
+
+# Check that number of arguments == 1
+if [ $# -eq 1 ] ; then
+ # Run symlink once per input line, ignore empty lines.
+ # Have ${BISECT_NUM_JOBS} processes running concurrently.
+ # Pass to "sh" to allow multiple commands to be executed.
+ xargs -P ${BISECT_NUM_JOBS} -a ${OBJ_LIST_FILE} -r -l -I '{}' \
+ sh -c "${SWITCH_CMD}"
+else
+ echo "ERROR:"
+ echo "Please run the binary search tool with --file_args"
+ echo "Android has too many files to be passed as command line arguments"
+ echo "The binary search tool will now exit..."
+ exit 1
+fi
+overall_status=$?
+
+
+exit ${overall_status}