File: fixup_coverage.py

package info (click to toggle)
rdkit 201809.1%2Bdfsg-6
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 123,688 kB
  • sloc: cpp: 230,509; python: 70,501; java: 6,329; ansic: 5,427; sql: 1,899; yacc: 1,739; lex: 1,243; makefile: 445; xml: 229; fortran: 183; sh: 123; cs: 93
file content (32 lines) | stat: -rw-r--r-- 1,004 bytes parent folder | download
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
"""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"""
from __future__ import print_function
import os, 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))