From bb741a64c9dfc63a4eacd354328e909997633007 Mon Sep 17 00:00:00 2001 From: Felipe Contreras Date: Tue, 19 Mar 2024 17:54:10 -0600 Subject: [PATCH] Rename SHARNESS_SRCDIR The name SHARNESS_TEST_SRCDIR is not correct because it's not about tests, it's about the location of the Sharness library. We'll support both for now but eventually SHARNESS_TEST_SRCDIR will be obsolete. Signed-off-by: Felipe Contreras --- API.md | 6 +++--- README.md | 2 +- sharness.sh | 15 ++++++++------- t/sharness.t | 32 ++++++++++++++++---------------- 4 files changed, 28 insertions(+), 27 deletions(-) diff --git a/API.md b/API.md index 6fec4a62b..46e3ef715 100644 --- a/API.md +++ b/API.md @@ -18,10 +18,10 @@ Public: The file extension for tests. By default, it is set to "t". Public: Root directory containing tests. Tests can override this variable, e.g. for testing Sharness itself. -`SHARNESS_TEST_SRCDIR` ----------------------- +`SHARNESS_SRCDIR` +----------------- -Public: Source directory of test code and sharness library. This directory may be different from the directory in which tests are being run. +Public: Source directory of the sharness library. `SHARNESS_TEST_OUTDIR` diff --git a/README.md b/README.md index 9b016362b..5456a24a8 100644 --- a/README.md +++ b/README.md @@ -116,7 +116,7 @@ The following files are optional: after all the tests finish. Sharness loads the extra functions automatically if you are using bash or zsh, -but otherwise you need to set SHARNESS_TEST_SRCDIR to the directory where +but otherwise you need to set SHARNESS_SRCDIR to the directory where `sharness.sh` is. To see an explanation of all the functions, see the separate [API documentation]. diff --git a/sharness.sh b/sharness.sh index 7d24d0c52..ec9cb01ab 100644 --- a/sharness.sh +++ b/sharness.sh @@ -32,6 +32,9 @@ fi SHARNESS_VERSION="1.2.1" export SHARNESS_VERSION +# Backwards compatibility +: "${SHARNESS_SRCDIR:=${SHARNESS_TEST_SRCDIR-}}" + : "${SHARNESS_TEST_EXTENSION:=t}" # Public: The file extension for tests. By default, it is set to "t". export SHARNESS_TEST_EXTENSION @@ -44,11 +47,9 @@ SHARNESS_TEST_DIRECTORY=$(cd "$SHARNESS_TEST_DIRECTORY" && pwd) || exit 1 # e.g. for testing Sharness itself. export SHARNESS_TEST_DIRECTORY -: "${SHARNESS_TEST_SRCDIR:=$(cd "$(dirname "$SHARNESS_SOURCE")" && pwd)}" -# Public: Source directory of test code and sharness library. -# This directory may be different from the directory in which tests are -# being run. -export SHARNESS_TEST_SRCDIR +: "${SHARNESS_SRCDIR:=$(cd "$(dirname "$SHARNESS_SOURCE")" && pwd)}" +# Public: Source directory of the sharness library. +export SHARNESS_SRCDIR : "${SHARNESS_TEST_OUTDIR:=$SHARNESS_TEST_DIRECTORY}" # Public: Directory where the output of the tests should be stored (i.e. @@ -298,9 +299,9 @@ test_fixed=0 test_broken=0 test_success=0 -if test -e "$SHARNESS_TEST_SRCDIR/lib-sharness/functions.sh" +if test -e "$SHARNESS_SRCDIR/lib-sharness/functions.sh" then - . "$SHARNESS_TEST_SRCDIR/lib-sharness/functions.sh" + . "$SHARNESS_SRCDIR/lib-sharness/functions.sh" fi # You are not expected to call test_ok_ and test_failure_ directly, use diff --git a/t/sharness.t b/t/sharness.t index 83cbe91b8..2dfa953e3 100755 --- a/t/sharness.t +++ b/t/sharness.t @@ -59,11 +59,11 @@ run_sub_test_lib_test () { ' # Point to the test/sharness.sh, which isn't in ../ as usual - . "\$SHARNESS_TEST_SRCDIR"/sharness.sh + . "\$SHARNESS_SRCDIR"/sharness.sh EOF cat >>".$name.t" && chmod +x ".$name.t" && - export SHARNESS_TEST_SRCDIR && + export SHARNESS_SRCDIR && # Setting PS4 simplifies properly testing set -x output PS4=+ $prefix $SHELL_PATH ./".$name.t" $opt --chain-lint >out 2>err ) @@ -463,7 +463,7 @@ test_expect_success 'We detect broken && chains' " test_expect_success 'tests can be run from an alternate directory' ' # Act as if we have an installation of sharness in current dir: - ln -sf $SHARNESS_TEST_SRCDIR/sharness.sh . && + ln -sf $SHARNESS_SRCDIR/sharness.sh . && export working_path="$(pwd)" && cat >test.t <<-EOF && test_description="test run of script from alternate dir" @@ -478,7 +478,7 @@ test_expect_success 'tests can be run from an alternate directory' ' EOF ( # unset SHARNESS variables before sub-test - unset SHARNESS_TEST_DIRECTORY SHARNESS_TEST_OUTDIR SHARNESS_TEST_SRCDIR && + unset SHARNESS_TEST_DIRECTORY SHARNESS_TEST_OUTDIR SHARNESS_SRCDIR && # unset HARNESS_ACTIVE so we get a test-results dir unset HARNESS_ACTIVE && chmod +x test.t && @@ -502,13 +502,13 @@ test_expect_success BASH 'tests can be run with out-of-tree sharness' ' cd test-outdir && cat >test.t <<-EOF && test_description="test out-of-tree sharness" - . "$SHARNESS_TEST_SRCDIR"/sharness.sh + . "$SHARNESS_SRCDIR"/sharness.sh test_expect_success "success" "true" test_done EOF chmod +x test.t && ( - unset SHARNESS_TEST_DIRECTORY SHARNESS_TEST_OUTDIR SHARNESS_TEST_SRCDIR && + unset SHARNESS_TEST_DIRECTORY SHARNESS_TEST_OUTDIR SHARNESS_SRCDIR && $SHELL_PATH ./test.t >output 2>err ) && cat >expected <<-EOF && @@ -529,7 +529,7 @@ test_expect_success 'tests can be run from another directory' ' cd subdir && cat >test.t <<-EOF && test_description="test from another directory" - . "\$SHARNESS_TEST_SRCDIR"/sharness.sh + . "\$SHARNESS_SRCDIR"/sharness.sh test_expect_success "success" "test \"\$SHARNESS_TEST_DIRECTORY\" = \"$PWD\"" test_done EOF @@ -611,7 +611,7 @@ test_expect_success 'loading sharness extensions works' ' return 0 } EOF - ln -sf $SHARNESS_TEST_SRCDIR/sharness.sh . && + ln -sf $SHARNESS_SRCDIR/sharness.sh . && cat >test-extension.t <<-\EOF && test_description="test sharness extensions" . ./sharness.sh @@ -620,7 +620,7 @@ test_expect_success 'loading sharness extensions works' ' " test_done EOF - unset SHARNESS_TEST_DIRECTORY SHARNESS_TEST_SRCDIR && + unset SHARNESS_TEST_DIRECTORY SHARNESS_SRCDIR && chmod +x ./test-extension.t && $SHELL_PATH ./test-extension.t >out 2>err && cat >expected <<-\EOF && @@ -640,7 +640,7 @@ test_expect_success 'empty sharness.d directory does not cause failure' ' ( cd nil-extensions && mkdir sharness.d && - ln -sf $SHARNESS_TEST_SRCDIR/sharness.sh . && + ln -sf $SHARNESS_SRCDIR/sharness.sh . && cat >test.t <<-\EOF && test_description="sharness works" . ./sharness.sh @@ -649,7 +649,7 @@ test_expect_success 'empty sharness.d directory does not cause failure' ' " test_done EOF - unset SHARNESS_TEST_DIRECTORY SHARNESS_TEST_SRCDIR && + unset SHARNESS_TEST_DIRECTORY SHARNESS_SRCDIR && chmod +x ./test.t && $SHELL_PATH ./test.t >out 2>err && cat >expected <<-\EOF && @@ -673,7 +673,7 @@ test_expect_success 'loading sharness extensions out-of-tree works' ' EOF cat >test-extension.t <<-EOF && test_description="test sharness extensions" - . "\$SHARNESS_TEST_SRCDIR"/sharness.sh + . "\$SHARNESS_SRCDIR"/sharness.sh test_expect_success "extension function is present" " this_is_a_test " @@ -710,7 +710,7 @@ test_expect_success 'loading of library functions works' ' true } EOF - ln -sf $SHARNESS_TEST_SRCDIR/sharness.sh sharness && + ln -sf $SHARNESS_SRCDIR/sharness.sh sharness && cat >test-lib.t <<-\EOF && test_description="test sharness library" . ./sharness/sharness.sh @@ -719,10 +719,10 @@ test_expect_success 'loading of library functions works' ' " test_done EOF - unset SHARNESS_TEST_DIRECTORY SHARNESS_TEST_SRCDIR && + unset SHARNESS_TEST_DIRECTORY SHARNESS_SRCDIR && if test -z "${BASH_VERSION-}" -a -z "${ZSH_VERSION-}"; then - SHARNESS_TEST_SRCDIR=sharness && - export SHARNESS_TEST_SRCDIR + SHARNESS_SRCDIR=sharness && + export SHARNESS_SRCDIR fi && chmod +x ./test-lib.t && $SHELL_PATH ./test-lib.t >out 2>err &&