From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx07-00178001.pphosted.com (mx07-00178001.pphosted.com [185.132.182.106]) by sourceware.org (Postfix) with ESMTPS id E19413858C56 for ; Fri, 14 Oct 2022 07:42:48 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org E19413858C56 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=foss.st.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=foss.st.com Received: from pps.filterd (m0288072.ppops.net [127.0.0.1]) by mx07-00178001.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 29E6xnn3020383; Fri, 14 Oct 2022 09:42:42 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foss.st.com; h=message-id : date : mime-version : subject : from : to : cc : references : in-reply-to : content-type : content-transfer-encoding; s=selector1; bh=Y2Wi3S7XCh6GrNXUL3jdsUqp65DQfzSvnanUrpAOT6Q=; b=LNSWV+2lDAMp7AU7baXPibhDQDsi4QCSICLyLxyWMKOi6Ovk99IVz6V2sdv1RWcEW+GU g42r+AeG3KnQJNFx39Fk8nbDuiJEsmKpIbk3VgbMgI324UfpaZs9uKDLCufMMJ8PugrR Pe1OxyBp3EGJF7CvQ0i7I1csftq/vK/3oF0YXQRg4N/P3EUkltCHo/qz/bjZr6PDFmND tINYS/W0AkHDZ0sW86OY/4Efl5+pF8DrLvNnjRsjIDA0I0iXns0SZy97RH/cw3z4N0iS Ol1KTRKBM0hs1YSTqH01eUyMV/fsp2cb+grudpz6mVT4fPUMLiJo9EW9nkTOnYknBFvd rw== Received: from beta.dmz-eu.st.com (beta.dmz-eu.st.com [164.129.1.35]) by mx07-00178001.pphosted.com (PPS) with ESMTPS id 3k31ey82a5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 14 Oct 2022 09:42:42 +0200 Received: from euls16034.sgp.st.com (euls16034.sgp.st.com [10.75.44.20]) by beta.dmz-eu.st.com (STMicroelectronics) with ESMTP id 1E677100038; Fri, 14 Oct 2022 09:42:36 +0200 (CEST) Received: from Webmail-eu.st.com (shfdag1node3.st.com [10.75.129.71]) by euls16034.sgp.st.com (STMicroelectronics) with ESMTP id 1465C215158; Fri, 14 Oct 2022 09:42:36 +0200 (CEST) Received: from [10.252.14.104] (10.75.127.116) by SHFDAG1NODE3.st.com (10.75.129.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.2375.31; Fri, 14 Oct 2022 09:42:35 +0200 Message-ID: Date: Fri, 14 Oct 2022 09:42:34 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.3.2 Subject: PING^2 [PATCH] testsuite: Verify that module-mapper is available Content-Language: en-US From: Torbjorn SVENSSON To: CC: , , References: <20220923120331.4136741-1-torbjorn.svensson@foss.st.com> In-Reply-To: Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 8bit X-Originating-IP: [10.75.127.116] X-ClientProxiedBy: GPXDAG2NODE4.st.com (10.75.127.68) To SHFDAG1NODE3.st.com (10.75.129.71) X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-10-14_03,2022-10-13_01,2022-06-22_01 X-Spam-Status: No, score=-10.4 required=5.0 tests=BAYES_00,BODY_8BITS,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,GIT_PATCH_0,KAM_SHORT,RCVD_IN_DNSWL_LOW,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 List-Id: Hi, Ping, https://gcc.gnu.org/pipermail/gcc-patches/2022-October/602843.html Kind regards, Torbjörn On 2022-10-05 11:17, Torbjorn SVENSSON wrote: > Hi, > > Ping, https://gcc.gnu.org/pipermail/gcc-patches/2022-September/602111.html > > Kind regards, > Torbjörn > > On 2022-09-23 14:03, Torbjörn SVENSSON wrote: >> For some test cases, it's required that the optional module mapper >> "g++-mapper-server" is built. As the server is not required, the >> test cases will fail if it can't be found. >> >> gcc/testsuite/ChangeLog: >> >>     * lib/target-supports.exp (check_is_prog_name_available): >>     New. >>     * lib/target-supports-dg.exp >>     (dg-require-prog-name-available): New. >>     * g++.dg/modules/modules.exp: Verify avilability of module >>     mapper. >> >> Signed-off-by: Torbjörn SVENSSON  >> --- >>   gcc/testsuite/g++.dg/modules/modules.exp | 31 ++++++++++++++++++++++++ >>   gcc/testsuite/lib/target-supports-dg.exp | 15 ++++++++++++ >>   gcc/testsuite/lib/target-supports.exp    | 15 ++++++++++++ >>   3 files changed, 61 insertions(+) >> >> diff --git a/gcc/testsuite/g++.dg/modules/modules.exp >> b/gcc/testsuite/g++.dg/modules/modules.exp >> index afb323d0efd..4784803742a 100644 >> --- a/gcc/testsuite/g++.dg/modules/modules.exp >> +++ b/gcc/testsuite/g++.dg/modules/modules.exp >> @@ -279,6 +279,29 @@ proc module-init { src } { >>       return $option_list >>   } >> +# Return 1 if requirements are met >> +proc module-check-requirements { tests } { >> +    foreach test $tests { >> +    set tmp [dg-get-options $test] >> +    foreach op $tmp { >> +        switch [lindex $op 0] { >> +        "dg-additional-options" { >> +            # Example strings to match: >> +            # -fmodules-ts -fmodule-mapper=|@g++-mapper-server\\ -t\\ >> [srcdir]/inc-xlate-1.map >> +            # -fmodules-ts -fmodule-mapper=|@g++-mapper-server >> +            if [regexp -- {(^| )-fmodule-mapper=\|@([^\\ ]*)} [lindex >> $op 2] dummy dummy2 prog] { >> +            verbose "Checking that mapper exist: $prog" >> +            if { ![ check_is_prog_name_available $prog ] } { >> +                return 0 >> +            } >> +            } >> +        } >> +        } >> +    } >> +    } >> +    return 1 >> +} >> + >>   # cleanup any detritus from previous run >>   cleanup_module_files [find $DEFAULT_REPO *.gcm] >> @@ -307,6 +330,14 @@ foreach src [lsort [find $srcdir/$subdir >> {*_a.[CHX}]] { >>       set tests [lsort [find [file dirname $src] \ >>                     [regsub {_a.[CHX]$} [file tail $src] >> {_[a-z].[CHX]}]]] >> +    if { ![module-check-requirements $tests] } { >> +        set testcase [regsub {_a.[CH]} $src {}] >> +        set testcase \ >> +        [string range $testcase [string length "$srcdir/"] end] >> +        unsupported $testcase >> +        continue >> +    } >> + >>       set std_list [module-init $src] >>       foreach std $std_list { >>           set mod_files {} >> diff --git a/gcc/testsuite/lib/target-supports-dg.exp >> b/gcc/testsuite/lib/target-supports-dg.exp >> index aa2164bc789..6ce3b2b1a1b 100644 >> --- a/gcc/testsuite/lib/target-supports-dg.exp >> +++ b/gcc/testsuite/lib/target-supports-dg.exp >> @@ -683,3 +683,18 @@ proc dg-require-symver { args } { >>       set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"] >>       } >>   } >> + >> +# If this target does not provide prog named "$args", skip this test. >> + >> +proc dg-require-prog-name-available { args } { >> +    # The args are within another list; pull them out. >> +    set args [lindex $args 0] >> + >> +    set prog [lindex $args 1] >> + >> +    if { ![ check_is_prog_name_available $prog ] } { >> +        upvar dg-do-what dg-do-what >> +        set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"] >> +    } >> +} >> + >> diff --git a/gcc/testsuite/lib/target-supports.exp >> b/gcc/testsuite/lib/target-supports.exp >> index 703aba412a6..c3b7a6c17b3 100644 >> --- a/gcc/testsuite/lib/target-supports.exp >> +++ b/gcc/testsuite/lib/target-supports.exp >> @@ -11928,3 +11928,18 @@ main: >>       .byte 0 >>     } ""] >>   } >> + >> +# Return 1 if this target has prog named "$prog", 0 otherwise. >> + >> +proc check_is_prog_name_available { prog } { >> +    global tool >> + >> +    set options [list "additional_flags=-print-prog-name=$prog"] >> +    set output [lindex [${tool}_target_compile "" "" "none" $options] 0] >> + >> +    if { $output == $prog } { >> +        return 0 >> +    } >> + >> +    return 1 >> +}