OSDN Git Service

* lib/target-libpath.exp: New file defining set_ld_library_path_env_vars
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / lib / gfortran-dg.exp
1 #   Copyright (C) 2004 Free Software Foundation, Inc.
2
3 # This program is free software; you can redistribute it and/or modify
4 # it under the terms of the GNU General Public License as published by
5 # the Free Software Foundation; either version 2 of the License, or
6 # (at your option) any later version.
7
8 # This program is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11 # GNU General Public License for more details.
12
13 # You should have received a copy of the GNU General Public License
14 # along with this program; if not, write to the Free Software
15 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
16
17 load_lib gcc-dg.exp
18
19 # Define gfortran callbacks for dg.exp.
20
21 proc gfortran-dg-test { prog do_what extra_tool_flags } {
22     set result \
23         [gcc-dg-test-1 gfortran_target_compile $prog $do_what $extra_tool_flags]
24     
25     set comp_output [lindex $result 0]
26     set output_file [lindex $result 1]
27
28     # Put the error message on the same line as the line number
29     # FIXME: Add a colon after line number
30     # Remove the line of source code with the error and
31     # the number pointing to error
32     regsub -all "\n\n\[^\n\]*\n *\[0-9\]*\n" $comp_output ": " comp_output    
33
34     return [list $comp_output $output_file]
35 }
36
37 proc gfortran-dg-prune { system text } {
38     return [gcc-dg-prune $system $text]
39 }
40
41 # Utility routines.
42
43 # Modified dg-runtest that can cycle through a list of optimization options
44 # as c-torture does.
45 proc gfortran-dg-runtest { testcases default-extra-flags } {
46     global runtests
47     global TORTURE_OPTIONS
48
49     foreach test $testcases {
50         # If we're only testing specific files and this isn't one of
51         # them, skip it.
52         if ![runtest_file_p $runtests $test] {
53             continue
54         }
55
56         # look if this is dg-do-run test, in which case
57         # we cycle through the option list, otherwise we don't
58         if [expr [search_for $test "dg-do run"]] {
59             set option_list $TORTURE_OPTIONS                             
60         } else {
61             set option_list [list { -O } ]
62         }
63
64         set nshort [file tail [file dirname $test]]/[file tail $test]
65
66         foreach flags $option_list {
67             verbose "Testing $nshort, $flags" 1
68             dg-test $test $flags ${default-extra-flags}
69         }
70     }
71 }