On Thu, Nov 17, 2022 at 6:09 PM Torbjorn SVENSSON via Gcc-patches <gcc-patches@gcc.gnu.org> wrote: > > Hi, > > Ping, https://gcc.gnu.org/pipermail/gcc-patches/2022-November/604895.html > > Ok for trunk?
OK. > Kind regards, > Torbjörn > > On 2022-11-02 19:13, Torbjorn SVENSSON wrote: > > Hi, > > > > Ping, https://gcc.gnu.org/pipermail/gcc-patches/2022-October/602844.html > > > > Ok for trunk? > > > > Kind regards, > > Torbjörn > > > > On 2022-10-25 16:24, Torbjorn SVENSSON via Gcc-patches wrote: > >> Hi, > >> > >> Ping, https://gcc.gnu.org/pipermail/gcc-patches/2022-October/603544.html > >> > >> Kind regards, > >> Torbjörn > >> > >> On 2022-10-14 09:42, Torbjorn SVENSSON wrote: > >>> 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 <torbjorn.svens...@foss.st.com> > >>>>> --- > >>>>> 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 > >>>>> +}