Skip to content

Commit

Permalink
t3404 (rebase -i): introduce helper to check position of HEAD
Browse files Browse the repository at this point in the history
The same code to check the position of HEAD is used by several
tests in this script.  Factor it out as a function and simplify it.

Noticed using an &&-chaining tester, because the current code
does not propagate the precise exit status from errors.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Jonathan Nieder authored and Junio C Hamano committed Nov 9, 2010
1 parent 99b028e commit 5c947e2
Showing 1 changed file with 9 additions and 15 deletions.
24 changes: 9 additions & 15 deletions t/t3404-rebase-interactive.sh
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,12 @@ Initial setup:

. "$TEST_DIRECTORY"/lib-rebase.sh

test_cmp_rev () {
git describe --always --tags "$1" >expect.rev &&
git describe --always --tags "$2" >actual.rev &&
test_cmp expect.rev actual.rev
}

set_fake_editor

# WARNING: Modifications to the initial repository can change the SHA ID used
Expand Down Expand Up @@ -80,20 +86,12 @@ test_expect_success 'rebase -i with the exec command' '
test_path_is_file touch-one &&
test_path_is_file touch-two &&
test_path_is_missing touch-three " (should have stopped before)" &&
test $(git rev-parse C) = $(git rev-parse HEAD) || {
echo "Stopped at wrong revision:"
echo "($(git describe --tags HEAD) instead of C)"
false
} &&
test_cmp_rev C HEAD &&
git rebase --continue &&
test_path_is_file touch-three &&
test_path_is_file "touch-file name with spaces" &&
test_path_is_file touch-after-semicolon &&
test $(git rev-parse master) = $(git rev-parse HEAD) || {
echo "Stopped at wrong revision:"
echo "($(git describe --tags HEAD) instead of master)"
false
} &&
test_cmp_rev master HEAD &&
rm -f touch-*
'

Expand All @@ -114,11 +112,7 @@ test_expect_success 'rebase -i with the exec command checks tree cleanness' '
export FAKE_LINES &&
test_must_fail git rebase -i HEAD^
) &&
test $(git rev-parse master^) = $(git rev-parse HEAD) || {
echo "Stopped at wrong revision:"
echo "($(git describe --tags HEAD) instead of master^)"
false
} &&
test_cmp_rev master^ HEAD &&
git reset --hard &&
git rebase --continue
'
Expand Down

0 comments on commit 5c947e2

Please sign in to comment.