xref: /openbsd-src/gnu/usr.bin/perl/runtests.SH (revision f2da64fbbbf1b03f09f390ab01267c93dfd77c4c)
1#!/bin/sh
2
3case $PERL_CONFIG_SH in
4'')
5    if test ! -f config.sh; then
6	ln ../config.sh . || \
7	ln ../../config.sh . || \
8	ln ../../../config.sh . || \
9	(echo "Can't find config.sh."; exit 1)
10    fi 2>/dev/null
11    . ./config.sh
12    ;;
13esac
14case "$0" in
15*/*) cd `expr X$0 : 'X\(.*\)/'` ;;
16esac
17echo "Extracting runtests (with variable substitutions)"
18rm -f runtests
19
20$spitshell >runtests <<!GROK!THIS!
21$startsh -e
22# runtests.SH
23#
24!GROK!THIS!
25
26## In the following, dollars and backticks do not need the extra backslash.
27$spitshell >>runtests <<'!NO!SUBS!'
28
29export PATH || (echo "OOPS, this isn't sh.  Desperation time.  I will feed myself to sh."; sh $0; kill $$)
30
31case $# in
32    0)
33	echo "runtests tty_flag ..."
34	exit 1
35	;;
36esac
37
38case $1 in
39    tty)
40	tty=Y
41	;;
42    no-tty)
43	tty=N
44	;;
45    choose)
46	if (true </dev/tty) >/dev/null 2>&1; then
47	    tty=Y
48	else
49	    tty=N
50	fi
51	;;
52    *)
53	echo "ttyflag should be one of tty, no-tty or choose"
54	exit 1
55	;;
56esac
57
58if test X"$TESTFILE" = X; then
59    TESTFILE=TEST
60fi
61
62cd t
63
64# If this is run under an old shell that doesn't automatically
65# update PWD, then we must update it.  Otherwise, t/io/fs.t gets
66# mixed up about what directory we are in.
67case "$PWD" in
68    '')  ;; # Do nothing if it isn't set at all.
69    */t) ;; # Leave it alone if it's properly updated.
70    *) PWD=${PWD}/t; export PWD ;;  # Otherwise, fix it.
71esac
72
73!NO!SUBS!
74
75## In the following, dollars and backticks do need the extra backslash.
76$spitshell >>runtests <<!GROK!THIS!
77# The second branch is for testing without a tty or controlling terminal,
78# see t/op/stat.t
79if test \$tty = Y; then
80    ./perl$_exe \$TESTFILE \$TEST_ARGS \$TEST_FILES </dev/tty
81else
82    PERL_SKIP_TTY_TEST=1 ./perl$_exe \$TESTFILE \$TEST_ARGS \$TEST_FILES
83fi
84
85echo "Ran tests" > rantests
86!GROK!THIS!
87$eunicefix runtests
88chmod +x runtests
89