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.
|
# Like check_conditional_xfail, but callable from a dg test.
|
||||||
|
|
||||||
|
|||||||
@@ -19,20 +19,7 @@ libffi-init
|
|||||||
|
|
||||||
global srcdir subdir
|
global srcdir subdir
|
||||||
|
|
||||||
if { [string match $using_gcc "yes"] } {
|
run-many-tests [lsort [glob -nocomplain $srcdir/$subdir/*.\[cS\]]] ""
|
||||||
|
|
||||||
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\]]] "" ""
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
dg-finish
|
dg-finish
|
||||||
|
|
||||||
|
|||||||
@@ -19,17 +19,8 @@ libffi-init
|
|||||||
|
|
||||||
global srcdir subdir
|
global srcdir subdir
|
||||||
|
|
||||||
global cxx_options
|
|
||||||
|
|
||||||
set cxx_options " -shared-libgcc -lstdc++"
|
|
||||||
|
|
||||||
if { [string match $using_gcc "yes"] } {
|
if { [string match $using_gcc "yes"] } {
|
||||||
|
run-many-tests [lsort [glob -nocomplain $srcdir/$subdir/*.cc]] "-shared-libgcc -lstdc++"
|
||||||
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"
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
dg-finish
|
dg-finish
|
||||||
|
|||||||
Reference in New Issue
Block a user