Always pass the test program as PROG env var, fix synopsis
authorkn <kn@openbsd.org>
Sun, 16 Oct 2022 08:49:03 +0000 (08:49 +0000)
committerkn <kn@openbsd.org>
Sun, 16 Oct 2022 08:49:03 +0000 (08:49 +0000)
commit576367ff1021a79f22c7a50cbcc1bb01e690595e
treebec64ebb46cd20ab7330e75b6db0702b8e701f9e
parent7fae021aca81205d061d3d2b405111a1ab7d9c88
Always pass the test program as PROG env var, fix synopsis

The ./th perl script always runs -p prog (KSH in Makefile) as the shell,
but cannot signal it other than the optional SIGKILL after `time-limit'.

Implementing time-related signal handling in ./th seems overkill, so always
pass the program as PROG in the environment so it can wrap itself, e.g.
description:
simluate interrupting a script
stdin:
timeout --signal SIGINT --preserve-status -- 1s $PROG -c '
actual test script getting ^C after one second...
'

Avoiding hard-coded programs in tests with PROG allows testing different
shells through `make KSH=/path/to/sh' without changing or adding shell
specific tests.

While here, make -p and -s as mandatory in usage as ./th `die's if they're
not passed (allowing to always just pass -p's argument as PROG).
regress/bin/ksh/th