> +BAIL_OUT () { > + test $# -ne 1 && BUG "1 param" > + > + # Do not change "Bail out! " string. It's part of TAP syntax: > + # https://testanything.org/tap-specification.html > + local bail_out="Bail out! " > + local message="$1" > + > + say_color error $bail_out "$message" > + _error_exit > +} This looks like a good addition that can be used in similar cases later. I'd assume that "Bail out!" early of a test sequence will mark the test suite as a failure as a whole, but I wonder if there is a similar "early abort" mechanism that would cause a success? In some tests we do if .. some condition .. then test_done ;# because we cannot test the remainder fi .. more tests ... and I've always thought the "done" an ugly hack. But that has nothing to do with the value of this change. Thanks.