aboutsummaryrefslogtreecommitdiff
path: root/binary_search_tool/test/switch_to_bad_set_file.py
diff options
context:
space:
mode:
authorCassidy Burden <cburden@google.com>2016-07-22 14:49:40 -0700
committerchrome-bot <chrome-bot@chromium.org>2016-07-26 09:20:38 -0700
commit5a9c4419a7625926712263b345f21ad6d204f130 (patch)
tree0d2c945366de805424243aebf88cee2910bb8911 /binary_search_tool/test/switch_to_bad_set_file.py
parent0ded515f8f340188634bd8d14e3184b98e4f06de (diff)
downloadtoolchain-utils-5a9c4419a7625926712263b345f21ad6d204f130.tar.gz
binary search tool: Provide temp files that hold GOOD/BAD sets
Provide temp files to scripts ($BISECT_GOOD_SET, $BISECT_BAD_SET) that provide a full listing of the items in the good set and items in the bad set. This can be used for debugging purposes or so scripts can analyze the state of the current binary search iteration. TEST=Add unit test that utilizes these files Change-Id: I32bc393644f1cb998c2d818a9026486ef83cc4b8 Reviewed-on: https://chrome-internal-review.googlesource.com/270730 Commit-Ready: Cassidy Burden <cburden@google.com> Tested-by: Cassidy Burden <cburden@google.com> Reviewed-by: Caroline Tice <cmtice@google.com> Reviewed-by: Han Shen <shenhan@google.com>
Diffstat (limited to 'binary_search_tool/test/switch_to_bad_set_file.py')
-rwxr-xr-xbinary_search_tool/test/switch_to_bad_set_file.py37
1 files changed, 37 insertions, 0 deletions
diff --git a/binary_search_tool/test/switch_to_bad_set_file.py b/binary_search_tool/test/switch_to_bad_set_file.py
new file mode 100755
index 00000000..f535fdfd
--- /dev/null
+++ b/binary_search_tool/test/switch_to_bad_set_file.py
@@ -0,0 +1,37 @@
+#!/usr/bin/python2
+"""Switch part of the objects file in working set to (possible) bad ones.
+
+This script is meant to be specifically used with the set_file test. This uses
+the set files generated by binary_search_state to do the switching.
+"""
+
+from __future__ import print_function
+
+import os
+import sys
+
+import common
+
+
+def Main(_):
+ """Switch part of the objects file in working set to (possible) bad ones."""
+ working_set = common.ReadWorkingSet()
+ objects_file = common.ReadObjectsFile()
+
+ if not os.path.exists(os.environ['BISECT_BAD_SET']):
+ print('Bad set file does not exist!')
+ return 1
+
+ object_index = common.ReadObjectIndex(os.environ['BISECT_BAD_SET'])
+
+ for oi in object_index:
+ working_set[int(oi)] = objects_file[oi]
+
+ common.WriteWorkingSet(working_set)
+
+ return 0
+
+
+if __name__ == '__main__':
+ retval = Main(sys.argv)
+ sys.exit(retval)