aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexandre Oliva <oliva@adacore.com>2023-02-22 14:35:36 -0300
committerAlexandre Oliva <oliva@gnu.org>2023-02-22 14:38:17 -0300
commit5344482c4d3ae0618fa8f5ed38f8309db43fdb82 (patch)
treebb64a7ff28549df65447e9e1557f2f83922a1b98
parent1a684dca0e812921a733e3ed7302977c7924b2ae (diff)
downloadgcc-5344482c4d3ae0618fa8f5ed38f8309db43fdb82.zip
gcc-5344482c4d3ae0618fa8f5ed38f8309db43fdb82.tar.gz
gcc-5344482c4d3ae0618fa8f5ed38f8309db43fdb82.tar.bz2
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.
-rw-r--r--gcc/testsuite/g++.dg/modules/modules.exp17
1 files changed, 17 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/modules/modules.exp b/gcc/testsuite/g++.dg/modules/modules.exp
index 61994b0..e66b208 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]
}