From patchwork Thu Apr 25 17:42:42 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Marchi X-Patchwork-Id: 89003 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id A4CDB3858C66 for ; Thu, 25 Apr 2024 17:43:19 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from simark.ca (simark.ca [158.69.221.121]) by sourceware.org (Postfix) with ESMTPS id 18E633858D20 for ; Thu, 25 Apr 2024 17:42:53 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 18E633858D20 Authentication-Results: sourceware.org; dmarc=fail (p=none dis=none) header.from=efficios.com Authentication-Results: sourceware.org; spf=fail smtp.mailfrom=efficios.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 18E633858D20 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=158.69.221.121 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1714066974; cv=none; b=GWYKTSd+dUPj5iFBXAveguJP6eV1GazXZ1VKHQVweevaL4X0n12ikUab+yzFZCmnwSXO9h/cyLsOH6eogs1i5/89BCo8iYVGHp6X6Vg5qaUeOWJJD07pFZnt+cz9ZDmKiQWbpT2aF/fNzovbmS3aF53hdk0Qz2QLXpvWd/XPgCs= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1714066974; c=relaxed/simple; bh=EJcUtvMM4ByNrsAnGwhr+uc5eMo0lz2z3Bh1hzQ/Aio=; h=From:To:Subject:Date:Message-ID:MIME-Version; b=plSsqfdhrJLLnQfhy0Ea3FpzmfzURvlZkG7TlvNZy1DttYu92PR5elm0mDXEESJlvDT+QA5lfqJX+SmAjtW+d3+Yf2yELZZAUd+b3otpoLuuyS38QPHz0Xn5TjN4irdYDIZ6X84d8o3ZVBWIa1algGd+Y8iwTnjBcw0eXTc1UJ8= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from smarchi-efficios.internal.efficios.com (192-222-143-198.qc.cable.ebox.net [192.222.143.198]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPSA id 8E4B81E092; Thu, 25 Apr 2024 13:42:52 -0400 (EDT) From: Simon Marchi To: gdb-patches@sourceware.org Cc: Simon Marchi Subject: [PATCH] gdb/testsuite: analyze-racy-logs.py cleanup Date: Thu, 25 Apr 2024 13:42:42 -0400 Message-ID: <20240425174251.52419-1-simon.marchi@efficios.com> X-Mailer: git-send-email 2.44.0 MIME-Version: 1.0 X-Spam-Status: No, score=-3496.3 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_NONE, KAM_DMARC_STATUS, SPF_HELO_PASS, SPF_SOFTFAIL, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces+patchwork=sourceware.org@sourceware.org - Add type annotations - Use a raw string in one spot (where we call re.sub), to avoid an "invalid escape sequence" warning. - Remove unused "os" import. Change-Id: I0149cbb73ad2b05431f032fa9d9530282cb01e90 --- gdb/testsuite/analyze-racy-logs.py | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) base-commit: 5b9707eb872ad4cb50c98d396d16f110070a44ca diff --git a/gdb/testsuite/analyze-racy-logs.py b/gdb/testsuite/analyze-racy-logs.py index 152490e7686b..5a3f90ed62d0 100755 --- a/gdb/testsuite/analyze-racy-logs.py +++ b/gdb/testsuite/analyze-racy-logs.py @@ -29,7 +29,6 @@ # This program is invoked when the user runs "make check" and # specifies the RACY_ITER environment variable. -import os import re import sys @@ -45,7 +44,7 @@ import sys # } # } -files_and_tests = dict() +files_and_tests: dict[str, dict[str, set[str]]] = dict() # The relatioships between various states of the same tests that # should be ignored. For example, if the same test PASSes on a @@ -60,7 +59,7 @@ ignore_relations = {"PASS": "KFAIL"} sum_matcher = re.compile("^(.?(PASS|FAIL)): (.*)$") -def parse_sum_line(line, dic): +def parse_sum_line(line: str, dic: dict[str, set[str]]): """Parse a single LINE from a sumfile, and store the results in the dictionary referenced by DIC.""" global sum_matcher @@ -72,7 +71,7 @@ def parse_sum_line(line, dic): test_name = m.group(3) # Remove tail parentheses. These are likely to be '(timeout)' # and other extra information that will only confuse us. - test_name = re.sub("(\s+)?\(.*$", "", test_name) + test_name = re.sub(r"(\s+)?\(.*$", "", test_name) if result not in dic.keys(): dic[result] = set() if test_name in dic[result]: @@ -93,7 +92,7 @@ def parse_sum_line(line, dic): dic[result].add(test_name) -def read_sum_files(files): +def read_sum_files(files: list[str]): """Read the sumfiles (passed as a list in the FILES variable), and process each one, filling the FILES_AND_TESTS global dictionary with information about them.""" @@ -127,8 +126,8 @@ def identify_racy_tests(): # # Each set in ALL_TESTS will contain all tests, racy or not, for # that state. - nonracy_tests = dict() - all_tests = dict() + nonracy_tests: dict[str, set[str]] = dict() + all_tests: dict[str, set[str]] = dict() for f in files_and_tests: for state in files_and_tests[f]: try: @@ -144,14 +143,14 @@ def identify_racy_tests(): # Now, we eliminate the tests that are present in states that need # to be ignored. For example, tests both in the PASS and KFAIL # states should not be considered racy. - ignored_tests = set() + ignored_tests: set[str] = set() for s1, s2 in ignore_relations.items(): try: ignored_tests |= all_tests[s1] & all_tests[s2] except: continue - racy_tests = set() + racy_tests: set[str] = set() for f in files_and_tests: for state in files_and_tests[f]: racy_tests |= files_and_tests[f][state] - nonracy_tests[state]