list-objects: pass full pathname to callbacks
[gitweb.git] / t / t3203-branch-output.sh
index 809d1c4ed49f06d06ba50cda6f52fe9201d2d625..f51d0f3cadcb4f97f4cf9f2d79aad9ed401781d8 100755 (executable)
@@ -12,13 +12,13 @@ test_expect_success 'make commits' '
 '
 
 test_expect_success 'make branches' '
-       git branch branch-one
+       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 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
 '
 
@@ -32,6 +32,20 @@ test_expect_success 'git branch shows local branches' '
        test_cmp expect actual
 '
 
+test_expect_success 'git branch --list shows local branches' '
+       git branch --list >actual &&
+       test_cmp expect actual
+'
+
+cat >expect <<'EOF'
+  branch-one
+  branch-two
+EOF
+test_expect_success 'git branch --list pattern shows matching local branches' '
+       git branch --list branch* >actual &&
+       test_cmp expect actual
+'
+
 cat >expect <<'EOF'
   origin/HEAD -> origin/branch-one
   origin/branch-one
@@ -67,15 +81,66 @@ test_expect_success 'git branch -v shows branch summaries' '
 '
 
 cat >expect <<'EOF'
-* (no branch)
+two
+one
+EOF
+test_expect_success 'git branch --list -v pattern shows branch summaries' '
+       git branch --list -v branch* >tmp &&
+       awk "{print \$NF}" <tmp >actual &&
+       test_cmp expect actual
+'
+
+test_expect_success 'git branch -v pattern does not show branch summaries' '
+       test_must_fail git branch -v branch*
+'
+
+test_expect_success 'git branch shows detached HEAD properly' '
+       cat >expect <<EOF &&
+* (HEAD detached at $(git rev-parse --short HEAD^0))
   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_i18ncmp expect actual
+'
+
+test_expect_success 'git branch shows detached HEAD properly after moving' '
+       cat >expect <<EOF &&
+* (HEAD detached from $(git rev-parse --short HEAD))
+  branch-one
+  branch-two
+  master
+EOF
+       git reset --hard HEAD^1 &&
+       git branch >actual &&
+       test_i18ncmp expect actual
+'
+
+test_expect_success 'git branch shows detached HEAD properly from tag' '
+       cat >expect <<EOF &&
+* (HEAD detached at fromtag)
+  branch-one
+  branch-two
+  master
+EOF
+       git tag fromtag master &&
+       git checkout fromtag &&
+       git branch >actual &&
+       test_i18ncmp expect actual
+'
+
+test_expect_success 'git branch shows detached HEAD properly after moving from tag' '
+       cat >expect <<EOF &&
+* (HEAD detached from fromtag)
+  branch-one
+  branch-two
+  master
+EOF
+       git reset --hard HEAD^1 &&
+       git branch >actual &&
+       test_i18ncmp expect actual
 '
 
 test_done