tests: at-combinations: check ref names directly
authorFelipe Contreras <felipe.contreras@gmail.com>
Tue, 7 May 2013 21:55:02 +0000 (16:55 -0500)
committerJunio C Hamano <gitster@pobox.com>
Wed, 8 May 2013 16:15:37 +0000 (09:15 -0700)
Some committishes might point to the same commit, but through a
different ref, that's why it's better to check directly for the ref,
rather than the commit message.

We can do that by calling rev-parse --symbolic-full-name, and to
differentiate the old from the new behavior we add an extra argument to
the check() helper.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t1508-at-combinations.sh
index 46e3f166a6cf86fee96f90342cc85b864715488e..112612567284413b527829cf000734c7eeaf4e7a 100755 (executable)
@@ -4,17 +4,24 @@ test_description='test various @{X} syntax combinations together'
 . ./test-lib.sh
 
 check() {
-test_expect_${3:-success} "$1 = $2" "
-       echo '$2' >expect &&
-       git log -1 --format=%s '$1' >actual &&
-       test_cmp expect actual
-"
+       test_expect_${4:-success} "$1 = $3" "
+               echo '$3' >expect &&
+               if test '$2' = 'commit'
+               then
+                       git log -1 --format=%s '$1' >actual
+               else
+                       git rev-parse --symbolic-full-name '$1' >actual
+               fi &&
+               test_cmp expect actual
+       "
 }
+
 nonsense() {
-test_expect_${2:-success} "$1 is nonsensical" "
-       test_must_fail git log -1 '$1'
-"
+       test_expect_${2:-success} "$1 is nonsensical" "
+               test_must_fail git log -1 '$1'
+       "
 }
+
 fail() {
        "$@" failure
 }
@@ -35,14 +42,14 @@ test_expect_success 'setup' '
        git branch -u upstream-branch new-branch
 '
 
-check HEAD new-two
-check "@{1}" new-one
-check "@{-1}" old-two
-check "@{-1}@{1}" old-one
-check "@{u}" upstream-two
-check "@{u}@{1}" upstream-one
-check "@{-1}@{u}" master-two
-check "@{-1}@{u}@{1}" master-one
+check HEAD ref refs/heads/new-branch
+check "@{1}" commit new-one
+check "@{-1}" ref refs/heads/old-branch
+check "@{-1}@{1}" commit old-one
+check "@{u}" ref refs/heads/upstream-branch
+check "@{u}@{1}" commit upstream-one
+check "@{-1}@{u}" ref refs/heads/master
+check "@{-1}@{u}@{1}" commit master-one
 nonsense "@{u}@{-1}"
 nonsense "@{1}@{u}"