testsuite: Factor out a function to run a matrix of tests

This commons up code from libffi.call/call.exp and
libffi.special/special.exp, unifies the optimization option matrix
between the two, and makes it easier to add more axes to the matrix
in the future.
This commit is contained in:
Josh Triplett
2014-03-16 16:04:58 -07:00
parent dfdb02cc86
commit 5695ec1444
3 changed files with 19 additions and 24 deletions

View File

@@ -273,6 +273,23 @@ proc libffi-dg-runtest { testcases default-extra-flags } {
}
}
proc run-many-tests { testcases extra_flags } {
global using_gcc
if { [string match $using_gcc "yes"] } {
set common "-W -Wall"
set optimizations { "-O0" "-O2" "-O3" "-Os" "-O2 -fomit-frame-pointer" }
} else {
# Assume we are using the vendor compiler.
set common ""
set optimizations { "" }
}
set common [ concat $common $extra_flags ]
foreach opt $optimizations {
set options [ concat $common $opt ]
dg-runtest $testcases $options ""
}
}
# Like check_conditional_xfail, but callable from a dg test.

View File

@@ -19,20 +19,7 @@ libffi-init
global srcdir subdir
if { [string match $using_gcc "yes"] } {
dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cS\]]] "-O0 -W -Wall" ""
dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cS\]]] "-O2" ""
dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cS\]]] "-O3" ""
dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cS\]]] "-Os" ""
dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cS\]]] "-O2 -fomit-frame-pointer" ""
} else {
# Assume we are using the vendor compiler.
dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cS\]]] "" ""
}
run-many-tests [lsort [glob -nocomplain $srcdir/$subdir/*.\[cS\]]] ""
dg-finish

View File

@@ -19,17 +19,8 @@ libffi-init
global srcdir subdir
global cxx_options
set cxx_options " -shared-libgcc -lstdc++"
if { [string match $using_gcc "yes"] } {
dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.cc]] $cxx_options "-O0 -W -Wall"
dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.cc]] $cxx_options "-O2"
dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.cc]] $cxx_options "-O3"
dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.cc]] $cxx_options "-Os"
run-many-tests [lsort [glob -nocomplain $srcdir/$subdir/*.cc]] "-shared-libgcc -lstdc++"
}
dg-finish