testsuite: Skip module_cmi_p and related unsupported module test

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.
This commit is contained in:
Alexandre Oliva 2023-02-22 14:35:36 -03:00 committed by Alexandre Oliva
parent 1a684dca0e
commit 5344482c4d

View file

@ -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]
}