From patchwork Mon Oct 21 14:31:36 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Burgess X-Patchwork-Id: 35197 Received: (qmail 35534 invoked by alias); 21 Oct 2019 14:31:47 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 35515 invoked by uid 89); 21 Oct 2019 14:31:47 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-23.9 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_PASS autolearn=ham version=3.3.1 spammy=r*, faces, H*MI:andrew, prog X-HELO: mail-wm1-f47.google.com Received: from mail-wm1-f47.google.com (HELO mail-wm1-f47.google.com) (209.85.128.47) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 21 Oct 2019 14:31:43 +0000 Received: by mail-wm1-f47.google.com with SMTP id b24so13029092wmj.5 for ; Mon, 21 Oct 2019 07:31:43 -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; bh=nle/D+tHBkL31Egn9edj2hBjKD2O0q/5wnjKueJ97hE=; b=FYPoSIsOG2xXV2l0Zejs2Idfp2MLxeRGQY9mDuve0VOzSROS9AnDdXzJvmY8CzpNwF QqFL2+NuysAX3HHFHhPTEcu4r3CoCh1++N77pkpx/Zk2PRHVskrqB01TjG6QcnjshS9Z Q1RcB8dQ2xj7TLI/UUas/rsPFLSFmDhgpEBL2c39e9B3UR3OfaMf22VJ844MxZey+ruf pSvNpaLoLw4QCNeHDL9jd0ni8HvwNuh7DzQH9L8RPOb/IvuNCzd70joNO01/kjiufIgF +FRR23XbOW3wrsmcMNaOgBpxyVnZiomxv9x27uVR7E7uco/4GaVEQAmtOCIA3gQ7mNiA cfoQ== Return-Path: Received: from localhost (host86-128-12-122.range86-128.btcentralplus.com. [86.128.12.122]) by smtp.gmail.com with ESMTPSA id n17sm3048661wrt.25.2019.10.21.07.31.40 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 21 Oct 2019 07:31:40 -0700 (PDT) From: Andrew Burgess To: gdb-patches , binutils@sourceware.org Cc: Andrew Burgess Subject: [PUSHED] contrib: Update dg-extract-results.* from gcc Date: Mon, 21 Oct 2019 15:31:36 +0100 Message-Id: <20191021143136.5832-1-andrew.burgess@embecosm.com> X-IsSubscribed: yes The dg-extract-results scripts have been updated in the gcc repository. This commit copies the updated versions of the scripts in to the binutils-gdb repository. There are two changes, these are: 1. Improved detection of timeout lines, though I suspect this only applies to gcc results, and 2. Detection of KPASS results, this is of interest to gdb, where these results would not be included in the final .sum file. A grep over binutils-gdb shows the dg-extract-results is not used by ld, gas, or binutils, however I tested these anyway and saw no changes in the final .sum files (tested on x86-64 GNU/Linux). On gdb when running tests in parallel dg-extract-results is used, and the final .sum file now includes the KPASS results. contrib/ChangeLog: * dg-extract-results.py: Update from gcc repo. * dg-extract-results.sh: Likewise. Change-Id: I54abd07f4e8f5cf88a6db74519674f6939860157 --- contrib/ChangeLog | 5 +++++ contrib/dg-extract-results.py | 23 +++++++++++++++++----- contrib/dg-extract-results.sh | 44 ++++++++++++++++++++++++++++++++++++------- 3 files changed, 60 insertions(+), 12 deletions(-) diff --git a/contrib/dg-extract-results.py b/contrib/dg-extract-results.py index 4b02a5bea92..7100794d42a 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):\s*(.+)') + r'|KFAIL|KPASS):\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 @@ -239,6 +239,7 @@ class Prog: harness = None segment = None final_using = 0 + has_warning = 0 # If this is the first run for this variation, add any text before # the first harness to the header. @@ -292,10 +293,22 @@ class Prog: # Ugly hack to get the right order for gfortran. if name.startswith ('gfortran.dg/g77/'): name = 'h' + name - key = (name, len (harness.results)) - harness.results.append ((key, line)) - if not first_key and sort_logs: - first_key = key + # If we have a time out warning, make sure it appears + # before the following testcase diagnostic: we insert + # the testname before 'program' so that sort faces a + # list of testnames. + if line.startswith ('WARNING: program timed out'): + has_warning = 1 + else: + if has_warning == 1: + key = (name, len (harness.results)) + myline = 'WARNING: %s program timed out.\n' % name + harness.results.append ((key, myline)) + has_warning = 0 + key = (name, len (harness.results)) + harness.results.append ((key, line)) + if not first_key and sort_logs: + first_key = key if line.startswith ('ERROR: (DejaGnu)'): for i in range (len (self.count_names)): if 'DejaGnu errors' in self.count_names[i]: diff --git a/contrib/dg-extract-results.sh b/contrib/dg-extract-results.sh index 6ee3d26de31..f948088370e 100755 --- a/contrib/dg-extract-results.sh +++ b/contrib/dg-extract-results.sh @@ -298,6 +298,8 @@ BEGIN { cnt=0 print_using=0 need_close=0 + has_timeout=0 + timeout_cnt=0 } /^EXPFILE: / { expfiles[expfileno] = \$2 @@ -324,23 +326,51 @@ BEGIN { } } /^\t\t=== .* ===$/ { curvar = ""; next } -/^(PASS|XPASS|FAIL|XFAIL|UNRESOLVED|WARNING|ERROR|UNSUPPORTED|UNTESTED|KFAIL):/ { +/^(PASS|XPASS|FAIL|XFAIL|UNRESOLVED|WARNING|ERROR|UNSUPPORTED|UNTESTED|KFAIL|KPASS):/ { testname=\$2 # Ugly hack for gfortran.dg/dg.exp if ("$TOOL" == "gfortran" && testname ~ /^gfortran.dg\/g77\//) testname="h"testname + if ("$MODE" == "sum") { + if (\$0 ~ /^WARNING: program timed out/) { + has_timeout=1 + timeout_cnt=cnt+1 + } else { + # Prepare timeout replacement message in case it's needed + timeout_msg=\$0 + sub(\$1, "WARNING:", timeout_msg) + } + } } /^$/ { if ("$MODE" == "sum") next } { if (variant == curvar && curfile) { if ("$MODE" == "sum") { - printf "%s %08d|", testname, cnt >> curfile - cnt = cnt + 1 + # Do not print anything if the current line is a timeout + if (has_timeout == 0) { + # If the previous line was a timeout, + # insert the full current message without keyword + if (timeout_cnt != 0) { + printf "%s %08d|%s program timed out.\n", testname, timeout_cnt-1, timeout_msg >> curfile + timeout_cnt = 0 + cnt = cnt + 1 + } + printf "%s %08d|", testname, cnt >> curfile + cnt = cnt + 1 + filewritten[curfile]=1 + need_close=1 + print >> curfile + } + has_timeout=0 + } else { + filewritten[curfile]=1 + need_close=1 + print >> curfile } - filewritten[curfile]=1 - need_close=1 - print >> curfile - } else + } else { + has_timeout=0 + timeout_cnt=0 next + } } END { n=1