|  | #!/bin/sh | 
|  |  | 
|  | # Constructs lists of source files (full pathnames) to test.  Two | 
|  | # files are constructed: testsuite_files, which is used to test with | 
|  | # the default dg-runtest command, and testsuite_files_interactive, | 
|  | # which is used to test cases that require input to be entered. In | 
|  | # addition, both lists are pruned of wchar_t tests if the toolchain | 
|  | # under test does not support wchar_t functionality. | 
|  | # | 
|  | # 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, or just run | 
|  | # particular directories or sub-directories of tests. | 
|  | # | 
|  | # Selecting individual tests can also be done with RUNTESTFLAGS, but | 
|  | # that doesn't really do all that we are trying to accomplish here. | 
|  |  | 
|  | LC_ALL=C | 
|  | export LC_ALL | 
|  |  | 
|  | # Both of these are in the appropriate testsuite subdirectories. | 
|  | srcdir="$1" | 
|  | outdir="$2" | 
|  |  | 
|  | tmp="${TMPDIR:-/tmp}/ctt$$" | 
|  | tests_file_normal="$outdir/testsuite_files" | 
|  | tests_file_inter="$outdir/testsuite_files_interactive" | 
|  | tests_file_perf="$outdir/testsuite_files_performance" | 
|  |  | 
|  | cd $srcdir | 
|  | # This is the ugly version of "everything but the current directory".  It's | 
|  | # what has to happen when find(1) doesn't support -mindepth, or -xtype. | 
|  | # The directories here should be consistent with libstdc++-dg/conformance.exp | 
|  | dlist=`echo [0-9][0-9]*` | 
|  | dlist="$dlist std abi backward ext performance tr1 tr2 decimal experimental" | 
|  | dlist="$dlist special_functions" | 
|  | find $dlist "(" -type f -o -type l ")" -name "*.cc" -print > $tmp.01 | 
|  | find $dlist "(" -type f -o -type l ")" -name "*.c" -print > $tmp.02 | 
|  | cat  $tmp.01 $tmp.02 | sort > $tmp.1 | 
|  | if test ! -s "$tmp.1"; then | 
|  | exit 1 | 
|  | fi | 
|  |  | 
|  | # Now filter out classes of tests.  These classes are run using special rules. | 
|  | grep _xin $tmp.1 > $tests_file_inter | 
|  | grep -v _xin $tmp.1 > $tmp.4 | 
|  |  | 
|  | grep performance $tmp.4 > $tests_file_perf | 
|  | grep -v performance $tmp.4 > $tmp.5 | 
|  |  | 
|  | # ...more filters go here. | 
|  | cp $tmp.5 $tests_file_normal | 
|  |  | 
|  | rm $tmp* | 
|  | exit 0 |