Skip to content

Commit db7458b

Browse files
authored
factor out reading and filtering lines from test output (#1119)
1 parent 1641e38 commit db7458b

File tree

1 file changed

+38
-36
lines changed

1 file changed

+38
-36
lines changed

src/sst/core/testingframework/sst_unittest_support.py

Lines changed: 38 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import shutil
2727
import difflib
2828
import configparser
29+
from typing import List, Sequence
2930

3031
import test_engine_globals
3132
from test_engine_support import OSCommand
@@ -1134,8 +1135,41 @@ def filter(self,line):
11341135
return line
11351136

11361137

1138+
def _read_and_filter(
1139+
fileloc: str,
1140+
filters: Sequence[LineFilter],
1141+
sort: bool
1142+
) -> List[str]:
1143+
lines = list()
1144+
1145+
with open(fileloc) as fp:
1146+
for filter in filters:
1147+
filter.reset()
1148+
for line in fp:
1149+
filt_line = line
1150+
for filter in filters:
1151+
filt_line = filter.filter(filt_line)
1152+
if not filt_line:
1153+
break
1154+
1155+
if filt_line:
1156+
lines.append(filt_line)
1157+
1158+
if sort:
1159+
lines.sort()
1160+
1161+
return lines
1162+
1163+
11371164
### Diff functions
1138-
def testing_compare_filtered_diff(test_name, outfile, reffile, sort=False, filters=[]):
1165+
def testing_compare_filtered_diff(
1166+
test_name: str,
1167+
outfile: str,
1168+
reffile: str,
1169+
sort: bool = False,
1170+
filters = list(),
1171+
do_statistics_comparison: bool = False,
1172+
):
11391173
"""Filter, optionally sort and then compare 2 files for a difference.
11401174
11411175
Args:
@@ -1168,41 +1202,9 @@ def testing_compare_filtered_diff(test_name, outfile, reffile, sort=False, filte
11681202
log_error("Cannot diff files: Ref File {0} does not exist".format(reffile))
11691203
return False
11701204

1171-
# Read in the output file and optionally sort it
1172-
with open(outfile) as fp:
1173-
for filter in filters:
1174-
filter.reset()
1175-
out_lines = []
1176-
for line in fp:
1177-
filt_line = line
1178-
for filter in filters:
1179-
filt_line = filter.filter(filt_line)
1180-
if not filt_line:
1181-
break;
1182-
1183-
if filt_line:
1184-
out_lines.append(filt_line)
1185-
1186-
if sort:
1187-
out_lines.sort()
1188-
1189-
# Read in the reference file and optionally sort it
1190-
with open(reffile) as fp:
1191-
for filter in filters:
1192-
filter.reset()
1193-
ref_lines = []
1194-
for line in fp:
1195-
filt_line = line
1196-
for filter in filters:
1197-
filt_line = filter.filter(filt_line)
1198-
if not filt_line:
1199-
break;
1200-
1201-
if filt_line:
1202-
ref_lines.append(filt_line)
1203-
1204-
if sort:
1205-
ref_lines.sort()
1205+
# Read in the output and reference files, and optionally sorting them
1206+
out_lines = _read_and_filter(outfile, filters, sort)
1207+
ref_lines = _read_and_filter(reffile, filters, sort)
12061208

12071209
# Get the diff between the files
12081210
diff = difflib.unified_diff(out_lines,ref_lines,outfile,reffile,n=1)

0 commit comments

Comments
 (0)