Message ID | or5yc0u6f9.fsf@lxoliva.fsfla.org |
---|---|
State | Accepted |
Headers |
Return-Path: <gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp737152wrn; Thu, 16 Feb 2023 22:56:56 -0800 (PST) X-Google-Smtp-Source: AK7set9e06FJVD+kqwk3/KO3UX6b/FrAcJuRDu8jvHUhfEThly16/bI6hYKOsyuoYfMbdpm/KE3S X-Received: by 2002:aa7:cd02:0:b0:4ac:bde4:322b with SMTP id b2-20020aa7cd02000000b004acbde4322bmr7493613edw.37.1676617016253; Thu, 16 Feb 2023 22:56:56 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1676617016; cv=none; d=google.com; s=arc-20160816; b=cLRWPTGasiUyi6a0c7z/XHJ8oQAviuPB9/4F1BPq7qQHVbnJxAOssiT5oHcLeoZp/U W3W7xcvA15tNc/6MbdSnnSGKh01cfSNcUnpMk9ihDhrZIrIYj+t1jnkEAUjOzInBdkAf o7c3+/GmB35QapqBPaLQanydBmXRTO9UVCVKJyucjPk9c8C9oxuHQbvTSCiDwfGMxRrk /oPhozwtXiVAEyrgEDszgDNjTnlO+GEMe9SrNH9nJuFFFq64vKiTbV1NGzUUe40SxOx3 Ng/PU0SFP/eP869qt8NYpSVadmuVIhFlxLXDivZkVO92Xjktb5uYhG7E9Y5Ro43IFgUG gCsA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:from:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence:mime-version :user-agent:message-id:date:organization:subject:cc:to:dmarc-filter :delivered-to:dkim-signature:dkim-filter; bh=GlaEHsMBvhKh/4i82SlbfazVWIQ8oz0N3rZX6zR2I0c=; b=qzpL0fCMcfESJhaIz45+ZOKtvkrD4exlI9rTRk9doVFc1uTwwYfsNkxjlKJSgOculM UHR6/BezCTC1wv1zomgwpHRliQsF3lztQhq6wG+abPYo9V+ik5TdZuxPEZsIQWKofOhk YAxD+owqUdoEiKDCINCcmG8iKBLhZjnLluZMHqyu/pp16ZmRtcr1DqI3y4FwdD3gu483 HF0E1FX7Kox8jIsx4ZV/GCIW8U5NNCtQ1v4ruAiigdqN7o7SLZqVHtjmNJCiGSZi4hrd jhTHOaKVNv5dnU+wTMxbCBQTcEK1L3Niw22WPGwZxPO3jO70Z7vwrn4UfxzjSvgSbSUT w20A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gcc.gnu.org header.s=default header.b=wnOn5P6s; spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gnu.org Received: from sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id r11-20020aa7da0b000000b004acdef7baa9si4329388eds.522.2023.02.16.22.56.56 for <ouuuleilei@gmail.com> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Feb 2023 22:56:56 -0800 (PST) Received-SPF: pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) client-ip=2620:52:3:1:0:246e:9693:128c; Authentication-Results: mx.google.com; dkim=pass header.i=@gcc.gnu.org header.s=default header.b=wnOn5P6s; spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gnu.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 115AC3858C31 for <ouuuleilei@gmail.com>; Fri, 17 Feb 2023 06:56:55 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 115AC3858C31 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1676617015; bh=GlaEHsMBvhKh/4i82SlbfazVWIQ8oz0N3rZX6zR2I0c=; h=To:Cc:Subject:Date:List-Id:List-Unsubscribe:List-Archive: List-Post:List-Help:List-Subscribe:From:Reply-To:From; b=wnOn5P6sTKI5GzI8Ipn+4Za801TPCHHbUeI/NCjP1hKLQwYe1ClbBc+jWXZeUInIc 1E3vyH5usMLftPVgMYaldlbOkl+BW/wVG7OVukxKfBwF2fp6NMVmvgPhHNMWV8AwJH 5f/IZoCcSGEA63Me19vx7AE7Mu1wTNzsoupmrgbU= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from rock.gnat.com (rock.gnat.com [205.232.38.15]) by sourceware.org (Postfix) with ESMTPS id 69F223858D33 for <gcc-patches@gcc.gnu.org>; Fri, 17 Feb 2023 06:56:12 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 69F223858D33 Received: from localhost (localhost.localdomain [127.0.0.1]) by filtered-rock.gnat.com (Postfix) with ESMTP id 2D05C116B69; Fri, 17 Feb 2023 01:56:12 -0500 (EST) X-Virus-Scanned: Debian amavisd-new at gnat.com Received: from rock.gnat.com ([127.0.0.1]) by localhost (rock.gnat.com [127.0.0.1]) (amavisd-new, port 10024) with LMTP id g1gAYYcH56Kp; Fri, 17 Feb 2023 01:56:12 -0500 (EST) Received: from free.home (tron.gnat.com [IPv6:2620:20:4000:0:46a8:42ff:fe0e:e294]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by rock.gnat.com (Postfix) with ESMTPS id B04EB116B60; Fri, 17 Feb 2023 01:56:11 -0500 (EST) Received: from livre (livre.home [172.31.160.2]) by free.home (8.15.2/8.15.2) with ESMTPS id 31H6tshJ090481 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Fri, 17 Feb 2023 03:55:55 -0300 To: gcc-patches@gcc.gnu.org Cc: ro@CeBiTec.Uni-Bielefeld.DE, mikestump@comcast.net, jason@redhat.com, nathan@acm.org Subject: [PATCH] Skip module_cmi_p and related unsupported module test Organization: Free thinker, does not speak for AdaCore Date: Fri, 17 Feb 2023 03:55:54 -0300 Message-ID: <or5yc0u6f9.fsf@lxoliva.fsfla.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Scanned-By: MIMEDefang 2.84 X-Spam-Status: No, score=-12.3 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_STATUS, SPF_HELO_NONE, SPF_PASS, 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: 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> From: Alexandre Oliva via Gcc-patches <gcc-patches@gcc.gnu.org> Reply-To: Alexandre Oliva <oliva@adacore.com> Errors-To: gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org Sender: "Gcc-patches" <gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org> X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1758060364004251412?= X-GMAIL-MSGID: =?utf-8?q?1758060364004251412?= |
Series |
Skip module_cmi_p and related unsupported module test
|
|
Checks
Context | Check | Description |
---|---|---|
snail/gcc-patch-check | success | Github commit url |
Commit Message
Alexandre Oliva
Feb. 17, 2023, 6:55 a.m. UTC
When a multi-source module is found to be unsupported, we fail module_cmi_p and subsequent sources. Override proc unsupported to mark the result in module_do, and test it to skip module_cmp_p and subsequent related tests. Regstrapped on x86_64-linux-gnu. Tested on arm-vxworks7 (gcc-12) and arm-eabi (trunk). Ok to install? for gcc/testsuite/ChangeLog * g++.dg/modules/modules.exp: Override unsupported to update module_do, and test it after dg-test. --- gcc/testsuite/g++.dg/modules/modules.exp | 14 ++++++++++++++ 1 file changed, 14 insertions(+)
Comments
On 2/17/23 22:55, Alexandre Oliva wrote: > > When a multi-source module is found to be unsupported, we fail > module_cmi_p and subsequent sources. Override proc unsupported to > mark the result in module_do, and test it to skip module_cmp_p and > subsequent related tests. Hmm, I guess the problem that the modules tests are trying to use dg-test as a subroutine, and can't get at the result of the test to skip later processing? Seems like LTO deals with the same issue by not using dg-test at all. This seems like an ugly kludge around that problem, but I don't have any clever ideas of a better approach short of rewriting everything. So, OK with a comment explaining the rationale above your overridden "unsupported". Also, your commit subject line needs a subsystem tag, I guess "testsuite:" in this case. > Regstrapped on x86_64-linux-gnu. > Tested on arm-vxworks7 (gcc-12) and arm-eabi (trunk). Ok to install? > > for gcc/testsuite/ChangeLog > > * g++.dg/modules/modules.exp: Override unsupported to update > module_do, and test it after dg-test. > --- > gcc/testsuite/g++.dg/modules/modules.exp | 14 ++++++++++++++ > 1 file changed, 14 insertions(+) > > diff --git a/gcc/testsuite/g++.dg/modules/modules.exp b/gcc/testsuite/g++.dg/modules/modules.exp > index 61994b059457b..ba1287427bf05 100644 > --- a/gcc/testsuite/g++.dg/modules/modules.exp > +++ b/gcc/testsuite/g++.dg/modules/modules.exp > @@ -315,6 +315,14 @@ proc module-check-requirements { tests } { > # cleanup any detritus from previous run > cleanup_module_files [find $DEFAULT_REPO *.gcm] > > +set module_do {"compile" "P"} > +rename unsupported saved-unsupported > +proc unsupported { args } { > + global module_do > + lset module_do 1 "N" > + return [saved-unsupported $args] > +} > + > # not grouped tests, sadly tcl doesn't have negated glob > foreach test [prune [lsort [find $srcdir/$subdir {*.[CH]}]] \ > "$srcdir/$subdir/*_?.\[CH\]"] { > @@ -327,6 +335,9 @@ foreach test [prune [lsort [find $srcdir/$subdir {*.[CH]}]] \ > set module_cmis {} > verbose "Testing $nshort $std" 1 > dg-test $test "$std" $DEFAULT_MODFLAGS > + if { [lindex $module_do 1] == "N" } { > + continue > + } > set testcase [string range $test [string length "$srcdir/"] end] > cleanup_module_files [module_cmi_p $testcase $module_cmis] > } > @@ -372,6 +383,9 @@ foreach src [lsort [find $srcdir/$subdir {*_a.[CHX}]] { > } > } > dg-test -keep-output $test "$std" $DEFAULT_MODFLAGS > + if { [lindex $module_do 1] == "N" } { > + break > + } > set testcase [string range $test [string length "$srcdir/"] end] > lappend mod_files [module_cmi_p $testcase $module_cmis] > } >
On Feb 20, 2023, Jason Merrill <jason@redhat.com> wrote: > This seems like an ugly kludge around that problem, but I don't have > any clever ideas of a better approach short of rewriting everything. > So, OK with a comment explaining the rationale above your overridden > "unsupported". > Also, your commit subject line needs a subsystem tag, I guess > "testsuite:" in this case. *nod*, thanks, I'm checking in the adjusted patch below. testsuite: Skip module_cmi_p and related unsupported module test From: Alexandre Oliva <oliva@adacore.com> When a multi-source module is found to be unsupported, we fail module_cmi_p and subsequent sources. Override proc unsupported to mark the result in module_do, and test it to skip module_cmp_p and subsequent related tests. for gcc/testsuite/ChangeLog * g++.dg/modules/modules.exp: Override unsupported to update module_do, and test it after dg-test. --- gcc/testsuite/g++.dg/modules/modules.exp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/gcc/testsuite/g++.dg/modules/modules.exp b/gcc/testsuite/g++.dg/modules/modules.exp index 61994b059457b..e66b2082f2055 100644 --- a/gcc/testsuite/g++.dg/modules/modules.exp +++ b/gcc/testsuite/g++.dg/modules/modules.exp @@ -315,6 +315,17 @@ proc module-check-requirements { tests } { # cleanup any detritus from previous run cleanup_module_files [find $DEFAULT_REPO *.gcm] +# Override unsupported to set the second element of module_do to "N", +# so that, after an unsupported result in dg-test, we can skip rather +# than fail subsequent related tests. +set module_do {"compile" "P"} +rename unsupported saved-unsupported +proc unsupported { args } { + global module_do + lset module_do 1 "N" + return [saved-unsupported $args] +} + # not grouped tests, sadly tcl doesn't have negated glob foreach test [prune [lsort [find $srcdir/$subdir {*.[CH]}]] \ "$srcdir/$subdir/*_?.\[CH\]"] { @@ -327,6 +338,9 @@ foreach test [prune [lsort [find $srcdir/$subdir {*.[CH]}]] \ set module_cmis {} verbose "Testing $nshort $std" 1 dg-test $test "$std" $DEFAULT_MODFLAGS + if { [lindex $module_do 1] == "N" } { + continue + } set testcase [string range $test [string length "$srcdir/"] end] cleanup_module_files [module_cmi_p $testcase $module_cmis] } @@ -372,6 +386,9 @@ foreach src [lsort [find $srcdir/$subdir {*_a.[CHX}]] { } } dg-test -keep-output $test "$std" $DEFAULT_MODFLAGS + if { [lindex $module_do 1] == "N" } { + break + } set testcase [string range $test [string length "$srcdir/"] end] lappend mod_files [module_cmi_p $testcase $module_cmis] }
diff --git a/gcc/testsuite/g++.dg/modules/modules.exp b/gcc/testsuite/g++.dg/modules/modules.exp index 61994b059457b..ba1287427bf05 100644 --- a/gcc/testsuite/g++.dg/modules/modules.exp +++ b/gcc/testsuite/g++.dg/modules/modules.exp @@ -315,6 +315,14 @@ proc module-check-requirements { tests } { # cleanup any detritus from previous run cleanup_module_files [find $DEFAULT_REPO *.gcm] +set module_do {"compile" "P"} +rename unsupported saved-unsupported +proc unsupported { args } { + global module_do + lset module_do 1 "N" + return [saved-unsupported $args] +} + # not grouped tests, sadly tcl doesn't have negated glob foreach test [prune [lsort [find $srcdir/$subdir {*.[CH]}]] \ "$srcdir/$subdir/*_?.\[CH\]"] { @@ -327,6 +335,9 @@ foreach test [prune [lsort [find $srcdir/$subdir {*.[CH]}]] \ set module_cmis {} verbose "Testing $nshort $std" 1 dg-test $test "$std" $DEFAULT_MODFLAGS + if { [lindex $module_do 1] == "N" } { + continue + } set testcase [string range $test [string length "$srcdir/"] end] cleanup_module_files [module_cmi_p $testcase $module_cmis] } @@ -372,6 +383,9 @@ foreach src [lsort [find $srcdir/$subdir {*_a.[CHX}]] { } } dg-test -keep-output $test "$std" $DEFAULT_MODFLAGS + if { [lindex $module_do 1] == "N" } { + break + } set testcase [string range $test [string length "$srcdir/"] end] lappend mod_files [module_cmi_p $testcase $module_cmis] }