Merge branch 'nd/pack-objects-pack-struct'
[gitweb.git] / t / t7064-wtstatus-pv2.sh
index e319fa2e8470791340a479989a81d934b79405da..8f795327a00f6c1b751b82e7e395c8387543d388 100755 (executable)
@@ -390,6 +390,68 @@ test_expect_success 'verify upstream fields in branch header' '
        )
 '
 
+test_expect_success 'verify --[no-]ahead-behind with V2 format' '
+       git checkout master &&
+       test_when_finished "rm -rf sub_repo" &&
+       git clone . sub_repo &&
+       (
+               ## Confirm local master tracks remote master.
+               cd sub_repo &&
+               HUF=$(git rev-parse HEAD) &&
+
+               # Confirm --no-ahead-behind reports traditional branch.ab with 0/0 for equal branches.
+               cat >expect <<-EOF &&
+               # branch.oid $HUF
+               # branch.head master
+               # branch.upstream origin/master
+               # branch.ab +0 -0
+               EOF
+
+               git status --no-ahead-behind --porcelain=v2 --branch --untracked-files=all >actual &&
+               test_cmp expect actual &&
+
+               # Confirm --ahead-behind reports traditional branch.ab with 0/0.
+               cat >expect <<-EOF &&
+               # branch.oid $HUF
+               # branch.head master
+               # branch.upstream origin/master
+               # branch.ab +0 -0
+               EOF
+
+               git status --ahead-behind --porcelain=v2 --branch --untracked-files=all >actual &&
+               test_cmp expect actual &&
+
+               ## Test non-equal ahead/behind.
+               echo xyz >file_xyz &&
+               git add file_xyz &&
+               git commit -m xyz &&
+
+               HUF=$(git rev-parse HEAD) &&
+
+               # Confirm --no-ahead-behind reports branch.ab with ?/? for non-equal branches.
+               cat >expect <<-EOF &&
+               # branch.oid $HUF
+               # branch.head master
+               # branch.upstream origin/master
+               # branch.ab +? -?
+               EOF
+
+               git status --no-ahead-behind --porcelain=v2 --branch --untracked-files=all >actual &&
+               test_cmp expect actual &&
+
+               # Confirm --ahead-behind reports traditional branch.ab with 1/0.
+               cat >expect <<-EOF &&
+               # branch.oid $HUF
+               # branch.head master
+               # branch.upstream origin/master
+               # branch.ab +1 -0
+               EOF
+
+               git status --ahead-behind --porcelain=v2 --branch --untracked-files=all >actual &&
+               test_cmp expect actual
+       )
+'
+
 test_expect_success 'create and add submodule, submodule appears clean (A. S...)' '
        git checkout master &&
        git clone . sub_repo &&