add basic branch display tests

We were not testing the output of "git branch" anywhere.
Not only does this not protect us against regressions in the
output, but we are not exercising code paths which may have
bugs (such as the one fixed by 45e2b61).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Jeff King 2009-02-18 22:34:44 -05:00 коммит произвёл Junio C Hamano
Родитель 66648ad7fe
Коммит 0afc304406
1 изменённых файлов: 81 добавлений и 0 удалений

81
t/t3203-branch-output.sh Executable file
Просмотреть файл

@ -0,0 +1,81 @@
#!/bin/sh
test_description='git branch display tests'
. ./test-lib.sh
test_expect_success 'make commits' '
echo content >file &&
git add file &&
git commit -m one &&
echo content >>file &&
git commit -a -m two
'
test_expect_success 'make branches' '
git branch branch-one
git branch branch-two HEAD^
'
test_expect_success 'make remote branches' '
git update-ref refs/remotes/origin/branch-one branch-one
git update-ref refs/remotes/origin/branch-two branch-two
git symbolic-ref refs/remotes/origin/HEAD refs/remotes/origin/branch-one
'
cat >expect <<'EOF'
branch-one
branch-two
* master
EOF
test_expect_success 'git branch shows local branches' '
git branch >actual &&
test_cmp expect actual
'
cat >expect <<'EOF'
origin/HEAD -> origin/branch-one
origin/branch-one
origin/branch-two
EOF
test_expect_success 'git branch -r shows remote branches' '
git branch -r >actual &&
test_cmp expect actual
'
cat >expect <<'EOF'
branch-one
branch-two
* master
remotes/origin/HEAD -> origin/branch-one
remotes/origin/branch-one
remotes/origin/branch-two
EOF
test_expect_success 'git branch -a shows local and remote branches' '
git branch -a >actual &&
test_cmp expect actual
'
cat >expect <<'EOF'
two
one
two
EOF
test_expect_success 'git branch -v shows branch summaries' '
git branch -v >tmp &&
awk "{print \$NF}" <tmp >actual &&
test_cmp expect actual
'
cat >expect <<'EOF'
* (no branch)
branch-one
branch-two
master
EOF
test_expect_success 'git branch shows detached HEAD properly' '
git checkout HEAD^0 &&
git branch >actual &&
test_cmp expect actual
'
test_done