testbed: Move more setup into wrapper.sh
-
wrapper.sh: Move documentation to README
There's no need to include this in the script that gets copied to the testbed.
-
wrapper.sh: Document when to use this script
-
testbed: Move more environmental setup into wrapper.sh
Constructing a shell script programmatically is hard to read, hard to debug, and hard to get right in corner cases (for example making sure everything is correctly shell-quoted). Move most of this into wrapper.sh so that it can be put through shellcheck, continuing the work started in !190 (merged).
-
testbed: Optionally get debug output from wrapper.sh
This requires going to some lengths to not say "stderr", otherwise several unit tests will fail.
-
wrapper.sh: Always turn off xtrace for the test itself
We use stderr in a simplistic machine-readable way (by default tests fail if stderr is non-empty), so we must not let the shell's xtrace output end up on the test's stderr, even if wrapper.sh is invoked as
sh -x .../wrapper.shor temporarily edited to addset -x. -
testbed: Store path to wrapper.sh to be used later