From c44bb965f9ba82c7c2527b91c1c03c73317ab25e Mon Sep 17 00:00:00 2001 From: Hunter Wittenborn Date: Mon, 8 Aug 2022 18:34:49 -0500 Subject: [PATCH 1/3] Add default path for 'BATS_LIB_PATH' environment variable' Closes #600. --- bin/bats | 5 +++++ lib/bats-core/test_functions.bash | 10 ---------- test/load.bats | 8 +------- 3 files changed, 6 insertions(+), 17 deletions(-) diff --git a/bin/bats b/bin/bats index 1f7ce2e970..2e383d8e9d 100755 --- a/bin/bats +++ b/bin/bats @@ -54,6 +54,11 @@ if ! BATS_PATH=$(bats_readlinkf "${BASH_SOURCE[0]}" 2>/dev/null); then BATS_PATH=$(bats_readlinkf "${BASH_SOURCE[0]}") fi +# Set BATS_LIB_PATH if it isn't already. +if [[ "${BATS_LIB_PATH-x}" == 'x' ]]; then + BATS_LIB_PATH='/usr/lib/bats' +fi + export BATS_ROOT=${BATS_PATH%/*/*} export -f bats_readlinkf exec env BATS_ROOT="$BATS_ROOT" "$BATS_ROOT/libexec/bats-core/bats" "$@" diff --git a/lib/bats-core/test_functions.bash b/lib/bats-core/test_functions.bash index 735bf75d8b..3fa13037de 100644 --- a/lib/bats-core/test_functions.bash +++ b/lib/bats-core/test_functions.bash @@ -117,18 +117,9 @@ bats_load_safe() { return 1 } -bats_require_lib_path() { - if [[ -z "${BATS_LIB_PATH:-}" ]]; then - printf "%s: requires BATS_LIB_PATH to be set!\n" "${FUNCNAME[1]}" >&2 - exit 1 - fi -} - bats_load_library_safe() { # local slug="${1:?}" library_path - bats_require_lib_path - # Check for library load paths in BATS_TEST_DIRNAME and BATS_LIB_PATH if [[ ${slug:0:1} != / ]]; then find_in_bats_lib_path library_path "$slug" @@ -151,7 +142,6 @@ bats_load_library_safe() { # # immediately exit on error, use bats_load_library_safe to catch and handle errors bats_load_library() { # - bats_require_lib_path if ! bats_load_library_safe "$@"; then exit 1 fi diff --git a/test/load.bats b/test/load.bats index 598d9d876f..fc773691b3 100644 --- a/test/load.bats +++ b/test/load.bats @@ -132,12 +132,6 @@ setup() { run -0 bats "$FIXTURE_ROOT/load.bats" } -@test "bats_load_library requires BATS_LIB_PATH to be set" { - unset BATS_LIB_PATH - run ! bats "$FIXTURE_ROOT/bats_load_library.bats" - [ "${lines[4]}" == '# bats_load_library: requires BATS_LIB_PATH to be set!' ] -} - @test "bats_load_library supports libraries with loaders on the BATS_LIB_PATH" { path_dir="$BATS_TEST_TMPDIR/libraries/$BATS_TEST_NAME" mkdir -p "$path_dir" @@ -192,4 +186,4 @@ setup() { [ "${lines[1]}" = "not ok 1 failed" ] [ "${lines[3]}" = "# \`false' failed" ] [ ${#lines[@]} -eq 4 ] -} \ No newline at end of file +} From dceba487e8bb9695336dd632150885db95a96396 Mon Sep 17 00:00:00 2001 From: Martin Schulze Date: Fri, 12 Aug 2022 23:26:41 +0200 Subject: [PATCH 2/3] Move BATS_LIB_PATH default value to central place --- bin/bats | 5 ----- libexec/bats-core/bats | 1 + 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/bin/bats b/bin/bats index 2e383d8e9d..1f7ce2e970 100755 --- a/bin/bats +++ b/bin/bats @@ -54,11 +54,6 @@ if ! BATS_PATH=$(bats_readlinkf "${BASH_SOURCE[0]}" 2>/dev/null); then BATS_PATH=$(bats_readlinkf "${BASH_SOURCE[0]}") fi -# Set BATS_LIB_PATH if it isn't already. -if [[ "${BATS_LIB_PATH-x}" == 'x' ]]; then - BATS_LIB_PATH='/usr/lib/bats' -fi - export BATS_ROOT=${BATS_PATH%/*/*} export -f bats_readlinkf exec env BATS_ROOT="$BATS_ROOT" "$BATS_ROOT/libexec/bats-core/bats" "$@" diff --git a/libexec/bats-core/bats b/libexec/bats-core/bats index 372209046a..4f14dee5ae 100755 --- a/libexec/bats-core/bats +++ b/libexec/bats-core/bats @@ -101,6 +101,7 @@ export BATS_TMPDIR="${TMPDIR:-/tmp}" BATS_TMPDIR=${BATS_TMPDIR%/} # chop off trailing / to avoid duplication export BATS_RUN_TMPDIR= export BATS_GUARANTEED_MINIMUM_VERSION=0.0.0 +export BATS_LIB_PATH=${BATS_LIB_PATH-/usr/lib/bats} if [[ ! -d "${BATS_TMPDIR}" ]];then printf "Error: BATS_TMPDIR (%s) does not exist or is not a directory" "${BATS_TMPDIR}" >&2 From 7cfbf8a1d89a26d73f202143ca60d1ca67c50cad Mon Sep 17 00:00:00 2001 From: Martin Schulze Date: Fri, 12 Aug 2022 23:27:46 +0200 Subject: [PATCH 3/3] Add changelog entry for #628 --- docs/CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index ec496ecf23..7981da6a2c 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -40,8 +40,9 @@ The format is based on [Keep a Changelog][kac] and this project adheres to * `teardown_file` errors don't swallow `setup_file` errors anymore, the behavior is more like `teardown`'s now (only `return`/last command can trigger `teardown` errors) (#623) -* upgraded from deprecated CI envs for MacOS (10 -> 11,12) and Ubuntu +* upgraded from deprecated CI envs for MacOS (10 -> 11,12) and Ubuntu (18.04 -> 22.04) (#630) +* add `/usr/lib/bats` as default value for `BATS_LIB_PATH` (#628) #### Documentation