| #!/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" |
| tests_file_simd="$outdir/testsuite_files_simd" |
| |
| 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 |
| |
| grep simd/tests/ $tmp.5 > $tests_file_simd |
| grep -v simd/tests/ $tmp.5 > $tmp.6 |
| |
| # ...more filters go here. |
| cp $tmp.6 $tests_file_normal |
| |
| rm $tmp* |
| exit 0 |