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:
@@ -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.
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user