File: fixup_coverage.py

package info (click to toggle)
rdkit 202503.1-5
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 220,160 kB
  • sloc: cpp: 399,240; python: 77,453; ansic: 25,517; java: 8,173; javascript: 4,005; sql: 2,389; yacc: 1,565; lex: 1,263; cs: 1,081; makefile: 580; xml: 229; fortran: 183; sh: 105
file content (34 lines) | stat: -rw-r--r-- 974 bytes parent folder | download | duplicates (2)
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
"""This file searches the source directory for BISON and FLEX files that
the coverage tool mistakenly finds in the build tree.
It replaces the paths with the ones from the source tree
n.b. if a file with the same name (i.e. sln.yy) is found twice
 in the source tree, this will break"""

import os
import sys

source_dir, info_file = sys.argv[1:3]
print(source_dir, info_file)

paths = {}
for root, dir, files in os.walk(source_dir):
  for f in files:
    paths[f] = paths.get(f, []) + [os.path.join(root, f)]

lines = open(info_file).readlines()

newlines = []
for line in lines:
  if "SF:" in line:
    fn = line.split("SF:")[-1].strip()
    if not os.path.exists(fn):
      print("Does not exist:", fn.strip())
      head, rest = os.path.split(fn)
      potential = paths[rest]
      if len(potential) == 1:
        line = "SF:" + potential[0]
      else:
        raise NotImplementedError('asdf')
  newlines.append(line)

open(info_file, 'w').write("\n".join(newlines))