From: Bernhard Reutner-Fischer Date: Thu, 15 Mar 2012 12:25:47 +0000 (+0100) Subject: gfortran testsuite: implicitly cleanup-modules X-Git-Tag: releases/gcc-4.8.0~6554 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b3781fcb265e24fd61be94e716027a33c0712ed0;p=thirdparty%2Fgcc.git gfortran testsuite: implicitly cleanup-modules gcc/ChangeLog: 2012-03-15 Bernhard Reutner-Fischer * doc/sourcebuild.texi (cleanup-modules, keep-modules): Update documentation. gcc/testsuite/ChangeLog: 2012-03-15 Bernhard Reutner-Fischer * gfortran.fortran-torture/compile/compile.exp: Simplify. * gfortran.fortran-torture/execute/execute.exp: Likewise. * lib/gcc-dg.exp (cleanup-modules): Move to .. * lib/fortran-modules.exp: .. this new file. Adjust users. * lib/gfortran-dg.exp (gfortran-dg-runtest, gfortran-dg-debug-runtest): Call cleanup-modules. * lib/fortran-torture.exp (fortran-torture-execute, fortran-torture): Likewise. * gfortran.dg/coarray/caf.exp: Likewise. * lib/lto.exp: Likewise. * gfortran.dg/class_4a.f03: Adjust cleanup-modules and keep-modules. * gfortran.dg/class_4b.f03: Likewise. * gfortran.dg/class_4c.f03: Likewise. * gfortran.dg/class_45a.f03: Likewise. * gfortran.dg/binding_label_tests_10.f03: Likewise. * gfortran.dg/binding_label_tests_10_main.f03: Likewise. * gfortran.dg/binding_label_tests_11.f03: Likewise. * gfortran.dg/binding_label_tests_11_main.f03: Likewise. * gfortran.dg/binding_label_tests_13.f03: Likewise. * gfortran.dg/binding_label_tests_13_main.f03: Likewise. * gfortran.dg/test_common_binding_labels_2.f03: Likewise. * gfortran.dg/test_common_binding_labels_2_main.f03: Likewise. * gfortran.dg/test_common_binding_labels_3.f03: Likewise. * gfortran.dg/test_common_binding_labels_3_main.f03: Likewise. * gfortran.dg/whole_file_28.f90: Likewise. * gfortran.dg/whole_file_29.f90: Likewise. * gfortran.dg/whole_file_30.f90: Likewise. * gfortran.dg/whole_file_31.f90: Likewise. From-SVN: r185430 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 14c3210f4441..fbaaab3375c2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,9 +1,14 @@ +2012-03-15 Bernhard Reutner-Fischer + + * doc/sourcebuild.texi (cleanup-modules, keep-modules): Update + documentation. + 2012-03-15 Ramana Radhakrishnan * config.gcc (target_type_format_char): New. Document it. Set it for - arm*-*-* . + arm*-*-* . * configure.ac (gnu_unique_option): Use target_type_format_char in test. - Comment rationale. + Comment rationale. * configure: Regenerate . 2012-03-15 Jakub Jelinek diff --git a/gcc/doc/sourcebuild.texi b/gcc/doc/sourcebuild.texi index ea6fedb23906..fc6f3e621d8a 100644 --- a/gcc/doc/sourcebuild.texi +++ b/gcc/doc/sourcebuild.texi @@ -2107,8 +2107,39 @@ Removes coverage data files generated for this test. @item cleanup-ipa-dump @var{suffix} Removes IPA dump files generated for this test. -@item cleanup-modules -Removes Fortran module files generated for this test. +@item cleanup-modules "@var{list-of-extra-modules}" +Removes Fortran module files generated for this test, excluding the +module names listed in keep-modules. +Cleaning up module files is usually done automatically by the testsuite +by looking at the source files and removing the modules after the test +has been executed. +@smallexample +module MoD1 +end module MoD1 +module Mod2 +end module Mod2 +module moD3 +end module moD3 +module mod4 +end module mod4 +! @{ dg-final @{ cleanup-modules "mod1 mod2" @} @} ! redundant +! @{ dg-final @{ keep-modules "mod3 mod4" @} @} +@end smallexample + +@item keep-modules "@var{list-of-modules-not-to-delete}" +Whitespace separated list of module names that should not be deleted by +cleanup-modules. +If the list of modules is empty, all modules defined in this file are kept. +@smallexample +module maybe_unneeded +end module maybe_unneeded +module keep1 +end module keep1 +module keep2 +end module keep2 +! @{ dg-final @{ keep-modules "keep1 keep2" @} @} ! just keep these two +! @{ dg-final @{ keep-modules "" @} @} ! keep all +@end smallexample @item cleanup-profile-file Removes profiling files generated for this test. diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 9405556d9e05..03fbf871a51d 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,34 @@ +2012-03-15 Bernhard Reutner-Fischer + + * gfortran.fortran-torture/compile/compile.exp: Simplify. + * gfortran.fortran-torture/execute/execute.exp: Likewise. + * lib/gcc-dg.exp (cleanup-modules): Move to .. + * lib/fortran-modules.exp: .. this new file. Adjust users. + * lib/gfortran-dg.exp (gfortran-dg-runtest, + gfortran-dg-debug-runtest): Call cleanup-modules. + * lib/fortran-torture.exp (fortran-torture-execute, + fortran-torture): Likewise. + * gfortran.dg/coarray/caf.exp: Likewise. + * lib/lto.exp: Likewise. + * gfortran.dg/class_4a.f03: Adjust cleanup-modules and keep-modules. + * gfortran.dg/class_4b.f03: Likewise. + * gfortran.dg/class_4c.f03: Likewise. + * gfortran.dg/class_45a.f03: Likewise. + * gfortran.dg/binding_label_tests_10.f03: Likewise. + * gfortran.dg/binding_label_tests_10_main.f03: Likewise. + * gfortran.dg/binding_label_tests_11.f03: Likewise. + * gfortran.dg/binding_label_tests_11_main.f03: Likewise. + * gfortran.dg/binding_label_tests_13.f03: Likewise. + * gfortran.dg/binding_label_tests_13_main.f03: Likewise. + * gfortran.dg/test_common_binding_labels_2.f03: Likewise. + * gfortran.dg/test_common_binding_labels_2_main.f03: Likewise. + * gfortran.dg/test_common_binding_labels_3.f03: Likewise. + * gfortran.dg/test_common_binding_labels_3_main.f03: Likewise. + * gfortran.dg/whole_file_28.f90: Likewise. + * gfortran.dg/whole_file_29.f90: Likewise. + * gfortran.dg/whole_file_30.f90: Likewise. + * gfortran.dg/whole_file_31.f90: Likewise. + 2012-03-15 Jakub Jelinek PR tree-optimization/52267 diff --git a/gcc/testsuite/gfortran.dg/binding_label_tests_10.f03 b/gcc/testsuite/gfortran.dg/binding_label_tests_10.f03 index 99c9c527624f..e609d34a5206 100644 --- a/gcc/testsuite/gfortran.dg/binding_label_tests_10.f03 +++ b/gcc/testsuite/gfortran.dg/binding_label_tests_10.f03 @@ -6,5 +6,4 @@ module binding_label_tests_10 implicit none integer(c_int), bind(c,name="c_one") :: one end module binding_label_tests_10 - -! Do not use dg-final to cleanup-modules +! { dg-final { keep-modules "" } } diff --git a/gcc/testsuite/gfortran.dg/binding_label_tests_10_main.f03 b/gcc/testsuite/gfortran.dg/binding_label_tests_10_main.f03 index aa24a6ac1d67..48e8e5da9b1e 100644 --- a/gcc/testsuite/gfortran.dg/binding_label_tests_10_main.f03 +++ b/gcc/testsuite/gfortran.dg/binding_label_tests_10_main.f03 @@ -11,5 +11,4 @@ program main use binding_label_tests_10 ! { dg-error "collides" } use binding_label_tests_10_main end program main - -! { dg-final { cleanup-modules "binding_label_tests_10_main binding_label_tests_10" } } +! { dg-final { cleanup-modules "binding_label_tests_10" } } diff --git a/gcc/testsuite/gfortran.dg/binding_label_tests_11.f03 b/gcc/testsuite/gfortran.dg/binding_label_tests_11.f03 index 5e889a7886eb..8dcf99869fcf 100644 --- a/gcc/testsuite/gfortran.dg/binding_label_tests_11.f03 +++ b/gcc/testsuite/gfortran.dg/binding_label_tests_11.f03 @@ -10,5 +10,4 @@ contains one = 1 end function one end module binding_label_tests_11 - -! Do not use dg-final to cleanup-modules +! { dg-final { keep-modules "" } } diff --git a/gcc/testsuite/gfortran.dg/binding_label_tests_11_main.f03 b/gcc/testsuite/gfortran.dg/binding_label_tests_11_main.f03 index 53eac7cf5466..ef7cfce30eed 100644 --- a/gcc/testsuite/gfortran.dg/binding_label_tests_11_main.f03 +++ b/gcc/testsuite/gfortran.dg/binding_label_tests_11_main.f03 @@ -15,5 +15,4 @@ program main use binding_label_tests_11 ! { dg-error "collides" } use binding_label_tests_11_main end program main - -! { dg-final { cleanup-modules "binding_label_tests_11_main binding_label_tests_11" } } +! { dg-final { cleanup-modules "binding_label_tests_11" } } diff --git a/gcc/testsuite/gfortran.dg/binding_label_tests_13.f03 b/gcc/testsuite/gfortran.dg/binding_label_tests_13.f03 index 786945d3af75..a8e3179bf378 100644 --- a/gcc/testsuite/gfortran.dg/binding_label_tests_13.f03 +++ b/gcc/testsuite/gfortran.dg/binding_label_tests_13.f03 @@ -6,3 +6,4 @@ module binding_label_tests_13 integer(c_int) :: c3 bind(c) c3 end module binding_label_tests_13 +! { dg-final { keep-modules "" } } diff --git a/gcc/testsuite/gfortran.dg/binding_label_tests_13_main.f03 b/gcc/testsuite/gfortran.dg/binding_label_tests_13_main.f03 index 1addc9c495c2..355f11a346b0 100644 --- a/gcc/testsuite/gfortran.dg/binding_label_tests_13_main.f03 +++ b/gcc/testsuite/gfortran.dg/binding_label_tests_13_main.f03 @@ -12,5 +12,4 @@ contains use binding_label_tests_13 ! { dg-error "collides" } end subroutine c_sub end module binding_label_tests_13_main -! { dg-final { cleanup-modules "binding_label_tests_13 binding_label_tests_13_main" } } - +! { dg-final { cleanup-modules "binding_label_tests_13" } } diff --git a/gcc/testsuite/gfortran.dg/class_45a.f03 b/gcc/testsuite/gfortran.dg/class_45a.f03 index 91f11c4ecce9..c3c9ac20e803 100644 --- a/gcc/testsuite/gfortran.dg/class_45a.f03 +++ b/gcc/testsuite/gfortran.dg/class_45a.f03 @@ -26,3 +26,4 @@ contains end function basicGet end module G_Nodes +! { dg-final { keep-modules "" } } diff --git a/gcc/testsuite/gfortran.dg/class_4a.f03 b/gcc/testsuite/gfortran.dg/class_4a.f03 index 3cf0b7abf519..9441cc79ca82 100644 --- a/gcc/testsuite/gfortran.dg/class_4a.f03 +++ b/gcc/testsuite/gfortran.dg/class_4a.f03 @@ -12,3 +12,4 @@ module m type t end type t end module m +! { dg-final { keep-modules "m" } } diff --git a/gcc/testsuite/gfortran.dg/class_4b.f03 b/gcc/testsuite/gfortran.dg/class_4b.f03 index 4658b8cf3f5e..a5d914a523d3 100644 --- a/gcc/testsuite/gfortran.dg/class_4b.f03 +++ b/gcc/testsuite/gfortran.dg/class_4b.f03 @@ -13,3 +13,4 @@ module m2 type, extends(t) :: t2 end type t2 end module m2 +! { dg-final { keep-modules "m2" } } diff --git a/gcc/testsuite/gfortran.dg/class_4c.f03 b/gcc/testsuite/gfortran.dg/class_4c.f03 index c28a32b0fcaa..088acae6b341 100644 --- a/gcc/testsuite/gfortran.dg/class_4c.f03 +++ b/gcc/testsuite/gfortran.dg/class_4c.f03 @@ -27,5 +27,4 @@ end select print *, i end - -! { dg-final { cleanup-modules "m m2 m3" } } +! { dg-final { cleanup-modules "m m2" } } diff --git a/gcc/testsuite/gfortran.dg/coarray/caf.exp b/gcc/testsuite/gfortran.dg/coarray/caf.exp index c7e46f6bedcd..52dff7531604 100644 --- a/gcc/testsuite/gfortran.dg/coarray/caf.exp +++ b/gcc/testsuite/gfortran.dg/coarray/caf.exp @@ -61,15 +61,18 @@ foreach test [lsort [glob -nocomplain $srcdir/$subdir/*.\[fF\]{,90,95,03,08} ]] set option_list [list { -O2 } ] set nshort [file tail [file dirname $test]]/[file tail $test] + list-module-names $test foreach flags $option_list { verbose "Testing $nshort (single), $flags" 1 dg-test $test "-fcoarray=single $flags" "" + cleanup-modules "" } foreach flags $option_list { verbose "Testing $nshort (libcaf_single), $flags" 1 dg-test $test "-fcoarray=lib $flags -lcaf_single" "" + cleanup-modules "" } } torture-finish diff --git a/gcc/testsuite/gfortran.dg/test_common_binding_labels_2.f03 b/gcc/testsuite/gfortran.dg/test_common_binding_labels_2.f03 index d14c9b1168f7..ad654b35db46 100644 --- a/gcc/testsuite/gfortran.dg/test_common_binding_labels_2.f03 +++ b/gcc/testsuite/gfortran.dg/test_common_binding_labels_2.f03 @@ -12,4 +12,4 @@ module test_common_binding_labels_2 integer(c_int) :: i bind(c, name="") /com2/ end module test_common_binding_labels_2 - +! { dg-final { keep-modules "" } } diff --git a/gcc/testsuite/gfortran.dg/test_common_binding_labels_2_main.f03 b/gcc/testsuite/gfortran.dg/test_common_binding_labels_2_main.f03 index 1b4103ef4cc8..eeb981ec40d1 100644 --- a/gcc/testsuite/gfortran.dg/test_common_binding_labels_2_main.f03 +++ b/gcc/testsuite/gfortran.dg/test_common_binding_labels_2_main.f03 @@ -21,5 +21,4 @@ program main use test_common_binding_labels_2 ! { dg-error "does not match" } use test_common_binding_labels_2_main end program main - -! { dg-final { cleanup-modules "test_common_binding_labels_2_main test_common_binding_labels_2" } } +! { dg-final { cleanup-modules "test_common_binding_labels_2" } } diff --git a/gcc/testsuite/gfortran.dg/test_common_binding_labels_3.f03 b/gcc/testsuite/gfortran.dg/test_common_binding_labels_3.f03 index 87d6c6b78f97..d851b5e72777 100644 --- a/gcc/testsuite/gfortran.dg/test_common_binding_labels_3.f03 +++ b/gcc/testsuite/gfortran.dg/test_common_binding_labels_3.f03 @@ -8,3 +8,4 @@ module test_common_binding_labels_3 real(c_double) :: s bind(c, name="my_common_block") :: /mycom/ end module test_common_binding_labels_3 +! { dg-final { keep-modules "" } } diff --git a/gcc/testsuite/gfortran.dg/test_common_binding_labels_3_main.f03 b/gcc/testsuite/gfortran.dg/test_common_binding_labels_3_main.f03 index d2c67f65170c..91fcff18245d 100644 --- a/gcc/testsuite/gfortran.dg/test_common_binding_labels_3_main.f03 +++ b/gcc/testsuite/gfortran.dg/test_common_binding_labels_3_main.f03 @@ -10,5 +10,4 @@ program main use test_common_binding_labels_3_main use test_common_binding_labels_3 ! { dg-error "collides" } end program main - -! { dg-final { cleanup-modules "test_common_binding_labels_3_main test_common_binding_labels_3" } } +! { dg-final { cleanup-modules "test_common_binding_labels_3" } } diff --git a/gcc/testsuite/gfortran.dg/whole_file_28.f90 b/gcc/testsuite/gfortran.dg/whole_file_28.f90 index 78c848e40e6b..ec9efb2d4dcf 100644 --- a/gcc/testsuite/gfortran.dg/whole_file_28.f90 +++ b/gcc/testsuite/gfortran.dg/whole_file_28.f90 @@ -10,3 +10,4 @@ module iso_red end type varying_string end module iso_red ! DO NOT CLEAN UP THE MODULE FILE - whole_file_29.f90 does it. +! { dg-final { keep-modules "" } } diff --git a/gcc/testsuite/gfortran.dg/whole_file_29.f90 b/gcc/testsuite/gfortran.dg/whole_file_29.f90 index 2521dadac2a1..703754c649db 100644 --- a/gcc/testsuite/gfortran.dg/whole_file_29.f90 +++ b/gcc/testsuite/gfortran.dg/whole_file_29.f90 @@ -24,4 +24,4 @@ contains end subroutine syntax_init_from_ifile end module syntax_rules end -! { dg-final { cleanup-modules "syntax_rules ifiles iso_red" } } +! { dg-final { cleanup-modules "iso_red" } } diff --git a/gcc/testsuite/gfortran.dg/whole_file_30.f90 b/gcc/testsuite/gfortran.dg/whole_file_30.f90 index 813ca06868dd..d8e401eeb209 100644 --- a/gcc/testsuite/gfortran.dg/whole_file_30.f90 +++ b/gcc/testsuite/gfortran.dg/whole_file_30.f90 @@ -13,3 +13,4 @@ module system_defs_m end type sysvector_t end module system_defs_m ! DO NOT CLEAN UP THE MODULE FILE - whole_file_31.f90 does it. +! { dg-final { keep-modules "" } } diff --git a/gcc/testsuite/gfortran.dg/whole_file_31.f90 b/gcc/testsuite/gfortran.dg/whole_file_31.f90 index 7ef0b9f67616..eb77055b91ff 100644 --- a/gcc/testsuite/gfortran.dg/whole_file_31.f90 +++ b/gcc/testsuite/gfortran.dg/whole_file_31.f90 @@ -18,4 +18,4 @@ program t type(sysvector_t), target :: sol solution => sol end program t -! { dg-final { cleanup-modules "system_defs_m convecreac_m" } } +! { dg-final { cleanup-modules "system_defs_m" } } diff --git a/gcc/testsuite/gfortran.fortran-torture/compile/compile.exp b/gcc/testsuite/gfortran.fortran-torture/compile/compile.exp index 5c56ec3f5298..5bc8d7fb8760 100644 --- a/gcc/testsuite/gfortran.fortran-torture/compile/compile.exp +++ b/gcc/testsuite/gfortran.fortran-torture/compile/compile.exp @@ -28,7 +28,7 @@ load_lib torture-options.exp torture-init set-torture-options [get-fortran-torture-options] -foreach testcase [lsort [glob -nocomplain $srcdir/$subdir/*.f]] { +foreach testcase [lsort [glob -nocomplain $srcdir/$subdir/*.\[fF\]{,90,95,03,08} ]] { # If we're only testing specific files and this isn't one of them, skip it. if ![runtest_file_p $runtests $testcase] then { continue @@ -36,67 +36,4 @@ foreach testcase [lsort [glob -nocomplain $srcdir/$subdir/*.f]] { fortran-torture $testcase } -foreach testcase [lsort [glob -nocomplain $srcdir/$subdir/*.F]] { - if ![runtest_file_p $runtests $testcase] then { - continue - } - fortran-torture $testcase -} - -foreach testcase [lsort [glob -nocomplain $srcdir/$subdir/*.f90]] { - if ![runtest_file_p $runtests $testcase] then { - continue - } - fortran-torture $testcase -} - -foreach testcase [lsort [glob -nocomplain $srcdir/$subdir/*.F90]] { - if ![runtest_file_p $runtests $testcase] then { - continue - } - fortran-torture $testcase -} - -foreach testcase [lsort [glob -nocomplain $srcdir/$subdir/*.f95]] { - if ![runtest_file_p $runtests $testcase] then { - continue - } - fortran-torture $testcase -} - -foreach testcase [lsort [glob -nocomplain $srcdir/$subdir/*.F95]] { - if ![runtest_file_p $runtests $testcase] then { - continue - } - fortran-torture $testcase -} - -foreach testcase [lsort [glob -nocomplain $srcdir/$subdir/*.f03]] { - if ![runtest_file_p $runtests $testcase] then { - continue - } - fortran-torture $testcase -} - -foreach testcase [lsort [glob -nocomplain $srcdir/$subdir/*.F03]] { - if ![runtest_file_p $runtests $testcase] then { - continue - } - fortran-torture $testcase -} - -foreach testcase [lsort [glob -nocomplain $srcdir/$subdir/*.f08]] { - if ![runtest_file_p $runtests $testcase] then { - continue - } - fortran-torture $testcase -} - -foreach testcase [lsort [glob -nocomplain $srcdir/$subdir/*.F08]] { - if ![runtest_file_p $runtests $testcase] then { - continue - } - fortran-torture $testcase -} - torture-finish diff --git a/gcc/testsuite/gfortran.fortran-torture/execute/execute.exp b/gcc/testsuite/gfortran.fortran-torture/execute/execute.exp index 40b65f81cdaa..d9f0a1bedfd4 100644 --- a/gcc/testsuite/gfortran.fortran-torture/execute/execute.exp +++ b/gcc/testsuite/gfortran.fortran-torture/execute/execute.exp @@ -32,7 +32,7 @@ load_lib torture-options.exp torture-init set-torture-options [get-fortran-torture-options] -foreach testcase [lsort [glob -nocomplain $srcdir/$subdir/*.f]] { +foreach testcase [lsort [glob -nocomplain $srcdir/$subdir/*.\[fF\]{,90,95,03,08} ]] { # If we're only testing specific files and this isn't one of them, skip it. if ![runtest_file_p $runtests $testcase] then { continue @@ -40,67 +40,4 @@ foreach testcase [lsort [glob -nocomplain $srcdir/$subdir/*.f]] { fortran-torture-execute $testcase } -foreach testcase [lsort [glob -nocomplain $srcdir/$subdir/*.F]] { - if ![runtest_file_p $runtests $testcase] then { - continue - } - fortran-torture-execute $testcase -} - -foreach testcase [lsort [glob -nocomplain $srcdir/$subdir/*.f90]] { - if ![runtest_file_p $runtests $testcase] then { - continue - } - fortran-torture-execute $testcase -} - -foreach testcase [lsort [glob -nocomplain $srcdir/$subdir/*.F90]] { - if ![runtest_file_p $runtests $testcase] then { - continue - } - fortran-torture-execute $testcase -} - -foreach testcase [lsort [glob -nocomplain $srcdir/$subdir/*.f95]] { - if ![runtest_file_p $runtests $testcase] then { - continue - } - fortran-torture-execute $testcase -} - -foreach testcase [lsort [glob -nocomplain $srcdir/$subdir/*.F95]] { - if ![runtest_file_p $runtests $testcase] then { - continue - } - fortran-torture-execute $testcase -} - -foreach testcase [lsort [glob -nocomplain $srcdir/$subdir/*.f03]] { - if ![runtest_file_p $runtests $testcase] then { - continue - } - fortran-torture-execute $testcase -} - -foreach testcase [lsort [glob -nocomplain $srcdir/$subdir/*.F03]] { - if ![runtest_file_p $runtests $testcase] then { - continue - } - fortran-torture-execute $testcase -} - -foreach testcase [lsort [glob -nocomplain $srcdir/$subdir/*.f08]] { - if ![runtest_file_p $runtests $testcase] then { - continue - } - fortran-torture-execute $testcase -} - -foreach testcase [lsort [glob -nocomplain $srcdir/$subdir/*.F08]] { - if ![runtest_file_p $runtests $testcase] then { - continue - } - fortran-torture-execute $testcase -} - torture-finish diff --git a/gcc/testsuite/lib/fortran-torture.exp b/gcc/testsuite/lib/fortran-torture.exp index 8d6e2ddd817a..9d875a00bb5f 100644 --- a/gcc/testsuite/lib/fortran-torture.exp +++ b/gcc/testsuite/lib/fortran-torture.exp @@ -21,6 +21,7 @@ # based on f-torture.exp, which was written by Rob Savoye. load_lib target-supports.exp +load_lib fortran-modules.exp # Return the list of options to use for fortran torture tests. # The default option list can be overridden by @@ -218,6 +219,7 @@ proc fortran-torture-execute { src } { if [string match "/*" $testcase] { set testcase "[file tail [file dirname $src]]/[file tail $src]" } + list-module-names $src # Walk the list of options and copmile and run the testcase for all # options that are not explicitly disabled by the .x script (if present). @@ -332,6 +334,7 @@ proc fortran-torture-execute { src } { } $status "$testcase execution, $option" } + cleanup-modules "" } @@ -390,7 +393,8 @@ proc fortran-torture { args } { return } } - + list-module-names $src + # loop through all the options set option_list $torture_with_loops foreach option $option_list { @@ -406,6 +410,7 @@ proc fortran-torture { args } { } fortran-torture-compile $src "$option $options" + cleanup-modules "" } } diff --git a/gcc/testsuite/lib/gcc-dg.exp b/gcc/testsuite/lib/gcc-dg.exp index 026a8a96a6c4..4666edec8be6 100644 --- a/gcc/testsuite/lib/gcc-dg.exp +++ b/gcc/testsuite/lib/gcc-dg.exp @@ -29,6 +29,7 @@ load_lib prune.exp load_lib libgloss.exp load_lib target-libpath.exp load_lib torture-options.exp +load_lib fortran-modules.exp # We set LC_ALL and LANG to C so that we get the same error messages as expected. setenv LC_ALL C @@ -573,13 +574,6 @@ proc cleanup-saved-temps { args } { } } -# Remove files for specified Fortran modules. -proc cleanup-modules { modlist } { - foreach modname $modlist { - remove-build-file [string tolower $modname].mod - } -} - # Scan Fortran modules for a given regexp. # # Argument 0 is the module name diff --git a/gcc/testsuite/lib/gfortran-dg.exp b/gcc/testsuite/lib/gfortran-dg.exp index 0fd96b395ce6..50753dff88c5 100644 --- a/gcc/testsuite/lib/gfortran-dg.exp +++ b/gcc/testsuite/lib/gfortran-dg.exp @@ -111,10 +111,12 @@ proc gfortran-dg-runtest { testcases default-extra-flags } { } set nshort [file tail [file dirname $test]]/[file tail $test] + list-module-names $test foreach flags $option_list { verbose "Testing $nshort, $flags" 1 dg-test $test $flags ${default-extra-flags} + cleanup-modules "" } } @@ -171,6 +173,7 @@ proc gfortran-dg-debug-runtest { target_compile trivial opt_opts testcases } { } set nshort [file tail [file dirname $test]]/[file tail $test] + list-module-names $test foreach flags $DEBUG_TORTURE_OPTIONS { set doit 1 @@ -179,6 +182,7 @@ proc gfortran-dg-debug-runtest { target_compile trivial opt_opts testcases } { if { $doit } { verbose -log "Testing $nshort, $flags" 1 dg-test $test $flags "" + cleanup-modules "" } } } diff --git a/gcc/testsuite/lib/lto.exp b/gcc/testsuite/lib/lto.exp index 4e5d4437dbe7..536d629f9bb7 100644 --- a/gcc/testsuite/lib/lto.exp +++ b/gcc/testsuite/lib/lto.exp @@ -499,7 +499,10 @@ proc lto-execute { src1 sid } { verbose "$testcase not supported on this target, skipping it" 3 return } - + # Should be safe for non-fortran too but be paranoid.. + if {$sid eq "f_lto"} { + list-module-names $src_list + } regsub "_0.*" $testcase "" testcase # Set up the base name of executable files so they'll be unique. @@ -578,6 +581,10 @@ proc lto-execute { src1 sid } { || ![string compare "link" $compile_type] } { file_on_host delete $execname } + # Should be safe for non-fortran too but be paranoid.. + if {$sid eq "f_lto"} { + cleanup-modules "" + } } }