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