Re: [PATCH] Several tests: cd inside subshell instead of around
> If we were to insist that no matter how an individual test fail, the test
> that follows it must start in a known location (namely, $TRASH), then we
> might want to use something like the attached patch.
I like it. Affected test scripts:
t0003-attributes.sh t0050-filesystem.sh
t1007-hash-object.sh t1020-subdirectory.sh
t1301-shared-repo.sh t1500-rev-parse.sh
t1501-worktree.sh t1504-ceiling-dirs.sh
t2050-git-dir-relative.sh t2300-cd-to-toplevel.sh
t3407-rebase-abort.sh t4119-apply-config.sh
t5300-pack-object.sh t5404-tracking-branches.sh
t5406-remote-rejects.sh t5510-fetch.sh
t5515-fetch-merge-logic.sh t5520-pull.sh
t5530-upload-pack-error.sh t5600-clone-fail-cleanup.sh
t5700-clone-reference.sh t5701-clone-local.sh
t5710-info-alternate.sh t6029-merge-subtree.sh
t7001-mv.sh t7103-reset-bare.sh
t7400-submodule-basic.sh t7401-submodule-summary.sh
t7408-submodule-reference.sh t7610-mergetool.sh
t9101-git-svn-props.sh t9103-git-svn-tracked-directory-removed.sh
t9113-git-svn-dcommit-new-file.sh
t9115-git-svn-dcommit-funky-renames.sh
t9117-git-svn-init-clone.sh
t9137-git-svn-dcommit-clobber-series.sh
t9400-git-cvsserver-server.sh
and probably some others.
What is the ",$(pwd)" for?
diff --git a/t/test-lib.sh b/t/test-lib.sh
index 29fd720..90ed4d9 100644
--- a/t/test-lib.sh
+++ b/t/test-lib.sh
@@ -370,6 +370,11 @@ test_debug () {
}
test_run_ () {
+ if test ",$(pwd)" != ",$TRASH_DIRECTORY"
+ then
+ error "bug in test script: starting from a different directory"
+ fi
+
test_cleanup=:
eval >&3 2>&4 "$1"
eval_ret=$?
@@ -377,6 +382,11 @@ test_run_ () {
if test "$verbose" = "t" && test -n "$HARNESS_ACTIVE"; then
echo ""
fi
+
+ if test ",$(pwd)" != ",$TRASH_DIRECTORY"
+ then
+ error "bug in test script: moved to a different directory"
+ fi
return 0
}