Skip to content

Commit

Permalink
Rename SHARNESS_SRCDIR
Browse files Browse the repository at this point in the history
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 <[email protected]>
  • Loading branch information
felipec committed Mar 8, 2025
1 parent 9940654 commit bb741a6
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 27 deletions.
6 changes: 3 additions & 3 deletions API.md
Original file line number Diff line number Diff line change
Expand Up @@ -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`
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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].
Expand Down
15 changes: 8 additions & 7 deletions sharness.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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.
Expand Down Expand Up @@ -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
Expand Down
32 changes: 16 additions & 16 deletions t/sharness.t
Original file line number Diff line number Diff line change
Expand Up @@ -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
)
Expand Down Expand Up @@ -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"
Expand All @@ -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 &&
Expand All @@ -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 &&
Expand All @@ -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
Expand Down Expand Up @@ -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
Expand All @@ -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 &&
Expand All @@ -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
Expand All @@ -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 &&
Expand All @@ -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
"
Expand Down Expand Up @@ -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
Expand All @@ -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 &&
Expand Down

0 comments on commit bb741a6

Please sign in to comment.