From ac871ee12ae7743e20bf25e4470449211b45f47f Mon Sep 17 00:00:00 2001 From: Mark Mitchell Date: Wed, 4 Jun 2003 15:32:08 +0000 Subject: [PATCH] dg-pch.exp: New file. * lib/dg-pch.exp: New file. * g++.dg/pch/pch.exp: Use dg-pch.exp. * gcc.dg/pch/pch.exp: Likewise. From-SVN: r67443 --- gcc/testsuite/ChangeLog | 6 +++ gcc/testsuite/g++.dg/pch/pch.exp | 57 +----------------------- gcc/testsuite/gcc.dg/pch/pch.exp | 58 ++---------------------- gcc/testsuite/lib/dg-pch.exp | 75 ++++++++++++++++++++++++++++++++ 4 files changed, 86 insertions(+), 110 deletions(-) create mode 100644 gcc/testsuite/lib/dg-pch.exp diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index e6e4169382d..57c0f71b4b2 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2003-06-04 Mark Mitchell + + * lib/dg-pch.exp: New file. + * g++.dg/pch/pch.exp: Use dg-pch.exp. + * gcc.dg/pch/pch.exp: Likewise. + 2003-06-04 Roger Sayle * gcc.dg/builtins-2.c: Add tests for tan(atan(x)). diff --git a/gcc/testsuite/g++.dg/pch/pch.exp b/gcc/testsuite/g++.dg/pch/pch.exp index 0fc72943fbe..8d2848548f8 100644 --- a/gcc/testsuite/g++.dg/pch/pch.exp +++ b/gcc/testsuite/g++.dg/pch/pch.exp @@ -19,6 +19,7 @@ # Load support procs. load_lib "g++-dg.exp" +load_lib dg-pch.exp # Initialize `dg'. dg-init @@ -27,63 +28,9 @@ set old_dg_do_what_default "${dg-do-what-default}" # Main loop. foreach test [lsort [glob -nocomplain $srcdir/$subdir/*.C]] { - global runtests dg-do-what-default - - # If we're only testing specific files and this isn't one of them, skip it. - if ![runtest_file_p $runtests $test] { - continue - } - set nshort "$subdir/[file tail $test]" - set bname "[file rootname [file tail $test]]" - - catch { file delete "$bname.H.gch" } - catch { file delete "$bname.s" } - catch { file delete "$bname.s-gch" } - # We don't try to use the loop-optimizing options, since they are highly # unlikely to make any difference to PCH. - foreach flags { "-g" "-O2 -g" "-O2" } { - verbose "Testing $nshort, $flags" 1 - - # For the header files, the default is to precompile. - set dg-do-what-default precompile - catch { file delete "$bname.H" } - file copy "[file rootname $test].Hs" "$bname.H" - dg-test -keep-output "$bname.H" $flags "" - - # For the rest, the default is to compile to .s. - set dg-do-what-default compile - - if { [ file exists "$bname.H.gch" ] } { - # Ensure that the PCH file is used, not the original header. - file delete "$bname.H" - - dg-test -keep-output $test $flags "-I." - file delete "$bname.H.gch" - if { [ file exists "$bname.s" ] } { - file rename "$bname.s" "$bname.s-gch" - file copy "[file rootname $test].Hs" "$bname.H" - dg-test -keep-output $test $flags "-I." - set tmp [ diff "$bname.s" "$bname.s-gch" ] - if { $tmp == 0 } { - untested "$nshort $flags assembly comparison" - } elseif { $tmp == 1 } { - pass "$nshort $flags assembly comparison" - } else { - fail "$nshort $flags assembly comparison" - } - file delete "$bname.H" - file delete "$bname.s" - file delete "$bname.s-gch" - } else { - untested "$nshort $flags assembly comparison" - } - - } else { - untested "$nshort $flags" - untested "$nshort $flags assembly comparison" - } - } + dg-pch $subdir $test [list "-g" "-O2 -g" "-O2"] ".H" } set dg-do-what-default "$old_dg_do_what_default" diff --git a/gcc/testsuite/gcc.dg/pch/pch.exp b/gcc/testsuite/gcc.dg/pch/pch.exp index eb229d7aa33..8ed26ba7ef7 100644 --- a/gcc/testsuite/gcc.dg/pch/pch.exp +++ b/gcc/testsuite/gcc.dg/pch/pch.exp @@ -19,6 +19,7 @@ # Load support procs. load_lib gcc-dg.exp +load_lib dg-pch.exp # Initialize `dg'. dg-init @@ -27,66 +28,13 @@ set old_dg_do_what_default "${dg-do-what-default}" # Main loop. foreach test [lsort [glob -nocomplain $srcdir/$subdir/*.c]] { - global runtests torture_without_loops dg-do-what-default - - # If we're only testing specific files and this isn't one of them, skip it. - if ![runtest_file_p $runtests $test] { - continue - } - set nshort "$subdir/[file tail $test]" - set bname "[file rootname [file tail $test]]" - - catch { file delete "$bname.h.gch" } - catch { file delete "$bname.s" } - catch { file delete "$bname.s-gch" } + global torture_without_loops # We don't try to use the loop-optimizing options, since they are highly # unlikely to make any difference to PCH. However, we do want to # add -O0 -g, since users who want PCH usually want debugging and quick # compiles. - set pch_torture [concat [list {-O0 -g}] $torture_without_loops] - foreach flags $pch_torture { - verbose "Testing $nshort, $flags" 1 - - # For the header files, the default is to precompile. - set dg-do-what-default precompile - catch { file delete "$bname.h" } - file copy "[file rootname $test].hs" "$bname.h" - dg-test -keep-output "$bname.h" $flags "" - - # For the rest, the default is to compile to .s. - set dg-do-what-default compile - - if { [ file exists "$bname.h.gch" ] } { - # Ensure that the PCH file is used, not the original header. - file delete "$bname.h" - - dg-test -keep-output $test $flags "-I." - file delete "$bname.h.gch" - if { [ file exists "$bname.s" ] } { - file rename "$bname.s" "$bname.s-gch" - file copy "[file rootname $test].hs" "$bname.h" - dg-test -keep-output $test $flags "-I." - set tmp [ diff "$bname.s" "$bname.s-gch" ] - if { $tmp == 0 } { - untested "$nshort $flags assembly comparison" - } elseif { $tmp == 1 } { - pass "$nshort $flags assembly comparison" - } else { - fail "$nshort $flags assembly comparison" - } - file delete "$bname.h" - file delete "$bname.s" - file delete "$bname.s-gch" - } else { - untested "$nshort $flags assembly comparison" - } - - } else { - untested "$nshort $flags" - untested "$nshort $flags assembly comparison" - } - } + dg-pch $subdir $test [concat [list {-O0 -g}] $torture_without_loops] ".h" } set dg-do-what-default "$old_dg_do_what_default" diff --git a/gcc/testsuite/lib/dg-pch.exp b/gcc/testsuite/lib/dg-pch.exp new file mode 100644 index 00000000000..e41c59d6b4a --- /dev/null +++ b/gcc/testsuite/lib/dg-pch.exp @@ -0,0 +1,75 @@ +# Copyright (C) 2003 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +proc dg-pch { subdir test options suffix } { + global runtests dg-do-what-default + + # If we're only testing specific files and this isn't one of them, skip it. + if ![runtest_file_p $runtests $test] { + continue + } + set nshort "$subdir/[file tail $test]" + set bname "[file rootname [file tail $nshort]]" + + catch { file delete "$bname$suffix.gch" } + catch { file delete "$bname.s" } + catch { file delete "$bname.s-gch" } + + # We don't try to use the loop-optimizing options, since they are highly + # unlikely to make any difference to PCH. + foreach flags $options { + verbose "Testing $nshort, $flags" 1 + + # For the header files, the default is to precompile. + set dg-do-what-default precompile + catch { file delete "$bname$suffix" } + file copy "[file rootname $test]${suffix}s" "$bname$suffix" + dg-test -keep-output "$bname$suffix" $flags "" + + # For the rest, the default is to compile to .s. + set dg-do-what-default compile + + if { [ file exists "$bname$suffix.gch" ] } { + # Ensure that the PCH file is used, not the original header. + file delete "$bname$suffix" + + dg-test -keep-output $test $flags "-I." + file delete "$bname$suffix.gch" + if { [ file exists "$bname.s" ] } { + file rename "$bname.s" "$bname.s-gch" + file copy "[file rootname $test]${suffix}s" "$bname$suffix" + dg-test -keep-output $test $flags "-I." + set tmp [ diff "$bname.s" "$bname.s-gch" ] + if { $tmp == 0 } { + untested "$nshort $flags assembly comparison" + } elseif { $tmp == 1 } { + pass "$nshort $flags assembly comparison" + } else { + fail "$nshort $flags assembly comparison" + } + file delete "$bname$suffix" + file delete "$bname.s" + file delete "$bname.s-gch" + } else { + untested "$nshort $flags assembly comparison" + } + + } else { + untested "$nshort $flags" + untested "$nshort $flags assembly comparison" + } + } +} -- 2.30.2