Skip to content

Commit

Permalink
Refactor to avoid code duplication and use regex instead of explicit …
Browse files Browse the repository at this point in the history
…split
  • Loading branch information
jougs committed Mar 14, 2018
1 parent 69456a5 commit 45a67f7
Showing 1 changed file with 16 additions and 15 deletions.
31 changes: 16 additions & 15 deletions testsuite/unittests/test_unused_names.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@

import os
import sys
import re

# Use encoding-aware Py3 open also in Py2
if sys.version_info[0] < 3:
Expand All @@ -46,25 +47,25 @@
"topology/topology_names",
]

names_defined = set()
for names_file in names_files:
fname = os.path.join(source_dir, names_file)

names_header = []
with open(fname + ".h") as names_file:
def get_names(fname, pattern):
names = []
with open(fname) as names_file:
lines = names_file.readlines()
for line in lines:
if "extern const Name" in line:
names_header.append(line.split("Name ")[1].split(";")[0])
names_header.sort()
match = re.search(pattern, line)
if match:
names.append(match.group(1))
names.sort()
return names

names_source = []
with open(fname + ".cpp") as names_file:
lines = names_file.readlines()
for line in lines:
if "const Name" in line:
names_source.append(line.split("Name ")[1].split("(")[0])
names_source.sort()

names_defined = set()
for names_file in names_files:
fname = os.path.join(source_dir, names_file)

names_header = get_names(fname + ".h", "extern\s+const\s+Name\s+(\w+)\s*;")
names_source = get_names(fname + ".cpp", "const\s+Name\s+(\w+)\(.*")

for h, s in zip(names_header, names_source):
if h != s:
Expand Down

0 comments on commit 45a67f7

Please sign in to comment.