Re: [PATCH v3 8/8] update-ref: add test cases covering --stdin signature
From: Eric Sunshine <hidden>
Date: 2016-06-15 22:58:36
On Mon, Sep 2, 2013 at 1:48 PM, Brad King [off-list ref] wrote:
quoted hunk ↗ jump to hunk
Extend t/t1400-update-ref.sh to cover cases using the --stdin option. Signed-off-by: Brad King <redacted> --- t/t1400-update-ref.sh | 256 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 256 insertions(+)diff --git a/t/t1400-update-ref.sh b/t/t1400-update-ref.sh index e415ee0..b6d7dfa 100755 --- a/t/t1400-update-ref.sh +++ b/t/t1400-update-ref.sh@@ -302,4 +302,260 @@ test_expect_success \ 'git cat-file blob master@{2005-05-26 23:42}:F (expect OTHER)' \ 'test OTHER = $(git cat-file blob "master@{2005-05-26 23:42}:F")' +a=refs/heads/a +b=refs/heads/b +c=refs/heads/c +z=0000000000000000000000000000000000000000 +e='""' +pws='path with space' + +test_expect_success 'stdin fails on bad input line with only whitespace' ' + echo " " >stdin && + test_must_fail git update-ref --stdin <stdin 2>err && + grep "fatal: no ref on line: " err +' + +test_expect_success 'stdin fails on bad input line with only --' ' + echo "--" >stdin && + test_must_fail git update-ref --stdin <stdin 2>err && + grep "fatal: no ref on line: --" err +' + +test_expect_success 'stdin fails on bad input line with only --bad-option' ' + echo "--bad-option" >stdin && + test_must_fail git update-ref --stdin <stdin 2>err && + grep "fatal: unknown option --bad-option" err +'
When you decomposed the monolithic test from v1 into individual tests,
you dropped a couple cases ("fatal: unknown option'" and "fatal:
unterminated single-quote"). Was this intentional?
+test_expect_success 'stdin fails with duplicate refs' ' + cat >stdin <<-EOF && +$a $m +$b $m +$a $m +EOF + test_must_fail git update-ref --stdin <stdin 2>err && + grep "fatal: Multiple updates for ref '"'"'$a'"'"' not allowed." err +'
The leading '-' on '-EOF' allows you to indent the content of the
heredoc and the terminating EOF, which makes the test read nicely:
test_expect_success 'stdin fails with duplicate refs' '
cat >stdin <<-EOF &&
$a $m
$b $m
$a $m
EOF
test_must_fail git update-ref ...
'
+ +test_expect_success 'stdin create ref works with no old value' ' + echo "$a $m" >stdin && + git update-ref --stdin <stdin && + git rev-parse $m >expect && + git rev-parse $a >actual && + test_cmp expect actual +'