From abd3d6007c581a427a47feabd0f8d95c777574ec Mon Sep 17 00:00:00 2001
From: Phil Edwards <pme@gcc.gnu.org>
Date: Mon, 11 Mar 2002 21:11:07 +0000
Subject: [PATCH] libstdc++-v3-dg.exp (libstdc++-v3-list-sourcefiles): New
 function.

2002-03-11  Phil Edwards  <pme@gcc.gnu.org>

	* testsuite/lib/libstdc++-v3-dg.exp (libstdc++-v3-list-sourcefiles):
	New function.  Build the list of tests to run in testsuite_files.
	* testsuite/libstdc++-v3.dg/dg.exp:  Use it.

From-SVN: r50598
---
 libstdc++-v3/ChangeLog                        |  6 ++++
 .../testsuite/lib/libstdc++-v3-dg.exp         | 35 +++++++++++++++++++
 libstdc++-v3/testsuite/libstdc++-v3.dg/dg.exp |  5 ++-
 3 files changed, 43 insertions(+), 3 deletions(-)

diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index a2eaf0f8f168..5e91e159c208 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,9 @@
+2002-03-11  Phil Edwards  <pme@gcc.gnu.org>
+
+	* testsuite/lib/libstdc++-v3-dg.exp (libstdc++-v3-list-sourcefiles):
+	New function.  Build the list of tests to run in testsuite_files.
+	* testsuite/libstdc++-v3.dg/dg.exp:  Use it.
+
 2002-03-11  Phil Edwards  <pme@gcc.gnu.org>
 
 	* testsuite/21_strings/capacity.cc:  Only explicitly instantiate on
diff --git a/libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp b/libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp
index 72081b239a13..8d1e71397d9f 100644
--- a/libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp
+++ b/libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp
@@ -176,3 +176,38 @@ proc libstdc++-v3_target_compile { source dest type options } {
     return [target_compile $source $dest $type $options]
 }
 
+
+# A bit sloppy...  Returns a list of source files (full pathnames) to
+# compile.  We mimic the mkcheck script in that the first time this is run,
+# all existing files are listed in "testsuite_files" in the output
+# directory.  Subsequent runs pull the list from that file, allowing users
+# to trim the list down to problematic tests.
+### This is supposed to be done via RUNTESTFLAGS, but that doesn't work.
+proc libstdc++-v3-list-sourcefiles { } {
+    global srcdir
+    global outdir
+
+    set files_file "${outdir}/testsuite_files"
+    set sfiles ""
+    if { [file exists $files_file] } {
+	set f [open $files_file]
+	while { ! [eof $f] } {
+	    set t [gets $f]
+	    if { [string length "$t"] != 0 } {
+		lappend sfiles ${srcdir}/${t}
+	    }
+	}
+    } else {
+	set f [open $files_file "w"]
+	set where_we_were [pwd]
+	cd $srcdir
+	foreach s [lsort [glob -nocomplain */*.cc]] {
+	    lappend sfiles ${srcdir}/${s}
+	    puts $f $s
+	}
+	cd $where_we_were
+    }
+    close $f
+    return $sfiles
+}
+
diff --git a/libstdc++-v3/testsuite/libstdc++-v3.dg/dg.exp b/libstdc++-v3/testsuite/libstdc++-v3.dg/dg.exp
index c5c22c3c2877..4e0dd07dbaa5 100644
--- a/libstdc++-v3/testsuite/libstdc++-v3.dg/dg.exp
+++ b/libstdc++-v3/testsuite/libstdc++-v3.dg/dg.exp
@@ -1,4 +1,4 @@
-#   Copyright (C) 2001 Free Software Foundation, Inc.
+#   Copyright (C) 2001, 2002 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
@@ -40,8 +40,7 @@ remote_exec host ${shell-ulimit-command} "-d ${maximum-memory-usage}"
 remote_exec host ${shell-ulimit-command} "-v ${maximum-memory-usage}"
 
 # Main loop.
-dg-runtest [lsort [glob -nocomplain $srcdir/*/*.cc]] \
-        "" $DEFAULT_CXXFLAGS
+dg-runtest [libstdc++-v3-list-sourcefiles] "" $DEFAULT_CXXFLAGS
 
 # All done.
 dg-finish
-- 
GitLab