Skip to content

Commit 5d4ef4e

Browse files
Merge pull request #3255 from verilog-to-routing/reg_test_false_negative
Fix regression testing false negative
2 parents 0e890bc + f7e2a7c commit 5d4ef4e

File tree

2 files changed

+17
-9
lines changed

2 files changed

+17
-9
lines changed

run_reg_test.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,10 @@ def vtr_command_main(arg_list, prog=None):
200200
elif tests_run and total_num_func_failures != 0 or total_num_qor_failures != 0:
201201
print("Error: {} tests failed".format(total_num_func_failures + total_num_qor_failures))
202202

203-
sys.exit(total_num_func_failures + total_num_qor_failures)
203+
# If the QoR parsing script throws an exception, it returns -1.
204+
# This could potentially cancel a run failure and result in a false negative.
205+
# Absolute value is taken to avoid that.
206+
sys.exit(abs(total_num_func_failures) + abs(total_num_qor_failures))
204207

205208

206209
def display_qor(reg_test):

vtr_flow/scripts/python_libs/vtr/parse_vtr_task.py

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -422,14 +422,6 @@ def check_two_files(
422422
for (arch, circuit, script_params), _ in first_results.all_metrics().items():
423423
first_primary_keys.append((arch, circuit, script_params))
424424

425-
# Ensure that first result file has all the second result file cases
426-
for arch, circuit, script_params in second_primary_keys:
427-
if first_results.metrics(arch, circuit, script_params) is None:
428-
raise InspectError(
429-
"Required case {}/{} missing from {} results: {}".format(
430-
arch, circuit, first_name, first_results_filepath
431-
)
432-
)
433425

434426
# Warn about any elements in first result file that are not found in second result file
435427
for arch, circuit, script_params in first_primary_keys:
@@ -444,6 +436,19 @@ def check_two_files(
444436
for arch, circuit, script_params in second_primary_keys:
445437
second_metrics = second_results.metrics(arch, circuit, script_params)
446438
first_metrics = first_results.metrics(arch, circuit, script_params)
439+
440+
if first_metrics is None:
441+
print(
442+
"\n{}...[Fail]".format(
443+
"/".join(str((Path(config.config_dir).parent)).split("/")[-3:])
444+
)
445+
)
446+
print("Required case {}/{} missing from {} results: {}".format(
447+
arch, circuit, first_name, first_results_filepath
448+
))
449+
num_qor_failures += 1
450+
continue
451+
447452
first_fail = True
448453
for metric in pass_requirements.keys():
449454

0 commit comments

Comments
 (0)