# Functional and regression tests in C++ for libstdc++.# Copyright (C) 2001, 2002, 2003, 2004 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.# libstdc++-v3 testsuite that uses the 'dg.exp' driver.# Initialization.dg-init# Build the support objects.v3-build_supportset tests [list]# If there is a "testsuite_files" file, use it.## This is a workaround for problems reported with using:## runtest normal.exp="`cat testsuite_files`"## See:# http://gcc.gnu.org/ml/libstdc++/2005-03/msg00278.html# for discussion of the problem.## If that worked consistently, we could modify "make check" to# pass that option, and then remove this code.if {[info exists blddir]} {set tests_file "${blddir}/testsuite/testsuite_files"}if {[info exists tests_file] && [file exists $tests_file]} {set f [open $tests_file]while { ! [eof $f] } {set t [gets $f]if { [string length "$t"] != 0 } {lappend tests ${srcdir}/${t}}}close $f} else {# Find directories that might have tests.set subdirs [glob "$srcdir/\[0-9\]\[0-9\]*"]foreach d [glob "$srcdir/\[a-z\]*"] {if {[file isdirectory $d]} {lappend subdirs $d}}# Find all the tests.foreach s $subdirs {set subdir_tests [find $s *.cc]set subdir_tests_c [find $s *.c]foreach e $subdir_tests_c {lappend subdir_tests $e}# Filter out tests that should not be run.foreach t $subdir_tests {# The DejaGNU "find" procedure sometimes returns a list# containing an empty string, when it should really return# an empty list.if { $t == "" } {continue}# Filter out:# 1. interactive tests.# 2. performance tests.# 3. wchar_t tests, if not supported.# 4. thread tests, if not supported.if { [string first _xin $t] == -1&& [string first performance $t] == -1&& (${v3-wchar_t} || [string first wchar_t $t] == -1)&& (${v3-threads} || [string first thread $t] == -1) } {lappend tests $t}}}}set tests [lsort $tests]# Main loop.global DEFAULT_CXXFLAGSglobal PCH_CXXFLAGSdg-runtest $tests "" "$DEFAULT_CXXFLAGS $PCH_CXXFLAGS"# All done.dg-finish