Merge pull request #20848 from edsantiago/safer_defer

deferred test failures: handle a corner case
This commit is contained in:
openshift-merge-bot[bot]
2023-12-01 09:56:52 +00:00
committed by GitHub
2 changed files with 15 additions and 6 deletions

View File

@ -254,10 +254,6 @@ function pasta_test_do() {
assert "${output}" = "${expect}" "Mismatch between data sent and received"
}
function teardown() {
rm -f "${XFER_FILE}"
}
### Addresses ##################################################################
@test "IPv4 default address assignment" {

View File

@ -210,10 +210,20 @@ function basic_setup() {
immediate-assertion-failures
}
# bail-now is how we terminate a test upon assertion failure.
# By default, and the vast majority of the time, it just triggers
# immediate test termination; but see defer-assertion-failures, below.
function bail-now() {
# "false" does not apply to "bail now"! It means "nonzero exit",
# which BATS interprets as "yes, bail immediately".
false
}
# Invoked on teardown: will terminate immediately if there have been
# any deferred test failures; otherwise will reset back to immediate
# test termination on future assertions.
function immediate-assertion-failures() {
function bail-now() {
# "false" does not apply to "bail now"! It means "nonzero exit",
# which BATS interprets as "yes, bail immediately".
false
}
@ -225,6 +235,9 @@ function immediate-assertion-failures() {
fi
}
# Used in special test circumstances--typically multi-condition loops--to
# continue going even on assertion failures. The test will fail afterward,
# usually in teardown. This can be useful to show failure patterns.
function defer-assertion-failures() {
function bail-now() {
ASSERTION_FAILURES+="!"