Allow for seamless switching between old and new bats versions
This commit is contained in:
parent
ef80c6b2a3
commit
a477040abb
|
@ -80,8 +80,24 @@ function wait_for_finished_setup_in_container() {
|
||||||
|
|
||||||
SETUP_FILE_MARKER="$BATS_TMPDIR/`basename \"$BATS_TEST_FILENAME\"`.setup_file"
|
SETUP_FILE_MARKER="$BATS_TMPDIR/`basename \"$BATS_TEST_FILENAME\"`.setup_file"
|
||||||
|
|
||||||
|
function native_setup_teardown_file_support() {
|
||||||
|
VERSION_REGEX='([0-9]+)\.([0-9]+)\.([0-9]+)'
|
||||||
|
# bats versions that support setup_file out of the box don't need this
|
||||||
|
if [[ "$BATS_VERSION" =~ $VERSION_REGEX ]]; then
|
||||||
|
numeric_version=$(( (BASH_REMATCH[1] * 100 + BASH_REMATCH[2]) * 100 + BASH_REMATCH[3] ))
|
||||||
|
if [[ $numeric_version -ge 10201 ]]; then
|
||||||
|
if [ "$BATS_TEST_NAME" == 'test_first' ]; then
|
||||||
|
skip 'This version natively supports setup/teardown_file'
|
||||||
|
fi
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
# use in setup() in conjunction with a `@test "first" {}` to trigger setup_file reliably
|
# use in setup() in conjunction with a `@test "first" {}` to trigger setup_file reliably
|
||||||
function run_setup_file_if_necessary() {
|
function run_setup_file_if_necessary() {
|
||||||
|
native_setup_teardown_file_support && return 0
|
||||||
if [ "$BATS_TEST_NAME" == 'test_first' ]; then
|
if [ "$BATS_TEST_NAME" == 'test_first' ]; then
|
||||||
# prevent old markers from marking success or get an error if we cannot remove due to permissions
|
# prevent old markers from marking success or get an error if we cannot remove due to permissions
|
||||||
rm -f "$SETUP_FILE_MARKER"
|
rm -f "$SETUP_FILE_MARKER"
|
||||||
|
@ -99,6 +115,7 @@ function run_setup_file_if_necessary() {
|
||||||
|
|
||||||
# use in teardown() in conjunction with a `@test "last" {}` to trigger teardown_file reliably
|
# use in teardown() in conjunction with a `@test "last" {}` to trigger teardown_file reliably
|
||||||
function run_teardown_file_if_necessary() {
|
function run_teardown_file_if_necessary() {
|
||||||
|
native_setup_teardown_file_support && return 0
|
||||||
if [ "$BATS_TEST_NAME" == 'test_last' ]; then
|
if [ "$BATS_TEST_NAME" == 'test_last' ]; then
|
||||||
# cleanup setup file marker
|
# cleanup setup file marker
|
||||||
rm -f "$SETUP_FILE_MARKER"
|
rm -f "$SETUP_FILE_MARKER"
|
||||||
|
|
Loading…
Reference in New Issue