re PR fortran/56408 (Fix dependency handling of testsuite/gfortran.dg)
authorJakub Jelinek <jakub@redhat.com>
Mon, 15 Sep 2014 19:46:12 +0000 (21:46 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Mon, 15 Sep 2014 19:46:12 +0000 (21:46 +0200)
PR fortran/56408
* gfortran.dg/dg.exp (gfortran_test_path, gfortran_aux_module_flags):
New global vars.
(dg-compile-aux-modules): New procedure.
* gfortran.dg/binding_label_tests_10.f03: Remove comment
and keep-modules.
* gfortran.dg/binding_label_tests_10_main.f03: Remove comment,
use dg-compile-aux-modules.
* gfortran.dg/binding_label_tests_11.f03: Remove comment
and keep-modules.
* gfortran.dg/binding_label_tests_11_main.f03: Remove comment,
use dg-compile-aux-modules.
* gfortran.dg/binding_label_tests_13.f03: Remove comment
and keep-modules.
* gfortran.dg/binding_label_tests_13_main.f03: Remove comment,
use dg-compile-aux-modules.
* gfortran.dg/binding_label_tests_26a.f90: Remove comment
and keep-modules.
* gfortran.dg/binding_label_tests_26b.f90: Remove comment,
use dg-compile-aux-modules.
* gfortran.dg/class_45a.f03: Remove keep-modules.
* gfortran.dg/class_45b.f03: Use dg-compile-aux-modules
and cleanup-modules.
* gfortran.dg/class_4a.f03: Use dg-do link, use
dg-additional-sources and cleanup-modules, remove keep-modules
and update comment.
* gfortran.dg/class_4b.f03: Don't compile anywhere, remove
keep-modules, adjust comment.
* gfortran.dg/class_4c.f03: Don't compile anywhere, remove
dg-additional-sources and cleanup-modules.
* gfortran.dg/coarray_29_1.f90: Remove keep-modules and
associated comment.
* gfortran.dg/coarray_29_2.f90: Use dg-compile-aux-modules,
remove comment.
* gfortran.dg/test_common_binding_labels_2.f03: Remove keep-modules.
* gfortran.dg/test_common_binding_labels_2_main.f03: Remove comment,
use dg-compile-aux-modules.
* gfortran.dg/test_common_binding_labels_3.f03: Remove keep-modules.
* gfortran.dg/test_common_binding_labels_3_main.f03: Remove comment,
use dg-compile-aux-modules.
* gfortran.dg/whole_file_28.f90: Remove comment and keep-modules.
* gfortran.dg/whole_file_29.f90: Remove comment, use
dg-compile-aux-modules.
* gfortran.dg/whole_file_30.f90: Remove comment and keep-modules.
* gfortran.dg/whole_file_31.f90: Remove comment, use
dg-compile-aux-modules.

From-SVN: r215275

25 files changed:
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/binding_label_tests_10.f03
gcc/testsuite/gfortran.dg/binding_label_tests_10_main.f03
gcc/testsuite/gfortran.dg/binding_label_tests_11.f03
gcc/testsuite/gfortran.dg/binding_label_tests_11_main.f03
gcc/testsuite/gfortran.dg/binding_label_tests_13.f03
gcc/testsuite/gfortran.dg/binding_label_tests_13_main.f03
gcc/testsuite/gfortran.dg/binding_label_tests_26a.f90
gcc/testsuite/gfortran.dg/binding_label_tests_26b.f90
gcc/testsuite/gfortran.dg/class_45a.f03
gcc/testsuite/gfortran.dg/class_45b.f03
gcc/testsuite/gfortran.dg/class_4a.f03
gcc/testsuite/gfortran.dg/class_4b.f03
gcc/testsuite/gfortran.dg/class_4c.f03
gcc/testsuite/gfortran.dg/coarray_29_1.f90
gcc/testsuite/gfortran.dg/coarray_29_2.f90
gcc/testsuite/gfortran.dg/dg.exp
gcc/testsuite/gfortran.dg/test_common_binding_labels_2.f03
gcc/testsuite/gfortran.dg/test_common_binding_labels_2_main.f03
gcc/testsuite/gfortran.dg/test_common_binding_labels_3.f03
gcc/testsuite/gfortran.dg/test_common_binding_labels_3_main.f03
gcc/testsuite/gfortran.dg/whole_file_28.f90
gcc/testsuite/gfortran.dg/whole_file_29.f90
gcc/testsuite/gfortran.dg/whole_file_30.f90
gcc/testsuite/gfortran.dg/whole_file_31.f90

index d426cd1911680f2cdbec37d1f53a7265bb4c9bed..45e2384281f7ae7f719cc3a608cc4bfcbe666797 100644 (file)
@@ -1,5 +1,52 @@
 2014-09-15  Jakub Jelinek  <jakub@redhat.com>
 
+       PR fortran/56408
+       * gfortran.dg/dg.exp (gfortran_test_path, gfortran_aux_module_flags):
+       New global vars.
+       (dg-compile-aux-modules): New procedure.
+       * gfortran.dg/binding_label_tests_10.f03: Remove comment
+       and keep-modules.
+       * gfortran.dg/binding_label_tests_10_main.f03: Remove comment,
+       use dg-compile-aux-modules.
+       * gfortran.dg/binding_label_tests_11.f03: Remove comment
+       and keep-modules.
+       * gfortran.dg/binding_label_tests_11_main.f03: Remove comment,
+       use dg-compile-aux-modules.
+       * gfortran.dg/binding_label_tests_13.f03: Remove comment
+       and keep-modules.
+       * gfortran.dg/binding_label_tests_13_main.f03: Remove comment,
+       use dg-compile-aux-modules.
+       * gfortran.dg/binding_label_tests_26a.f90: Remove comment
+       and keep-modules.
+       * gfortran.dg/binding_label_tests_26b.f90: Remove comment,
+       use dg-compile-aux-modules.
+       * gfortran.dg/class_45a.f03: Remove keep-modules.
+       * gfortran.dg/class_45b.f03: Use dg-compile-aux-modules
+       and cleanup-modules.
+       * gfortran.dg/class_4a.f03: Use dg-do link, use
+       dg-additional-sources and cleanup-modules, remove keep-modules
+       and update comment.
+       * gfortran.dg/class_4b.f03: Don't compile anywhere, remove
+       keep-modules, adjust comment.
+       * gfortran.dg/class_4c.f03: Don't compile anywhere, remove
+       dg-additional-sources and cleanup-modules.
+       * gfortran.dg/coarray_29_1.f90: Remove keep-modules and
+       associated comment.
+       * gfortran.dg/coarray_29_2.f90: Use dg-compile-aux-modules,
+       remove comment.
+       * gfortran.dg/test_common_binding_labels_2.f03: Remove keep-modules.
+       * gfortran.dg/test_common_binding_labels_2_main.f03: Remove comment,
+       use dg-compile-aux-modules.
+       * gfortran.dg/test_common_binding_labels_3.f03: Remove keep-modules.
+       * gfortran.dg/test_common_binding_labels_3_main.f03: Remove comment,
+       use dg-compile-aux-modules.
+       * gfortran.dg/whole_file_28.f90: Remove comment and keep-modules.
+       * gfortran.dg/whole_file_29.f90: Remove comment, use
+       dg-compile-aux-modules.
+       * gfortran.dg/whole_file_30.f90: Remove comment and keep-modules.
+       * gfortran.dg/whole_file_31.f90: Remove comment, use
+       dg-compile-aux-modules.
+
        * lib/gcc-defs.exp (gcc_parallel_test_run_p,
        gcc_parallel_test_enable): New procedures.  If
        GCC_RUNTEST_PARALLELIZE_DIR is set in environment, override
index e609d34a520623a83ec3fb1a4ca21c03de7bd6e1..0809c87f37824b8560b099dfd0d04654e6b7196b 100644 (file)
@@ -1,9 +1,6 @@
 ! { dg-do compile }
-! This file must be compiled BEFORE binding_label_tests_10_main.f03, which it 
-! should be because dejagnu will sort the files.
 module binding_label_tests_10
   use iso_c_binding
   implicit none
   integer(c_int), bind(c,name="c_one") :: one
 end module binding_label_tests_10
-! { dg-final { keep-modules "" } }
index 5216fbedf6ae68a5e9e089d14d301d29188e0b91..bce5ef68c4272278c512b8bfae5668f884f736a5 100644 (file)
@@ -1,6 +1,5 @@
 ! { dg-do compile }
-! This file must be compiled AFTER binding_label_tests_10.f03, which it 
-! should be because dejagnu will sort the files.
+! { dg-compile-aux-modules "binding_label_tests_10.f03" }
 module binding_label_tests_10_main
   use iso_c_binding
   implicit none
index 8dcf99869fcf6b87114f5318c656608307e634f8..c1fc98effb60e318350ec4a852b79f608df23e32 100644 (file)
@@ -1,6 +1,4 @@
 ! { dg-do compile }
-! This file must be compiled BEFORE binding_label_tests_11_main.f03, which it 
-! should be because dejagnu will sort the files.
 module binding_label_tests_11
   use iso_c_binding, only: c_int
   implicit none
@@ -10,4 +8,3 @@ contains
     one = 1
   end function one
 end module binding_label_tests_11
-! { dg-final { keep-modules "" } }
index 851c32ce7cdbf5b356c94c0635374e38e17d84cc..7ee0c8de473c4bb42c7759209f4a118f9994cf15 100644 (file)
@@ -1,6 +1,5 @@
 ! { dg-do compile }
-! This file must be compiled AFTER binding_label_tests_11.f03, which it 
-! should be because dejagnu will sort the files.
+! { dg-compile-aux-modules "binding_label_tests_11.f03" }
 module binding_label_tests_11_main
   use iso_c_binding, only: c_int
   implicit none
index a8e3179bf378d9f4691ddf9c63bd04aa69a93f1d..71aac2dbf37873b6d7872886b99051244dcd523c 100644 (file)
@@ -1,9 +1,6 @@
 ! { dg-do compile }
-! This file must be compiled BEFORE binding_label_tests_13_main.f03, which it 
-! should be because dejagnu will sort the files.  
 module binding_label_tests_13
  use, intrinsic :: iso_c_binding, only: c_int
   integer(c_int) :: c3
   bind(c) c3
 end module binding_label_tests_13
-! { dg-final { keep-modules "" } }
index da93a8bbd87d6dd7df5911b1b3d545e888764851..66ff7cf33cf6bab0d9150bbcedd7ea820b84d9f9 100644 (file)
@@ -1,7 +1,5 @@
 ! { dg-do compile }
-! This file must be compiled AFTER binding_label_tests_13.f03, which it 
-! should be because dejagnu will sort the files.  The module file 
-! binding_label_tests_13.mod can not be removed until after this test is done.
+! { dg-compile-aux-modules "binding_label_tests_13.f03" }
 module binding_label_tests_13_main
   use, intrinsic :: iso_c_binding, only: c_int
   integer(c_int) :: c3  ! { dg-error "Variable c3 from module binding_label_tests_13_main with binding label c3 at .1. uses the same global identifier as entity at .2. from module binding_label_tests_13" }
index 32cf07ae7c4a03c975884fb017f401299e68b6ad..d3f3039a713ba4ae4b9205a75498511c0162641f 100644 (file)
@@ -4,8 +4,6 @@
 !
 ! Contributed by Andrew Bensons <abensonca@gmail.com>
 !
-! This file must be compiled BEFORE binding_label_tests_26b.f90, which it 
-! should be because dejagnu will sort the files.  
 
 module fg
 contains
@@ -16,5 +14,3 @@ contains
     end interface
   end function
 end module
-
-! { dg-final { keep-modules "" } }
index ad8426bc2c6f6535a06ef10f266f50d65cc4e352..ca399757dc83b86c7427d6a8c95042350581df89 100644 (file)
@@ -1,11 +1,9 @@
 ! { dg-do compile }
+! { dg-compile-aux-modules "binding_label_tests_26a.f90" }
 !
 ! PR 58182: [4.9 Regression] ICE with global binding name used as a FUNCTION
 !
 ! Contributed by Andrew Bensons <abensonca@gmail.com>
-!
-! This file must be compiled AFTER binding_label_tests_26a.f90, which it 
-! should be because dejagnu will sort the files.  
 
 module f    ! { dg-error "uses the same global identifier" }
   use fg    ! { dg-error "uses the same global identifier" }
index c3c9ac20e803ff0422f882a24ca4dab78eb8ca4d..91f11c4ecce9d5945247dc18133359246e393db4 100644 (file)
@@ -26,4 +26,3 @@ contains
   end function basicGet
 
 end module G_Nodes
-! { dg-final { keep-modules "" } }
index 5c047e2c5987678faa222a59fb26ae3e2c9526f9..90ef467530c73eba24c695cda7422b479e9b62e1 100644 (file)
@@ -1,5 +1,5 @@
 ! { dg-do link }
-! { dg-additional-sources class_45a.f03 }
+! { dg-compile-aux-modules "class_45a.f03" }
 !
 ! PR 50227: [4.7 Regression] [OOP] ICE-on-valid with allocatable class variable
 !
@@ -10,3 +10,4 @@ program Test
   class(t0), allocatable :: c
   allocate(t1 :: c)
 end program Test
+! { dg-final { cleanup-modules "G_Nodes" } }
index 9441cc79ca8215748510dd794cf3a6dd758d845d..015e53cbb1ba51c2b3d0000beedc27962f3cb436 100644 (file)
@@ -1,10 +1,11 @@
-! { dg-do compile }
+! { dg-do link }
+! { dg-additional-sources "class_4b.f03 class_4c.f03" }
 !
 ! Test the fix for PR41583, in which the different source files
 ! would generate the same 'vindex' for different class declared
 ! types.
 !
-! The test comprises class_4a, class_4b class_4c and class_4d.f03
+! The test comprises class_4a, class_4b and class_4c.f03
 
 ! Contributed by Tobias Burnus <burnus@gcc.gnu.org>
 !
@@ -12,4 +13,4 @@ module m
   type t
   end type t
 end module m
-! { dg-final { keep-modules "m" } }
+! { dg-final { cleanup-modules "m m2" } }
index a5d914a523d3b1b4b3123c6d8e4deef896e554be..dda55b5b0ae23db47b602a946ce1d3bb215c2c4c 100644 (file)
@@ -1,10 +1,11 @@
-! { dg-do compile }
+! Don't compile this anywhere.
+! { dg-do compile { target { lp64 && { ! lp64 } } } }
 !
 ! Test the fix for PR41583, in which the different source files
 ! would generate the same 'vindex' for different class declared
 ! types.
 !
-! The test comprises class_4a, class_4b class_4c and class_4d.f03
+! The test comprises class_4a, class_4b class_4c.f03
 !
 ! Contributed by Tobias Burnus <burnus@gcc.gnu.org>
 !
@@ -13,4 +14,3 @@ module m2
   type, extends(t) :: t2
   end type t2
 end module m2
-! { dg-final { keep-modules "m2" } }
index 088acae6b34192b8201e868431a746adb718d057..e78a30966f5893b9340746ead30d7510b202d4b1 100644 (file)
@@ -1,5 +1,5 @@
-! { dg-do link }
-! { dg-additional-sources class_4a.f03 class_4b.f03 }
+! Don't compile this anywhere.
+! { dg-do compile { target { lp64 && { ! lp64 } } } }
 !
 ! Test the fix for PR41583, in which the different source files
 ! would generate the same 'vindex' for different class declared
@@ -27,4 +27,3 @@
   end select
   print *, i
 end
-! { dg-final { cleanup-modules "m m2" } }
index 2c49b1c646d10178f54168fd78a25c4d17807ea2..7d04aa8c511da7bbf40d3a9796c6b21c0d778726 100644 (file)
@@ -11,6 +11,3 @@ contains
     integer scalar[*]
   end subroutine
 end module
-
-! DO NOT CLEAN UP THE MODULE FILE - coarray_29_2.f90 does it.
-! { dg-final { keep-modules "" } }
index 8c0e81f8638cb5ef2d48562c5eaca4640b430763..d653f3f6f6ec8384ac0b054ad667a4e9e8f261c2 100644 (file)
@@ -1,8 +1,6 @@
 ! { dg-do compile }
 ! { dg-options "-fcoarray=single" }
-
-! Requires that coarray_29.f90 has been compiled before
-! and that, thus, co_sum_module is available
+! { dg-compile-aux-modules "coarray_29_1.f90" }
 
 ! PR fortran/55272
 !
index eb985cbd6e2ccbebfb3841a5e08eb62b65389991..e8c39231db00d17a26e505fcf3d811d37b6b4b9d 100644 (file)
@@ -28,6 +28,21 @@ if ![info exists DEFAULT_FFLAGS] then {
 # Initialize `dg'.
 dg-init
 
+global gfortran_test_path
+global gfortran_aux_module_flags
+set gfortran_test_path $srcdir/$subdir
+set gfortran_aux_module_flags $DEFAULT_FFLAGS
+proc dg-compile-aux-modules { args } {
+    global gfortran_test_path
+    global gfortran_aux_module_flags
+    if { [llength $args] != 2 } {
+       error "dg-set-target-env-var: needs one argument"
+       return
+    }
+    dg-test $gfortran_test_path/[lindex $args 1] "" $gfortran_aux_module_flags
+    # cleanup-modules isn't intentionally invoked here.
+}
+
 # Main loop.
 gfortran-dg-runtest [lsort \
        [glob -nocomplain $srcdir/$subdir/*.\[fF\]{,90,95,03,08} ] ] "" $DEFAULT_FFLAGS
index ad654b35db4613102917309cae5655de5812e0af..8c319028a6d061b7bc871ea20080c2edcfb2a3df 100644 (file)
@@ -12,4 +12,3 @@ 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 "" } }
index fb7778effa0e0567e13c13a87a3934c1041c04d0..cd1664137baa1e6b4535afc290a5228e0fb048c3 100644 (file)
@@ -1,9 +1,7 @@
 ! { dg-do compile }
 ! { dg-options "-std=f2003" }
+! { dg-compile-aux-modules "test_common_binding_labels_2.f03" }
 !
-!
-! This file depends on the module test_common_binding_labels_2.  That module
-! must be compiled first and not be removed until after this test.
 module test_common_binding_labels_2_main
   use, intrinsic :: iso_c_binding, only: c_double, c_int
   implicit none
index d851b5e727778f81262035a0e1cab474a52c2995..87d6c6b78f972d7718d231063f2b76288dbb41d7 100644 (file)
@@ -8,4 +8,3 @@ 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 "" } }
index 3ccab0c89fe866768924f2f53442f8209dc08856..9ad55156e8349b61d5c60ce099e78dfd168249d8 100644 (file)
@@ -1,6 +1,5 @@
 ! { dg-do compile }
-! This file depends on the module test_common_binding_labels_3.  That module
-! must be compiled first and not be removed until after this test.
+! { dg-compile-aux-modules "test_common_binding_labels_3.f03" }
 module test_common_binding_labels_3_main
   use, intrinsic :: iso_c_binding, only: c_int
   integer(c_int), bind(c, name="my_common_block") :: my_int ! { dg-error "COMMON block at .1. with binding label my_common_block uses the same global identifier as entity at .2." }
index ec9efb2d4dcf7864d6172c03820208da35dec849..681b123f4ee83847243e29e997cd8c8e39a1c67e 100644 (file)
@@ -1,6 +1,5 @@
 ! { dg-do compile }
 ! Test the fix for the problem described in PR45077 comments #4 and #5.
-! Note that the module file is kept for whole_file_29.f90
 !
 ! Contributed by Tobias Burnus  <burnus@gcc.gnu.org>
 !
@@ -9,5 +8,3 @@ module iso_red
      character(LEN=1), dimension(:), allocatable :: chars
   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 "" } }
index 703754c649db3f14a029d42302301f6d2d8f5366..86d84cf8d27db11a58b9f58d57aa6c6c171cfb8d 100644 (file)
@@ -1,7 +1,6 @@
 ! { dg-do compile }
+! { dg-compile-aux-modules "whole_file_28.f90" }
 ! Test the fix for the problem described in PR45077 comments #4 and #5.
-! Note that the module file from whole_file_28.f90, 'iso_red', is
-! needed for this test.
 !
 ! Contributed by Tobias Burnus  <burnus@gcc.gnu.org>
 !
index d8e401eeb209502368bcff1ee4b9a8e495ec2ff5..551f2e801a881eb628f2f38a151335a9b5c0f4db 100644 (file)
@@ -1,6 +1,5 @@
 ! { dg-do compile }
 ! Test the fix for the problem described in PR46818.
-! Note that the module file is kept for whole_file_31.f90
 !
 ! Contributed by Martien Hulsen  <m.a.hulsen@tue.nl>
 ! and reduced by Tobias Burnus  <burnus@gcc.gnu.org>
@@ -12,5 +11,3 @@ module system_defs_m
     real, allocatable, dimension(:) :: u
   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 "" } }
index eb77055b91ffb204127a2e6149a5c530072aa368..1ed661dd8e342bfa1a46bb929e2c0f7de5ceb2e6 100644 (file)
@@ -1,7 +1,6 @@
 ! { dg-do compile }
+! { dg-compile-aux-modules "whole_file_30.f90" }
 ! Test the fix for the problem described in PR46818.
-! Note that the module file from whole_file_30.f90, 'system_defs_m',
-! is needed for this test.
 !
 ! Contributed by Martien Hulsen  <m.a.hulsen@tue.nl>
 ! and reduced by Tobias Burnus  <burnus@gcc.gnu.org>