tests: don't lose exit status with "test <op> $(git ...)"
As with the preceding commit, rewrite tests that ran "git" inside command substitution and lost the exit status of "git" so that we notice the failing "git". This time around we're converting cases that didn't involve a containing sub-shell around the command substitution. In the case of "t0060-path-utils.sh" and "t2005-checkout-index-symlinks.sh" convert the relevant code to using the modern style of indentation and newline wrapping while having to change it. Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
c7e03b4e39
commit
4bd0785dc2
@ -185,7 +185,9 @@ test_git_directory_exists () {
|
|||||||
if test -f sub1/.git
|
if test -f sub1/.git
|
||||||
then
|
then
|
||||||
# does core.worktree point at the right place?
|
# does core.worktree point at the right place?
|
||||||
test "$(git -C .git/modules/$1 config core.worktree)" = "../../../$1"
|
echo "../../../$1" >expect &&
|
||||||
|
git -C ".git/modules/$1" config core.worktree >actual &&
|
||||||
|
test_cmp expect actual
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -598,9 +598,14 @@ test_expect_success 'invalid default branch name' '
|
|||||||
test_expect_success 'branch -m with the initial branch' '
|
test_expect_success 'branch -m with the initial branch' '
|
||||||
git init rename-initial &&
|
git init rename-initial &&
|
||||||
git -C rename-initial branch -m renamed &&
|
git -C rename-initial branch -m renamed &&
|
||||||
test renamed = $(git -C rename-initial symbolic-ref --short HEAD) &&
|
echo renamed >expect &&
|
||||||
|
git -C rename-initial symbolic-ref --short HEAD >actual &&
|
||||||
|
test_cmp expect actual &&
|
||||||
|
|
||||||
git -C rename-initial branch -m renamed again &&
|
git -C rename-initial branch -m renamed again &&
|
||||||
test again = $(git -C rename-initial symbolic-ref --short HEAD)
|
echo again >expect &&
|
||||||
|
git -C rename-initial symbolic-ref --short HEAD >actual &&
|
||||||
|
test_cmp expect actual
|
||||||
'
|
'
|
||||||
|
|
||||||
test_done
|
test_done
|
||||||
|
@ -33,7 +33,9 @@ test_expect_success 'bad setup: invalid .git file path' '
|
|||||||
|
|
||||||
test_expect_success 'final setup + check rev-parse --git-dir' '
|
test_expect_success 'final setup + check rev-parse --git-dir' '
|
||||||
echo "gitdir: $REAL" >.git &&
|
echo "gitdir: $REAL" >.git &&
|
||||||
test "$REAL" = "$(git rev-parse --git-dir)"
|
echo "$REAL" >expect &&
|
||||||
|
git rev-parse --git-dir >actual &&
|
||||||
|
test_cmp expect actual
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'check hash-object' '
|
test_expect_success 'check hash-object' '
|
||||||
|
@ -10,20 +10,27 @@ TEST_PASSES_SANITIZE_LEAK=true
|
|||||||
|
|
||||||
norm_path() {
|
norm_path() {
|
||||||
expected=$(test-tool path-utils print_path "$2")
|
expected=$(test-tool path-utils print_path "$2")
|
||||||
test_expect_success $3 "normalize path: $1 => $2" \
|
test_expect_success $3 "normalize path: $1 => $2" "
|
||||||
"test \"\$(test-tool path-utils normalize_path_copy '$1')\" = '$expected'"
|
echo '$expected' >expect &&
|
||||||
|
test-tool path-utils normalize_path_copy '$1' >actual &&
|
||||||
|
test_cmp expect actual
|
||||||
|
"
|
||||||
}
|
}
|
||||||
|
|
||||||
relative_path() {
|
relative_path() {
|
||||||
expected=$(test-tool path-utils print_path "$3")
|
expected=$(test-tool path-utils print_path "$3")
|
||||||
test_expect_success $4 "relative path: $1 $2 => $3" \
|
test_expect_success $4 "relative path: $1 $2 => $3" "
|
||||||
"test \"\$(test-tool path-utils relative_path '$1' '$2')\" = '$expected'"
|
echo '$expected' >expect &&
|
||||||
|
test-tool path-utils relative_path '$1' '$2' >actual &&
|
||||||
|
test_cmp expect actual
|
||||||
|
"
|
||||||
}
|
}
|
||||||
|
|
||||||
test_submodule_relative_url() {
|
test_submodule_relative_url() {
|
||||||
test_expect_success "test_submodule_relative_url: $1 $2 $3 => $4" "
|
test_expect_success "test_submodule_relative_url: $1 $2 $3 => $4" "
|
||||||
actual=\$(test-tool submodule resolve-relative-url '$1' '$2' '$3') &&
|
echo '$4' >expect &&
|
||||||
test \"\$actual\" = '$4'
|
test-tool submodule resolve-relative-url '$1' '$2' '$3' >actual &&
|
||||||
|
test_cmp expect actual
|
||||||
"
|
"
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -64,9 +71,11 @@ ancestor() {
|
|||||||
expected=$(($expected-$rootslash+$rootoff))
|
expected=$(($expected-$rootslash+$rootoff))
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
test_expect_success $4 "longest ancestor: $1 $2 => $expected" \
|
test_expect_success $4 "longest ancestor: $1 $2 => $expected" "
|
||||||
"actual=\$(test-tool path-utils longest_ancestor_length '$1' '$2') &&
|
echo '$expected' >expect &&
|
||||||
test \"\$actual\" = '$expected'"
|
test-tool path-utils longest_ancestor_length '$1' '$2' >actual &&
|
||||||
|
test_cmp expect actual
|
||||||
|
"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Some absolute path tests should be skipped on Windows due to path mangling
|
# Some absolute path tests should be skipped on Windows due to path mangling
|
||||||
@ -166,8 +175,10 @@ ancestor D:/Users/me C:/ -1 MINGW
|
|||||||
ancestor //server/share/my-directory //server/share/ 14 MINGW
|
ancestor //server/share/my-directory //server/share/ 14 MINGW
|
||||||
|
|
||||||
test_expect_success 'strip_path_suffix' '
|
test_expect_success 'strip_path_suffix' '
|
||||||
test c:/msysgit = $(test-tool path-utils strip_path_suffix \
|
echo c:/msysgit >expect &&
|
||||||
c:/msysgit/libexec//git-core libexec/git-core)
|
test-tool path-utils strip_path_suffix \
|
||||||
|
c:/msysgit/libexec//git-core libexec/git-core >actual &&
|
||||||
|
test_cmp expect actual
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'absolute path rejects the empty string' '
|
test_expect_success 'absolute path rejects the empty string' '
|
||||||
@ -188,35 +199,61 @@ test_expect_success 'real path rejects the empty string' '
|
|||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success POSIX 'real path works on absolute paths 1' '
|
test_expect_success POSIX 'real path works on absolute paths 1' '
|
||||||
|
echo / >expect &&
|
||||||
|
test-tool path-utils real_path "/" >actual &&
|
||||||
|
test_cmp expect actual &&
|
||||||
|
|
||||||
nopath="hopefully-absent-path" &&
|
nopath="hopefully-absent-path" &&
|
||||||
test "/" = "$(test-tool path-utils real_path "/")" &&
|
echo "/$nopath" >expect &&
|
||||||
test "/$nopath" = "$(test-tool path-utils real_path "/$nopath")"
|
test-tool path-utils real_path "/$nopath" >actual &&
|
||||||
|
test_cmp expect actual
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'real path works on absolute paths 2' '
|
test_expect_success 'real path works on absolute paths 2' '
|
||||||
nopath="hopefully-absent-path" &&
|
|
||||||
# Find an existing top-level directory for the remaining tests:
|
# Find an existing top-level directory for the remaining tests:
|
||||||
d=$(pwd -P | sed -e "s|^\([^/]*/[^/]*\)/.*|\1|") &&
|
d=$(pwd -P | sed -e "s|^\([^/]*/[^/]*\)/.*|\1|") &&
|
||||||
test "$d" = "$(test-tool path-utils real_path "$d")" &&
|
echo "$d" >expect &&
|
||||||
test "$d/$nopath" = "$(test-tool path-utils real_path "$d/$nopath")"
|
test-tool path-utils real_path "$d" >actual &&
|
||||||
|
test_cmp expect actual &&
|
||||||
|
|
||||||
|
nopath="hopefully-absent-path" &&
|
||||||
|
echo "$d/$nopath" >expect &&
|
||||||
|
test-tool path-utils real_path "$d/$nopath" >actual &&
|
||||||
|
test_cmp expect actual
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success POSIX 'real path removes extra leading slashes' '
|
test_expect_success POSIX 'real path removes extra leading slashes' '
|
||||||
|
echo "/" >expect &&
|
||||||
|
test-tool path-utils real_path "///" >actual &&
|
||||||
|
test_cmp expect actual &&
|
||||||
|
|
||||||
nopath="hopefully-absent-path" &&
|
nopath="hopefully-absent-path" &&
|
||||||
test "/" = "$(test-tool path-utils real_path "///")" &&
|
echo "/$nopath" >expect &&
|
||||||
test "/$nopath" = "$(test-tool path-utils real_path "///$nopath")" &&
|
test-tool path-utils real_path "///$nopath" >actual &&
|
||||||
|
test_cmp expect actual &&
|
||||||
|
|
||||||
# Find an existing top-level directory for the remaining tests:
|
# Find an existing top-level directory for the remaining tests:
|
||||||
d=$(pwd -P | sed -e "s|^\([^/]*/[^/]*\)/.*|\1|") &&
|
d=$(pwd -P | sed -e "s|^\([^/]*/[^/]*\)/.*|\1|") &&
|
||||||
test "$d" = "$(test-tool path-utils real_path "//$d")" &&
|
echo "$d" >expect &&
|
||||||
test "$d/$nopath" = "$(test-tool path-utils real_path "//$d/$nopath")"
|
test-tool path-utils real_path "//$d" >actual &&
|
||||||
|
test_cmp expect actual &&
|
||||||
|
|
||||||
|
echo "$d/$nopath" >expect &&
|
||||||
|
test-tool path-utils real_path "//$d/$nopath" >actual &&
|
||||||
|
test_cmp expect actual
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'real path removes other extra slashes' '
|
test_expect_success 'real path removes other extra slashes' '
|
||||||
nopath="hopefully-absent-path" &&
|
|
||||||
# Find an existing top-level directory for the remaining tests:
|
# Find an existing top-level directory for the remaining tests:
|
||||||
d=$(pwd -P | sed -e "s|^\([^/]*/[^/]*\)/.*|\1|") &&
|
d=$(pwd -P | sed -e "s|^\([^/]*/[^/]*\)/.*|\1|") &&
|
||||||
test "$d" = "$(test-tool path-utils real_path "$d///")" &&
|
echo "$d" >expect &&
|
||||||
test "$d/$nopath" = "$(test-tool path-utils real_path "$d///$nopath")"
|
test-tool path-utils real_path "$d///" >actual &&
|
||||||
|
test_cmp expect actual &&
|
||||||
|
|
||||||
|
nopath="hopefully-absent-path" &&
|
||||||
|
echo "$d/$nopath" >expect &&
|
||||||
|
test-tool path-utils real_path "$d///$nopath" >actual &&
|
||||||
|
test_cmp expect actual
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success SYMLINKS 'real path works on symlinks' '
|
test_expect_success SYMLINKS 'real path works on symlinks' '
|
||||||
@ -227,19 +264,29 @@ test_expect_success SYMLINKS 'real path works on symlinks' '
|
|||||||
mkdir third &&
|
mkdir third &&
|
||||||
dir="$(cd .git && pwd -P)" &&
|
dir="$(cd .git && pwd -P)" &&
|
||||||
dir2=third/../second/other/.git &&
|
dir2=third/../second/other/.git &&
|
||||||
test "$dir" = "$(test-tool path-utils real_path $dir2)" &&
|
echo "$dir" >expect &&
|
||||||
|
test-tool path-utils real_path $dir2 >actual &&
|
||||||
|
test_cmp expect actual &&
|
||||||
file="$dir"/index &&
|
file="$dir"/index &&
|
||||||
test "$file" = "$(test-tool path-utils real_path $dir2/index)" &&
|
echo "$file" >expect &&
|
||||||
|
test-tool path-utils real_path $dir2/index >actual &&
|
||||||
|
test_cmp expect actual &&
|
||||||
basename=blub &&
|
basename=blub &&
|
||||||
test "$dir/$basename" = "$(cd .git && test-tool path-utils real_path "$basename")" &&
|
echo "$dir/$basename" >expect &&
|
||||||
|
test-tool -C .git path-utils real_path "$basename" >actual &&
|
||||||
|
test_cmp expect actual &&
|
||||||
ln -s ../first/file .git/syml &&
|
ln -s ../first/file .git/syml &&
|
||||||
sym="$(cd first && pwd -P)"/file &&
|
sym="$(cd first && pwd -P)"/file &&
|
||||||
test "$sym" = "$(test-tool path-utils real_path "$dir2/syml")"
|
echo "$sym" >expect &&
|
||||||
|
test-tool path-utils real_path "$dir2/syml" >actual &&
|
||||||
|
test_cmp expect actual
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success SYMLINKS 'prefix_path works with absolute paths to work tree symlinks' '
|
test_expect_success SYMLINKS 'prefix_path works with absolute paths to work tree symlinks' '
|
||||||
ln -s target symlink &&
|
ln -s target symlink &&
|
||||||
test "$(test-tool path-utils prefix_path prefix "$(pwd)/symlink")" = "symlink"
|
echo "symlink" >expect &&
|
||||||
|
test-tool path-utils prefix_path prefix "$(pwd)/symlink" >actual &&
|
||||||
|
test_cmp expect actual
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'prefix_path works with only absolute path to work tree' '
|
test_expect_success 'prefix_path works with only absolute path to work tree' '
|
||||||
|
@ -12,7 +12,9 @@ test_expect_success 'branch -d @{-1}' '
|
|||||||
test_commit A &&
|
test_commit A &&
|
||||||
git checkout -b junk &&
|
git checkout -b junk &&
|
||||||
git checkout - &&
|
git checkout - &&
|
||||||
test "$(git symbolic-ref HEAD)" = refs/heads/main &&
|
echo refs/heads/main >expect &&
|
||||||
|
git symbolic-ref HEAD >actual &&
|
||||||
|
test_cmp expect actual &&
|
||||||
git branch -d @{-1} &&
|
git branch -d @{-1} &&
|
||||||
test_must_fail git rev-parse --verify refs/heads/junk
|
test_must_fail git rev-parse --verify refs/heads/junk
|
||||||
'
|
'
|
||||||
@ -21,7 +23,9 @@ test_expect_success 'branch -d @{-12} when there is not enough switches yet' '
|
|||||||
git reflog expire --expire=now &&
|
git reflog expire --expire=now &&
|
||||||
git checkout -b junk2 &&
|
git checkout -b junk2 &&
|
||||||
git checkout - &&
|
git checkout - &&
|
||||||
test "$(git symbolic-ref HEAD)" = refs/heads/main &&
|
echo refs/heads/main >expect &&
|
||||||
|
git symbolic-ref HEAD >actual &&
|
||||||
|
test_cmp expect actual &&
|
||||||
test_must_fail git branch -d @{-12} &&
|
test_must_fail git branch -d @{-12} &&
|
||||||
git rev-parse --verify refs/heads/main
|
git rev-parse --verify refs/heads/main
|
||||||
'
|
'
|
||||||
|
@ -6,8 +6,12 @@ TEST_PASSES_SANITIZE_LEAK=true
|
|||||||
. ./test-lib.sh
|
. ./test-lib.sh
|
||||||
|
|
||||||
test_prefix() {
|
test_prefix() {
|
||||||
test_expect_success "$1" \
|
local expect="$2" &&
|
||||||
"test '$2' = \"\$(git rev-parse --show-prefix)\""
|
test_expect_success "$1: git rev-parse --show-prefix is '$2'" '
|
||||||
|
echo "$expect" >expect &&
|
||||||
|
git rev-parse --show-prefix >actual &&
|
||||||
|
test_cmp expect actual
|
||||||
|
'
|
||||||
}
|
}
|
||||||
|
|
||||||
test_fail() {
|
test_fail() {
|
||||||
|
@ -22,8 +22,10 @@ test_expect_success \
|
|||||||
git checkout-index symlink &&
|
git checkout-index symlink &&
|
||||||
test -f symlink'
|
test -f symlink'
|
||||||
|
|
||||||
test_expect_success \
|
test_expect_success 'the file must be the blob we added during the setup' '
|
||||||
'the file must be the blob we added during the setup' '
|
echo "$l" >expect &&
|
||||||
test "$(git hash-object -t blob symlink)" = $l'
|
git hash-object -t blob symlink >actual &&
|
||||||
|
test_cmp expect actual
|
||||||
|
'
|
||||||
|
|
||||||
test_done
|
test_done
|
||||||
|
@ -78,7 +78,9 @@ test_expect_success SYMLINKS 'pushing from symlinked subdir' '
|
|||||||
git commit -m push ./file &&
|
git commit -m push ./file &&
|
||||||
git push
|
git push
|
||||||
) &&
|
) &&
|
||||||
test push = $(git show HEAD:subdir/file)
|
echo push >expect &&
|
||||||
|
git show HEAD:subdir/file >actual &&
|
||||||
|
test_cmp expect actual
|
||||||
'
|
'
|
||||||
|
|
||||||
test_done
|
test_done
|
||||||
|
@ -55,12 +55,15 @@ chmod a+x fake-editor.sh
|
|||||||
|
|
||||||
test_expect_success 'interactive rebase with a dirty submodule' '
|
test_expect_success 'interactive rebase with a dirty submodule' '
|
||||||
|
|
||||||
test submodule = $(git diff --name-only) &&
|
echo submodule >expect &&
|
||||||
|
git diff --name-only >actual &&
|
||||||
|
test_cmp expect actual &&
|
||||||
HEAD=$(git rev-parse HEAD) &&
|
HEAD=$(git rev-parse HEAD) &&
|
||||||
GIT_EDITOR="\"$(pwd)/fake-editor.sh\"" EDITOR_TEXT="pick $HEAD" \
|
GIT_EDITOR="\"$(pwd)/fake-editor.sh\"" EDITOR_TEXT="pick $HEAD" \
|
||||||
git rebase -i HEAD^ &&
|
git rebase -i HEAD^ &&
|
||||||
test submodule = $(git diff --name-only)
|
echo submodule >expect &&
|
||||||
|
git diff --name-only >actual &&
|
||||||
|
test_cmp expect actual
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'rebase with dirty file and submodule fails' '
|
test_expect_success 'rebase with dirty file and submodule fails' '
|
||||||
|
@ -101,7 +101,9 @@ test_expect_success 'setup: commit-msg hook that always fails' '
|
|||||||
'
|
'
|
||||||
|
|
||||||
commit_msg_is () {
|
commit_msg_is () {
|
||||||
test "$(git log --pretty=format:%s%b -1)" = "$1"
|
printf "%s" "$1" >expect &&
|
||||||
|
git log --pretty=format:%s%b -1 >actual &&
|
||||||
|
test_cmp expect actual
|
||||||
}
|
}
|
||||||
|
|
||||||
test_expect_success 'with failing hook' '
|
test_expect_success 'with failing hook' '
|
||||||
|
@ -1001,7 +1001,9 @@ test_expect_success 'log --committer does not search in timestamp' '
|
|||||||
test_expect_success 'grep with CE_VALID file' '
|
test_expect_success 'grep with CE_VALID file' '
|
||||||
git update-index --assume-unchanged t/t &&
|
git update-index --assume-unchanged t/t &&
|
||||||
rm t/t &&
|
rm t/t &&
|
||||||
test "$(git grep test)" = "t/t:test" &&
|
echo "t/t:test" >expect &&
|
||||||
|
git grep test >actual &&
|
||||||
|
test_cmp expect actual &&
|
||||||
git update-index --no-assume-unchanged t/t &&
|
git update-index --no-assume-unchanged t/t &&
|
||||||
git checkout t/t
|
git checkout t/t
|
||||||
'
|
'
|
||||||
|
Loading…
Reference in New Issue
Block a user