We were setting a global variable FAIL on failure, but if we failed inside a subshell (which a very small number of tests might do), this setting would be lost. The script output (a series of failed/warning lines) was still valid, but not the return code, so the shell might be selected even if one of these tests failed. To avoid the problem, put the fail/warning state in the filesystem instead, which is shared across subshells.
6 lines
80 B
Text
6 lines
80 B
Text
/broken
|
|
/shellfile
|
|
/shelltest.warned
|
|
/shelltest.failed
|
|
/stress.log
|
|
/flush-cache
|