| # Copyright (C) 1991, 92-93, 95, 97, 1998 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., 675 Mass Ave, Cambridge, MA 02139, USA. |
| |
| # This file was written by Rob Savoye. (rob@cygnus.com) |
| # Modified and maintained by Jeffrey Wheat (cassidy@cygnus.com) |
| |
| # |
| # These tests come from Torbjorn Granlund (tege@cygnus.com) |
| # C torture test suite. |
| # |
| |
| if $tracelevel then { |
| strace $tracelevel |
| } |
| |
| # load support procs |
| load_lib c-torture.exp |
| |
| # |
| # main test loop |
| # |
| |
| set tests [lsort [glob -nocomplain $srcdir/$subdir/*.c]] |
| set idx [lsearch $tests */driver.c] |
| if $idx>=0 { |
| set tests [lreplace $tests $idx $idx] |
| } else { |
| error "list can't find driver.c in $srcdir/$subdir" |
| } |
| |
| # These don't work on AIX. The constructors get run by a program built |
| # with -fcheck-memory-usage, which confuses the driver so much that |
| # they don't even link. |
| if { [istarget "powerpc-*-aix*"] |
| || [istarget "rs6000-*-aix*"] } { |
| set tests "" |
| } |
| |
| # Compiling driver.c on a remote host requires our ability to also |
| # find its driver.h header. |
| if [is_remote host] { |
| remote_download host $srcdir/$subdir/driver.h |
| } |
| |
| # |
| # Do the compile. |
| # |
| gcc_target_compile $srcdir/$subdir/driver.c driver.o object {additional_flags=-w additional_flags=-g} |
| |
| # In target.exp:default_target_compile, we download the resulting a.out |
| # to our local driver.o file, and delete a.out on the host. This doesn't |
| # work for this set of tests, since each test needs to link against driver.o. |
| # So, to get around this we put it back. This was chosen instead of actually |
| # modifying target.exp to somehow provide the option to keep the file on |
| # the remote host, since there aren't yet (in late 1999) enough tests |
| # doing this to warrant the change. |
| if [is_remote host] { |
| remote_download host driver.o |
| } |
| |
| foreach src $tests { |
| # If we're only testing specific files and this isn't one of them, skip it. |
| if ![runtest_file_p $runtests $src] then { |
| continue |
| } |
| |
| c-torture-execute $src "-fcheck-memory-usage driver.o" |
| } |
| |
| # Clean up after ourselves. |
| if [is_remote host] { |
| remote_file host delete driver.o |
| } |
| |