From 8ef513f520ab38fc203e605138835c8f2e3daf5c Mon Sep 17 00:00:00 2001 From: Martin Vejbora Date: Thu, 30 Jan 2025 14:51:29 +0100 Subject: [PATCH] More granular grouping of linker errors --- .github/scripts/boost/group_test_failures.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.github/scripts/boost/group_test_failures.py b/.github/scripts/boost/group_test_failures.py index 8d325be108..1feace617f 100644 --- a/.github/scripts/boost/group_test_failures.py +++ b/.github/scripts/boost/group_test_failures.py @@ -98,6 +98,7 @@ def process_logs(log_file: str) -> None: input() grouping = collections.defaultdict(int) + grouping_linker_undef_refs = collections.defaultdict(int) for output in failed_outputs: error_line_index = find_failed_line_index(output) - 1 assert error_line_index >= 0 @@ -118,6 +119,10 @@ def process_logs(log_file: str) -> None: grouping[f"{command}: {line}"] += 1 break continue + + if output[0].startswith("gcc.link") and "undefined reference to" in output[5]: + str_index = output[5].index("undefined reference to") + grouping_linker_undef_refs[f"{command}: {output[5][str_index:]}"] += 1 if output[error_line_index] == ("====== END OUTPUT ======"): for i, line in enumerate(output): @@ -140,6 +145,10 @@ def process_logs(log_file: str) -> None: print(f"Grouping per error message:") print_dict_sorted_by_values(grouping) + input() + print(f"Grouping per linker error message:") + print_dict_sorted_by_values(grouping_linker_undef_refs) + def main() -> None: parser = argparse.ArgumentParser(description="Aggregate test results from log files") parser.add_argument("--log_file", required=True, type=str, help="Path to the log file")