15a9c4419a7625926712263b345f21ad6d204f130Cassidy Burden#!/usr/bin/python2 25a9c4419a7625926712263b345f21ad6d204f130Cassidy Burden"""Switch part of the objects file in working set to (possible) bad ones. 35a9c4419a7625926712263b345f21ad6d204f130Cassidy Burden 45a9c4419a7625926712263b345f21ad6d204f130Cassidy BurdenThis script is meant to be specifically used with the set_file test. This uses 55a9c4419a7625926712263b345f21ad6d204f130Cassidy Burdenthe set files generated by binary_search_state to do the switching. 65a9c4419a7625926712263b345f21ad6d204f130Cassidy Burden""" 75a9c4419a7625926712263b345f21ad6d204f130Cassidy Burden 85a9c4419a7625926712263b345f21ad6d204f130Cassidy Burdenfrom __future__ import print_function 95a9c4419a7625926712263b345f21ad6d204f130Cassidy Burden 105a9c4419a7625926712263b345f21ad6d204f130Cassidy Burdenimport os 115a9c4419a7625926712263b345f21ad6d204f130Cassidy Burdenimport sys 125a9c4419a7625926712263b345f21ad6d204f130Cassidy Burden 135a9c4419a7625926712263b345f21ad6d204f130Cassidy Burdenimport common 145a9c4419a7625926712263b345f21ad6d204f130Cassidy Burden 155a9c4419a7625926712263b345f21ad6d204f130Cassidy Burden 165a9c4419a7625926712263b345f21ad6d204f130Cassidy Burdendef Main(_): 175a9c4419a7625926712263b345f21ad6d204f130Cassidy Burden """Switch part of the objects file in working set to (possible) bad ones.""" 185a9c4419a7625926712263b345f21ad6d204f130Cassidy Burden working_set = common.ReadWorkingSet() 195a9c4419a7625926712263b345f21ad6d204f130Cassidy Burden objects_file = common.ReadObjectsFile() 205a9c4419a7625926712263b345f21ad6d204f130Cassidy Burden 215a9c4419a7625926712263b345f21ad6d204f130Cassidy Burden if not os.path.exists(os.environ['BISECT_BAD_SET']): 225a9c4419a7625926712263b345f21ad6d204f130Cassidy Burden print('Bad set file does not exist!') 235a9c4419a7625926712263b345f21ad6d204f130Cassidy Burden return 1 245a9c4419a7625926712263b345f21ad6d204f130Cassidy Burden 255a9c4419a7625926712263b345f21ad6d204f130Cassidy Burden object_index = common.ReadObjectIndex(os.environ['BISECT_BAD_SET']) 265a9c4419a7625926712263b345f21ad6d204f130Cassidy Burden 275a9c4419a7625926712263b345f21ad6d204f130Cassidy Burden for oi in object_index: 285a9c4419a7625926712263b345f21ad6d204f130Cassidy Burden working_set[int(oi)] = objects_file[oi] 295a9c4419a7625926712263b345f21ad6d204f130Cassidy Burden 305a9c4419a7625926712263b345f21ad6d204f130Cassidy Burden common.WriteWorkingSet(working_set) 315a9c4419a7625926712263b345f21ad6d204f130Cassidy Burden 325a9c4419a7625926712263b345f21ad6d204f130Cassidy Burden return 0 335a9c4419a7625926712263b345f21ad6d204f130Cassidy Burden 345a9c4419a7625926712263b345f21ad6d204f130Cassidy Burden 355a9c4419a7625926712263b345f21ad6d204f130Cassidy Burdenif __name__ == '__main__': 365a9c4419a7625926712263b345f21ad6d204f130Cassidy Burden retval = Main(sys.argv) 375a9c4419a7625926712263b345f21ad6d204f130Cassidy Burden sys.exit(retval) 38