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