From 5695ec1444c5323e48fe4314f8c8f027625e67df Mon Sep 17 00:00:00 2001 From: Josh Triplett Date: Sun, 16 Mar 2014 16:04:58 -0700 Subject: [PATCH] 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. --- testsuite/lib/libffi.exp | 17 +++++++++++++++++ testsuite/libffi.call/call.exp | 15 +-------------- testsuite/libffi.special/special.exp | 11 +---------- 3 files changed, 19 insertions(+), 24 deletions(-) diff --git a/testsuite/lib/libffi.exp b/testsuite/lib/libffi.exp index 1ac2c36..014e520 100644 --- a/testsuite/lib/libffi.exp +++ b/testsuite/lib/libffi.exp @@ -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. diff --git a/testsuite/libffi.call/call.exp b/testsuite/libffi.call/call.exp index c334685..c1ad737 100644 --- a/testsuite/libffi.call/call.exp +++ b/testsuite/libffi.call/call.exp @@ -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 diff --git a/testsuite/libffi.special/special.exp b/testsuite/libffi.special/special.exp index f1a5fa6..f7155bf 100644 --- a/testsuite/libffi.special/special.exp +++ b/testsuite/libffi.special/special.exp @@ -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 -- 2.7.4