[ping^3] Make sure that we get unique test names if several DejaGnu directives refer to the same line [PR102735]
Message ID | 87mtmfx6x3.fsf@euler.schwinge.homeip.net |
---|---|
State | Superseded |
Headers |
Return-Path: <gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org> 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 796BD3858406 for <patchwork@sourceware.org>; Mon, 8 Nov 2021 10:46:32 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from esa2.mentor.iphmx.com (esa2.mentor.iphmx.com [68.232.141.98]) by sourceware.org (Postfix) with ESMTPS id 602D23858423 for <gcc-patches@gcc.gnu.org>; Mon, 8 Nov 2021 10:45:23 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 602D23858423 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=mentor.com IronPort-SDR: xYPKzxmplDLgZM6ikhaERd6z17dD4aFe5UCinlKAFgGDzVl4Wnnq7Pxmq1ETvqfDmLvzvzSN/8 TeyZ7W0mrfCqG1I70TdyLHhKyhymSA0ype27Yawbury4TsjWuf++wQUwIqoqWgvUS0668xpWUe 8rzBf3gPUNpCQWEmhlscywX+CVVkI7zF0K1Dg79JNvD4kpJrYKk4seaL+VBB0YOzFQMBC8wIyf vBAOFQanT/iQ/BkxbnUHSlj6JfiyqyTtY1xrGc7r5DF7uKq0HGYbO+PakozVK9PsZr1AY0Qe3O ZgTjXpJCJL1WIUs3AJ5n0ZaC X-IronPort-AV: E=Sophos;i="5.87,218,1631606400"; d="scan'208,223";a="68178110" Received: from orw-gwy-01-in.mentorg.com ([192.94.38.165]) by esa2.mentor.iphmx.com with ESMTP; 08 Nov 2021 02:45:21 -0800 IronPort-SDR: TNylRQk+SzqV7czwL4UXS+W21qNHnekoBoTcgbReeo4YxtytSEtZ/+bIGSbsmGM4dcvOGxJIkU nfHtbpph/k+25daVttaxk3uzKtnUEt/tyLc14gCQalCIRqtnGaZuOrq5SX63rDpsEhd/XCWQ4s QmEmdHNlzKKfT/ybvGNPnMssylyacBZNaGSd2QwwaDotAzdx4bDiNAU9fW76XG+uvDhwsoHGow 2uwVZJ7L3UMt9Am1+VH3vC97UvQEKd4CrUMln58RYhm/2lg1AvJiFEVZP6d7QYMwqs5juxO7t+ oAM= From: Thomas Schwinge <thomas@codesourcery.com> To: Jeff Law <jeffreyalaw@gmail.com>, <gcc-patches@gcc.gnu.org> Subject: [ping^3] Make sure that we get unique test names if several DejaGnu directives refer to the same line [PR102735] In-Reply-To: <87bl3rap9i.fsf@euler.schwinge.homeip.net> References: <507c210a-e2f2-903a-bc01-8415ac7cef99@gmail.com> <87fstwzxbh.fsf@euler.schwinge.homeip.net> <87zgrua7ji.fsf@euler.schwinge.homeip.net> <87bl3rap9i.fsf@euler.schwinge.homeip.net> User-Agent: Notmuch/0.29.3+94~g74c3f1b (https://notmuchmail.org) Emacs/27.1 (x86_64-pc-linux-gnu) Date: Mon, 8 Nov 2021 11:45:12 +0100 Message-ID: <87mtmfx6x3.fsf@euler.schwinge.homeip.net> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: SVR-IES-MBX-04.mgc.mentorg.com (139.181.222.4) To svr-ies-mbx-01.mgc.mentorg.com (139.181.222.1) X-Spam-Status: No, score=-12.1 required=5.0 tests=BAYES_00, GIT_PATCH_0, HEADER_FROM_DIFFERENT_DOMAINS, KAM_DMARC_STATUS, KAM_SHORT, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list <gcc-patches.gcc.gnu.org> List-Unsubscribe: <https://gcc.gnu.org/mailman/options/gcc-patches>, <mailto:gcc-patches-request@gcc.gnu.org?subject=unsubscribe> List-Archive: <https://gcc.gnu.org/pipermail/gcc-patches/> List-Post: <mailto:gcc-patches@gcc.gnu.org> List-Help: <mailto:gcc-patches-request@gcc.gnu.org?subject=help> List-Subscribe: <https://gcc.gnu.org/mailman/listinfo/gcc-patches>, <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe> Cc: nickhuang99@hotmail.com Errors-To: gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org Sender: "Gcc-patches" <gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org> |
Series |
[ping^3] Make sure that we get unique test names if several DejaGnu directives refer to the same line [PR102735]
|
|
Commit Message
Thomas Schwinge
Nov. 8, 2021, 10:45 a.m. UTC
Hi! Ping, once more. Grüße Thomas On 2021-10-14T12:12:41+0200, I wrote: > Hi! > > Ping, again. > > Commit log updated for <https://gcc.gnu.org/PR102735> > "privatization-1-compute.c results in both XFAIL and PASS". > > > Grüße > Thomas > > > On 2021-09-30T08:42:25+0200, I wrote: >> Hi! >> >> Ping. >> >> On 2021-09-22T13:03:46+0200, I wrote: >>> On 2021-09-19T11:35:00-0600, Jeff Law via Gcc-patches <gcc-patches@gcc.gnu.org> wrote: >>>> A couple of goacc tests do not have unique names. >>> >>> Thanks for fixing this up, and sorry, largely my "fault", I suppose. ;-| >>> >>>> This causes problems >>>> for the test comparison script when one of the test passes and the other >>>> fails -- in this scenario the test comparison script claims there is a >>>> regression. >>> >>> So I understand correctly that this is a problem not just for actual >>> mixed PASS vs. FAIL (which we'd like you to report anyway!) that appear >>> for the same line, but also for mixed PASS vs. XFAIL? (Because, the >>> latter appears to be what you're addressing with your commit here.) >>> >>>> This slipped through for a while because I had turned off x86_64 testing >>>> (others test it regularly and I was revamping the tester's hardware >>>> requirements). Now that I've acquired more x86_64 resources and turned >>>> on native x86 testing again, it's been flagged. >>> >>> (I don't follow that argument -- these test cases should be all generic? >>> Anyway, not important, I guess.) >>> >>>> This patch just adds a numeric suffix to the TODO string to disambiguate >>>> them. >>> >>> So, instead of doing this manually (always error-prone!), like you've... >>> >>>> Committed to the trunk, >>> >>>> commit f75b237254f32d5be32c9d9610983b777abea633 >>>> Author: Jeff Law <jeffreyalaw@gmail.com> >>>> Date: Sun Sep 19 13:31:32 2021 -0400 >>>> >>>> [committed] Make test names unique for a couple of goacc tests >>> >>>> --- a/gcc/testsuite/gfortran.dg/goacc/privatization-1-compute.f90 >>>> +++ b/gcc/testsuite/gfortran.dg/goacc/privatization-1-compute.f90 >>>> @@ -39,9 +39,9 @@ contains >>>> !$acc atomic write ! ... to force 'TREE_ADDRESSABLE'. >>>> y = a >>>> !$acc end parallel >>>> - ! { dg-note {variable 'i' in 'private' clause potentially has improper OpenACC privatization level: 'parm_decl'} "TODO" { xfail *-*-* } l_compute$c_compute } >>>> - ! { dg-note {variable 'j' in 'private' clause potentially has improper OpenACC privatization level: 'parm_decl'} "TODO" { xfail *-*-* } l_compute$c_compute } >>>> - ! { dg-note {variable 'a' in 'private' clause potentially has improper OpenACC privatization level: 'parm_decl'} "TODO" { xfail *-*-* } l_compute$c_compute } >>>> + ! { dg-note {variable 'i' in 'private' clause potentially has improper OpenACC privatization level: 'parm_decl'} "TODO2" { xfail *-*-* } l_compute$c_compute } >>>> + ! { dg-note {variable 'j' in 'private' clause potentially has improper OpenACC privatization level: 'parm_decl'} "TODO3" { xfail *-*-* } l_compute$c_compute } >>>> + ! { dg-note {variable 'a' in 'private' clause potentially has improper OpenACC privatization level: 'parm_decl'} "TODO4" { xfail *-*-* } l_compute$c_compute } >>> >>> ... etc. (also similarly in a handful of earlier commits, if I remember >>> correctly), why don't we do that programmatically, like in the attached >>> "Make sure that we get unique test names if several DejaGnu directives >>> refer to the same line", once and for all? OK to push after proper >>> testing? >> >> Attached again, for easy reference. >> >> I figure it may help if I showed an example of how this changes things; >> for the test case cited above (word-diff): >> >> PASS: gfortran.dg/goacc/privatization-1-compute.f90 -O {+at line 40+} (test for warnings, line 39) >> PASS: gfortran.dg/goacc/privatization-1-compute.f90 -O {+at line 41+} (test for warnings, line 22) >> PASS: gfortran.dg/goacc/privatization-1-compute.f90 -O {+at line 42+} (test for warnings, line 39) >> PASS: gfortran.dg/goacc/privatization-1-compute.f90 -O {+at line 43+} (test for warnings, line 22) >> PASS: gfortran.dg/goacc/privatization-1-compute.f90 -O {+at line 44+} (test for warnings, line 39) >> PASS: gfortran.dg/goacc/privatization-1-compute.f90 -O {+at line 45+} (test for warnings, line 22) >> XFAIL: gfortran.dg/goacc/privatization-1-compute.f90 -O TODO2 {+at line 50+} (test for warnings, line 29) >> XFAIL: gfortran.dg/goacc/privatization-1-compute.f90 -O TODO3 {+at line 51+} (test for warnings, line 29) >> XFAIL: gfortran.dg/goacc/privatization-1-compute.f90 -O TODO4 {+at line 52+} (test for warnings, line 29) >> PASS: gfortran.dg/goacc/privatization-1-compute.f90 -O TODO {+at line 53+} (test for warnings, line 29) >> PASS: gfortran.dg/goacc/privatization-1-compute.f90 -O {+at line 54+} (test for warnings, line 29) >> PASS: gfortran.dg/goacc/privatization-1-compute.f90 -O (test for excess errors) >> >> Given that we now amend the 'comment' by 'at line $useline"', and given >> that only ever one DejaGnu directive may appear on one source line, all >> these output lines now must be unique. (If we wanted to, we again could >> 's%TODO[0-9]+%TODO%', reverting your change cited above.) >> >> >> Grüße >> Thomas ----------------- Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955
Comments
Hi! ..., and here is another ping. Grüße Thomas On 2021-11-08T11:45:12+0100, I wrote: > Hi! > > Ping, once more. > > > Grüße > Thomas > > > On 2021-10-14T12:12:41+0200, I wrote: >> Hi! >> >> Ping, again. >> >> Commit log updated for <https://gcc.gnu.org/PR102735> >> "privatization-1-compute.c results in both XFAIL and PASS". >> >> >> Grüße >> Thomas >> >> >> On 2021-09-30T08:42:25+0200, I wrote: >>> Hi! >>> >>> Ping. >>> >>> On 2021-09-22T13:03:46+0200, I wrote: >>>> On 2021-09-19T11:35:00-0600, Jeff Law via Gcc-patches <gcc-patches@gcc.gnu.org> wrote: >>>>> A couple of goacc tests do not have unique names. >>>> >>>> Thanks for fixing this up, and sorry, largely my "fault", I suppose. ;-| >>>> >>>>> This causes problems >>>>> for the test comparison script when one of the test passes and the other >>>>> fails -- in this scenario the test comparison script claims there is a >>>>> regression. >>>> >>>> So I understand correctly that this is a problem not just for actual >>>> mixed PASS vs. FAIL (which we'd like you to report anyway!) that appear >>>> for the same line, but also for mixed PASS vs. XFAIL? (Because, the >>>> latter appears to be what you're addressing with your commit here.) >>>> >>>>> This slipped through for a while because I had turned off x86_64 testing >>>>> (others test it regularly and I was revamping the tester's hardware >>>>> requirements). Now that I've acquired more x86_64 resources and turned >>>>> on native x86 testing again, it's been flagged. >>>> >>>> (I don't follow that argument -- these test cases should be all generic? >>>> Anyway, not important, I guess.) >>>> >>>>> This patch just adds a numeric suffix to the TODO string to disambiguate >>>>> them. >>>> >>>> So, instead of doing this manually (always error-prone!), like you've... >>>> >>>>> Committed to the trunk, >>>> >>>>> commit f75b237254f32d5be32c9d9610983b777abea633 >>>>> Author: Jeff Law <jeffreyalaw@gmail.com> >>>>> Date: Sun Sep 19 13:31:32 2021 -0400 >>>>> >>>>> [committed] Make test names unique for a couple of goacc tests >>>> >>>>> --- a/gcc/testsuite/gfortran.dg/goacc/privatization-1-compute.f90 >>>>> +++ b/gcc/testsuite/gfortran.dg/goacc/privatization-1-compute.f90 >>>>> @@ -39,9 +39,9 @@ contains >>>>> !$acc atomic write ! ... to force 'TREE_ADDRESSABLE'. >>>>> y = a >>>>> !$acc end parallel >>>>> - ! { dg-note {variable 'i' in 'private' clause potentially has improper OpenACC privatization level: 'parm_decl'} "TODO" { xfail *-*-* } l_compute$c_compute } >>>>> - ! { dg-note {variable 'j' in 'private' clause potentially has improper OpenACC privatization level: 'parm_decl'} "TODO" { xfail *-*-* } l_compute$c_compute } >>>>> - ! { dg-note {variable 'a' in 'private' clause potentially has improper OpenACC privatization level: 'parm_decl'} "TODO" { xfail *-*-* } l_compute$c_compute } >>>>> + ! { dg-note {variable 'i' in 'private' clause potentially has improper OpenACC privatization level: 'parm_decl'} "TODO2" { xfail *-*-* } l_compute$c_compute } >>>>> + ! { dg-note {variable 'j' in 'private' clause potentially has improper OpenACC privatization level: 'parm_decl'} "TODO3" { xfail *-*-* } l_compute$c_compute } >>>>> + ! { dg-note {variable 'a' in 'private' clause potentially has improper OpenACC privatization level: 'parm_decl'} "TODO4" { xfail *-*-* } l_compute$c_compute } >>>> >>>> ... etc. (also similarly in a handful of earlier commits, if I remember >>>> correctly), why don't we do that programmatically, like in the attached >>>> "Make sure that we get unique test names if several DejaGnu directives >>>> refer to the same line", once and for all? OK to push after proper >>>> testing? >>> >>> Attached again, for easy reference. >>> >>> I figure it may help if I showed an example of how this changes things; >>> for the test case cited above (word-diff): >>> >>> PASS: gfortran.dg/goacc/privatization-1-compute.f90 -O {+at line 40+} (test for warnings, line 39) >>> PASS: gfortran.dg/goacc/privatization-1-compute.f90 -O {+at line 41+} (test for warnings, line 22) >>> PASS: gfortran.dg/goacc/privatization-1-compute.f90 -O {+at line 42+} (test for warnings, line 39) >>> PASS: gfortran.dg/goacc/privatization-1-compute.f90 -O {+at line 43+} (test for warnings, line 22) >>> PASS: gfortran.dg/goacc/privatization-1-compute.f90 -O {+at line 44+} (test for warnings, line 39) >>> PASS: gfortran.dg/goacc/privatization-1-compute.f90 -O {+at line 45+} (test for warnings, line 22) >>> XFAIL: gfortran.dg/goacc/privatization-1-compute.f90 -O TODO2 {+at line 50+} (test for warnings, line 29) >>> XFAIL: gfortran.dg/goacc/privatization-1-compute.f90 -O TODO3 {+at line 51+} (test for warnings, line 29) >>> XFAIL: gfortran.dg/goacc/privatization-1-compute.f90 -O TODO4 {+at line 52+} (test for warnings, line 29) >>> PASS: gfortran.dg/goacc/privatization-1-compute.f90 -O TODO {+at line 53+} (test for warnings, line 29) >>> PASS: gfortran.dg/goacc/privatization-1-compute.f90 -O {+at line 54+} (test for warnings, line 29) >>> PASS: gfortran.dg/goacc/privatization-1-compute.f90 -O (test for excess errors) >>> >>> Given that we now amend the 'comment' by 'at line $useline"', and given >>> that only ever one DejaGnu directive may appear on one source line, all >>> these output lines now must be unique. (If we wanted to, we again could >>> 's%TODO[0-9]+%TODO%', reverting your change cited above.) >>> >>> >>> Grüße >>> Thomas ----------------- Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955
From 347cce092ebd954d91046804c1d2b51b24eef68b Mon Sep 17 00:00:00 2001 From: Thomas Schwinge <thomas@codesourcery.com> Date: Wed, 22 Sep 2021 12:42:41 +0200 Subject: [PATCH] Make sure that we get unique test names if several DejaGnu directives refer to the same line [PR102735] gcc/testsuite/ PR testsuite/102735 * lib/gcc-dg.exp (process-message): Make sure that we get unique test names. --- gcc/testsuite/lib/gcc-dg.exp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/gcc/testsuite/lib/gcc-dg.exp b/gcc/testsuite/lib/gcc-dg.exp index 7edd070d71d..78a6c3651ef 100644 --- a/gcc/testsuite/lib/gcc-dg.exp +++ b/gcc/testsuite/lib/gcc-dg.exp @@ -1191,8 +1191,18 @@ proc process-message { msgproc msgprefix dgargs } { upvar dg-messages dg-messages if { [llength $dgargs] == 5 } { - set num [get-absolute-line [lindex $dgargs 0] [lindex $dgargs 4]] - set dgargs [lreplace $dgargs 4 4 $num] + set useline [lindex $dgargs 0] + + # Resolve absolute line number. + set line [get-absolute-line $useline [lindex $dgargs 4]] + set dgargs [lreplace $dgargs 4 4 $line] + + if { $line != $useline } { + # Make sure that we get unique test names if different USELINEs + # refer to the same LINE. + set comment "[lindex $dgargs 2] at line $useline" + set dgargs [lreplace $dgargs 2 2 $comment] + } } # Process the dg- directive, including adding the regular expression -- 2.33.0