#!/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.
#
# 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
