1#!/bin/sh
2
3# Constructs lists of source files (full pathnames) to test.  Two
4# files are constructed: testsuite_files, which is used to test with
5# the default dg-runtest command, and testsuite_files_interactive,
6# which is used to test cases that require input to be entered. In
7# addition, both lists are pruned of wchar_t tests if the toolchain
8# under test does not support wchar_t functionality.
9#
10# We mimic the mkcheck script in that the first time this is run, all
11# existing files are listed in "testsuite_files" in the output
12# directory.  Subsequent runs pull the list from that file, allowing
13# users to trim the list down to problematic tests, or just run
14# paticular directories or sub-directories of tests.
15#
16# Selecting individual tests can also be done with RUNTESTFLAGS, but
17# that doesn't really do all that we are trying to accomplish here.
18
19LC_ALL=C
20export LC_ALL
21
22# Both of these are in the appropriate testsuite subdirectories.
23srcdir="$1"
24outdir="$2"
25
26tmp="${TMPDIR:-/tmp}/ctt$$"
27tests_file_normal="$outdir/testsuite_files"
28tests_file_inter="$outdir/testsuite_files_interactive"
29tests_file_perf="$outdir/testsuite_files_performance"
30
31cd $srcdir
32# This is the ugly version of "everything but the current directory".  It's
33# what has to happen when find(1) doesn't support -mindepth, or -xtype.
34dlist=`echo [0-9][0-9]*`
35dlist="$dlist abi backward ext performance thread tr1"
36find $dlist "(" -type f -o -type l ")" -name "*.cc" -print > $tmp.01
37find $dlist "(" -type f -o -type l ")" -name "*.c" -print > $tmp.02
38cat  $tmp.01 $tmp.02 | sort > $tmp.1
39if test ! -s "$tmp.1"; then
40  exit 1
41fi
42
43# Now filter out classes of tests.  These classes are run using special rules.
44grep _xin $tmp.1 > $tests_file_inter
45grep -v _xin $tmp.1 > $tmp.4
46
47grep performance $tmp.4 > $tests_file_perf
48grep -v performance $tmp.4 > $tmp.5
49
50# ...more filters go here.
51cp $tmp.5 $tests_file_normal
52
53rm $tmp*
54exit 0
55