This fixes a few issues around the existing testscript -continue flag. Notably:
causing T.Fatal and T.FailNow to return normally meant that some logic inside the testscript package that was expecting the old behaviour would fail to work correctly (for example, a non-existent command would cause a panic)
the logging logic was erroneously assuming that if we got to the end of a script, all sections had passed therefore we could omit the logged messages.
We fix the above by making "continue on error" a first class part of testscript.Params, so the testscript logic actually knows about it.
To test it properly, we need a couple of hacks to make the output predictable. Unfortunately, those hacks are internal only, so it's hard to add similar tests to the cmd/testscript command to end-to-end test that, but the existing test should act as sufficient "smoke test" that the continue logic is wired up OK.
This fixes a few issues around the existing
testscript -continue
flag. Notably:T.Fatal
andT.FailNow
to return normally meant that some logic inside the testscript package that was expecting the old behaviour would fail to work correctly (for example, a non-existent command would cause a panic)We fix the above by making "continue on error" a first class part of
testscript.Params
, so the testscript logic actually knows about it.To test it properly, we need a couple of hacks to make the output predictable. Unfortunately, those hacks are internal only, so it's hard to add similar tests to the
cmd/testscript
command to end-to-end test that, but the existing test should act as sufficient "smoke test" that the continue logic is wired up OK.