From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com [IPv6:2a00:1450:4864:20::336]) by sourceware.org (Postfix) with ESMTPS id 88B653898509 for ; Thu, 30 Apr 2020 11:20:20 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 88B653898509 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=embecosm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=andrew.burgess@embecosm.com Received: by mail-wm1-x336.google.com with SMTP id 188so1409315wmc.2 for ; Thu, 30 Apr 2020 04:20:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=embecosm.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=TIgw2wUSqJDOnZEHQCPXjXnIM4UFOgl4TADZHDeKaFY=; b=FCApFwh1keAlrkMSg0M7V/702SPM+E9Ggezd8QxtQLWhYI3+V4pGqBlUkmosdFZHlu 9USZCCYo3WJDyCg44uo537DWrGZP3K7AR2kLih/tYJLk66h35Qb8BORjOjPlfcoEVrDf 9B6GzTReiqUeoOismILQ0Un694JqRFiN3VunxbHjBOtB7gEhCnDY0xZgVSGJlhGTK+U+ 0/0+zfvrE28pRs46XPSfAPfYTJ5tMvhWX9FUBfvfznj+JR1XAchgqzN6RjtVm+oAWqgT NxkVZtjp4dh8VBAqRESTqiYuHAbt+jAHXxR+No0LmKXmXRWisoaSkDi1dyb+qroYrxsE P/nA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=TIgw2wUSqJDOnZEHQCPXjXnIM4UFOgl4TADZHDeKaFY=; b=Q8yiMb4lIr8KEm/agbfJcbkOcmwxWgV4yfRnO4UwWE2d2GpkV+rrViZwQhbf4d1VJM MYa/8U6R2ecaB6x2xWPVjuWC77DP5u7n/a0yvcIfhrWMDMQcwDtnVi5MigtFqW1qjBTU kvVpPWElKo8SbZ1+QK2lQzyexe/3QrC4dbMbbQs/J2foyrPSD/IKpia7b66lkmiq+Qzs G+3E2Rv2+bQ6/eO8KulRSvJLI3e09KgN7ED1od8dyQJifhEv7pbyXIxstfWaQlquhJUz +37N90ayLKdteyBwfnd7sZpzx0CM5WWEwI9dgOEp0DZ2YoWanuEkeSnIKyhhDF8eJbvg 7q6g== X-Gm-Message-State: AGi0PuYJd8oDVqhPrShZksIq7w4zUQZmeU3rlWyQPDjxs20qkHvlMIzU nAoruTiLDerS8pPHPCY9vHUd0K5zmL4= X-Google-Smtp-Source: APiQypLqsXxfPQ7CF/d2gCwczqFiwPXbjTiLYtwrp8RKouzaDWJAZksYDT8OhBNn2zezPL4rOADjrg== X-Received: by 2002:a1c:384:: with SMTP id 126mr2491779wmd.58.1588245619268; Thu, 30 Apr 2020 04:20:19 -0700 (PDT) Received: from localhost (host81-151-181-184.range81-151.btcentralplus.com. [81.151.181.184]) by smtp.gmail.com with ESMTPSA id k14sm3554375wrp.53.2020.04.30.04.20.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 30 Apr 2020 04:20:18 -0700 (PDT) From: Andrew Burgess To: gdb-patches@sourceware.org Subject: [PATCHv3 3/3] contrib: Handle GDB specific test result types Date: Thu, 30 Apr 2020 12:20:11 +0100 Message-Id: X-Mailer: git-send-email 2.25.3 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-25.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Apr 2020 11:20:25 -0000 NOTE: I know that this patch needs to go through the GCC list and then be back-ported to the binutils-gdb repository. I'm posting it here for completeness while the other patches in this series are discussed. If the general idea is approved for GDB then I'll get this merged through the GCC route. When running Dejagnu on GDB we can now (sometimes) see two additional test result types, these are '# of paths in test names' and '# of duplicate test names'. If the test is run in parallel mode (make -j...) then these extra test results will appear in the individual test summary files, but are not merged into the final summary file. Additionally, two new types of test summary line can be printed, these are 'PATH: ...' and 'DUPLICATE: ....' these lines allow users to quickly search the test summary to track down where the offending test names are. These lines are similarly not merged into the unified gdb.sum file after a parallel test run. This commit adds support to the merge scripts to carry over these extra result types, and the corresponding test status lines. contrib/ChangeLog: * dg-extract-results.py: Handle GDB specific test types. * dg-extract-results.sh: Likewise. --- contrib/ChangeLog | 5 +++++ contrib/dg-extract-results.py | 6 ++++-- contrib/dg-extract-results.sh | 12 +++++++++++- 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/contrib/dg-extract-results.py b/contrib/dg-extract-results.py index 7100794d42a..30aa68771d4 100644 --- a/contrib/dg-extract-results.py +++ b/contrib/dg-extract-results.py @@ -117,7 +117,7 @@ class Prog: self.tool_re = re.compile (r'^\t\t=== (.*) tests ===$') self.result_re = re.compile (r'^(PASS|XPASS|FAIL|XFAIL|UNRESOLVED' r'|WARNING|ERROR|UNSUPPORTED|UNTESTED' - r'|KFAIL|KPASS):\s*(.+)') + r'|KFAIL|KPASS|PATH|DUPLICATE):\s*(.+)') self.completed_re = re.compile (r'.* completed at (.*)') # Pieces of text to write at the head of the output. # start_line is a pair in which the first element is a datetime @@ -143,7 +143,9 @@ class Prog: '# of known failures\t\t', '# of untested testcases\t\t', '# of unresolved testcases\t', - '# of unsupported tests\t\t' + '# of unsupported tests\t\t', + '# of paths in test names\t', + '# of duplicate test names\t' ] self.runs = dict() diff --git a/contrib/dg-extract-results.sh b/contrib/dg-extract-results.sh index f948088370e..ff6c50d029c 100755 --- a/contrib/dg-extract-results.sh +++ b/contrib/dg-extract-results.sh @@ -326,7 +326,7 @@ BEGIN { } } /^\t\t=== .* ===$/ { curvar = ""; next } -/^(PASS|XPASS|FAIL|XFAIL|UNRESOLVED|WARNING|ERROR|UNSUPPORTED|UNTESTED|KFAIL|KPASS):/ { +/^(PASS|XPASS|FAIL|XFAIL|UNRESOLVED|WARNING|ERROR|UNSUPPORTED|UNTESTED|KFAIL|KPASS|PATH|DUPLICATE):/ { testname=\$2 # Ugly hack for gfortran.dg/dg.exp if ("$TOOL" == "gfortran" && testname ~ /^gfortran.dg\/g77\//) @@ -400,6 +400,7 @@ BEGIN { variant="$VAR" tool="$TOOL" passcnt=0; failcnt=0; untstcnt=0; xpasscnt=0; xfailcnt=0; kpasscnt=0; kfailcnt=0; unsupcnt=0; unrescnt=0; dgerrorcnt=0; + pathcnt=0; dupcnt=0 curvar=""; insummary=0 } /^Running target / { curvar = \$3; next } @@ -414,6 +415,8 @@ BEGIN { /^# of untested testcases/ { if (insummary == 1) untstcnt += \$5; next; } /^# of unresolved testcases/ { if (insummary == 1) unrescnt += \$5; next; } /^# of unsupported tests/ { if (insummary == 1) unsupcnt += \$5; next; } +/^# of paths in test names/ { if (insummary == 1) pathcnt += \$7; next; } +/^# of duplicate test names/ { if (insummary == 1) dupcnt += \$6; next; } /^$/ { if (insummary == 1) { insummary = 0; curvar = "" } next @@ -431,6 +434,8 @@ END { if (untstcnt != 0) printf ("# of untested testcases\t\t%d\n", untstcnt) if (unrescnt != 0) printf ("# of unresolved testcases\t%d\n", unrescnt) if (unsupcnt != 0) printf ("# of unsupported tests\t\t%d\n", unsupcnt) + if (pathcnt != 0) printf ("# of paths in test names\t%d\n", pathcnt) + if (dupcnt != 0) printf ("# of duplicate test names\t%d\n", dupcnt) } EOF @@ -452,6 +457,7 @@ cat << EOF > $TOTAL_AWK BEGIN { tool="$TOOL" passcnt=0; failcnt=0; untstcnt=0; xpasscnt=0; xfailcnt=0; kfailcnt=0; unsupcnt=0; unrescnt=0; dgerrorcnt=0 + pathcnt=0; dupcnt=0 } /^# of DejaGnu errors/ { dgerrorcnt += \$5 } /^# of expected passes/ { passcnt += \$5 } @@ -463,6 +469,8 @@ BEGIN { /^# of untested testcases/ { untstcnt += \$5 } /^# of unresolved testcases/ { unrescnt += \$5 } /^# of unsupported tests/ { unsupcnt += \$5 } +/^# of paths in test names/ { pathcnt += \$7 } +/^# of duplicate test names/ { dupcnt += \$6 } END { printf ("\n\t\t=== %s Summary ===\n\n", tool) if (dgerrorcnt != 0) printf ("# of DejaGnu errors\t\t%d\n", dgerrorcnt) @@ -475,6 +483,8 @@ END { if (untstcnt != 0) printf ("# of untested testcases\t\t%d\n", untstcnt) if (unrescnt != 0) printf ("# of unresolved testcases\t%d\n", unrescnt) if (unsupcnt != 0) printf ("# of unsupported tests\t\t%d\n", unsupcnt) + if (pathcnt != 0) printf ("# of paths in test names\t%d\n", pathcnt) + if (dupcnt != 0) printf ("# of duplicate test names\t%d\n", dupcnt) } EOF -- 2.25.3