#!/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
# paticular 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.
dlist=`echo [0-9][0-9]*`
dlist="$dlist abi backward ext performance tr1 tr2 decimal"
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
