diff options
author | Brandon Casey <drafnel@gmail.com> | 2010-09-24 15:40:38 -0500 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2010-09-26 21:25:40 -0700 |
commit | 3fcb88785da831ad7d53cf18b4398099179c9c87 (patch) | |
tree | 85084a60bccb43d8c3b875e2981bc55867bc88f9 | |
parent | 87b50542a08ac6caa083ddc376e674424e37940a (diff) | |
download | git-3fcb88785da831ad7d53cf18b4398099179c9c87.tar.gz |
t/t3903-stash: improve testing of git-stash show
Recently, the 'stash show' functionality was broken for the case when a
stash-like argument was supplied. Since, commit 9bf09e, 'stash show' when
supplied a stash-like argument prints nothing and still exists with a zero
status. Unfortunately, the flaw slipped through the test suite cracks
since the output of 'stash show' was not verified to be correct.
Improve and expand on the existing tests so that this flaws is detected.
Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rwxr-xr-x | t/t3903-stash.sh | 62 |
1 files changed, 58 insertions, 4 deletions
diff --git a/t/t3903-stash.sh b/t/t3903-stash.sh index a283dca25f..e8a7338862 100755 --- a/t/t3903-stash.sh +++ b/t/t3903-stash.sh @@ -406,7 +406,7 @@ test_expect_success 'stash branch - stashes on stack, stash-like argument' ' test $(git ls-files --modified | wc -l) -eq 1 ' -test_expect_success 'stash show - stashes on stack, stash-like argument' ' +test_expect_failure 'stash show - stashes on stack, stash-like argument' ' git stash clear && test_when_finished "git reset --hard HEAD" && git reset --hard && @@ -416,16 +416,70 @@ test_expect_success 'stash show - stashes on stack, stash-like argument' ' echo bar >> file && STASH_ID=$(git stash create) && git reset --hard && - git stash show ${STASH_ID} + cat >expected <<-EOF && + file | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + EOF + git stash show ${STASH_ID} >actual && + test_cmp expected actual ' -test_expect_success 'stash show - no stashes on stack, stash-like argument' ' + +test_expect_failure 'stash show -p - stashes on stack, stash-like argument' ' + git stash clear && + test_when_finished "git reset --hard HEAD" && + git reset --hard && + echo foo >> file && + git stash && + test_when_finished "git stash drop" && + echo bar >> file && + STASH_ID=$(git stash create) && + git reset --hard && + cat >expected <<-EOF && + diff --git a/file b/file + index 7601807..935fbd3 100644 + --- a/file + +++ b/file + @@ -1 +1,2 @@ + baz + +bar + EOF + git stash show -p ${STASH_ID} >actual && + test_cmp expected actual +' + +test_expect_failure 'stash show - no stashes on stack, stash-like argument' ' + git stash clear && + test_when_finished "git reset --hard HEAD" && + git reset --hard && + echo foo >> file && + STASH_ID=$(git stash create) && + git reset --hard && + cat >expected <<-EOF && + file | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + EOF + git stash show ${STASH_ID} >actual && + test_cmp expected actual +' + +test_expect_failure 'stash show -p - no stashes on stack, stash-like argument' ' git stash clear && test_when_finished "git reset --hard HEAD" && git reset --hard && echo foo >> file && STASH_ID=$(git stash create) && git reset --hard && - git stash show ${STASH_ID} + cat >expected <<-EOF && + diff --git a/file b/file + index 7601807..71b52c4 100644 + --- a/file + +++ b/file + @@ -1 +1,2 @@ + baz + +foo + EOF + git stash show -p ${STASH_ID} >actual && + test_cmp expected actual ' test_expect_success 'stash drop - fail early if specified stash is not a stash reference' ' |