aboutsummaryrefslogtreecommitdiff
path: root/binary_search_tool/test/switch_to_good_set_file.py
blob: b5e521f9458ea37e249921b96d6783060e766198 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#!/usr/bin/env python2
"""Change portions of the object files to good.

The "portion" is defined by the file (which is passed as the only argument to
this script) content. Every line in the file is an object index, which will be
set to good (mark as 0).

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(_):
  working_set = common.ReadWorkingSet()

  if not os.path.exists(os.environ['BISECT_GOOD_SET']):
    print('Good set file does not exist!')
    return 1

  object_index = common.ReadObjectIndex(os.environ['BISECT_GOOD_SET'])

  for oi in object_index:
    working_set[int(oi)] = 0

  common.WriteWorkingSet(working_set)

  return 0


if __name__ == '__main__':
  retval = Main(sys.argv)
  sys.exit(retval)