t6111: allow checking the parents as well
authorJunio C Hamano <gitster@pobox.com>
Thu, 16 May 2013 15:32:30 +0000 (18:32 +0300)
committerJunio C Hamano <gitster@pobox.com>
Thu, 16 May 2013 18:51:08 +0000 (11:51 -0700)
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t6111-rev-list-treesame.sh
index b2bca771cc6cda9fa6fca00214302f5167451f8e..1e4a5500254c027cbea16814355c815977912348 100755 (executable)
@@ -20,7 +20,7 @@ note () {
 }
 
 unnote () {
-       git name-rev --tags --stdin | sed -e "s|$_x40 (tags/\([^)]*\)) |\1 |g"
+       git name-rev --tags --stdin | sed -e "s|$_x40 (tags/\([^)]*\))\([       ]\)|\1\2|g"
 }
 
 test_expect_success setup '
@@ -66,23 +66,34 @@ test_expect_success setup '
        test_commit M file "Parts 1+2"
 '
 
-FMT='tformat:%P        %H | %s'
-
 # could we soup this up to optionally check parents? So "(BA)C" would check
 # that C is shown and has parents B A.
 check_outcome () {
        outcome=$1
        shift
-       for c in $1
-       do
-               echo "$c"
-       done >expect &&
-       shift &&
+
+       case "$1" in
+       *"("*)
+               FMT="%P %H | %s"
+               munge_actual="
+                       s/^\([^ ]*\)    \([^ ]*\) .*/(\1)\2/
+                       s/ //g
+                       s/()//
+               "
+               ;;
+       *)
+               FMT="%H | %s"
+               munge_actual="s/^\([^ ]*\) .*/\1/"
+               ;;
+       esac &&
+       printf "%s\n" $1 >expect &&
+       shift
+
        param="$*" &&
        test_expect_$outcome "log $param" '
                git log --format="$FMT" $param |
                unnote >actual &&
-               sed -e "s/^.*   \([^ ]*\) .*/\1/" >check <actual &&
+               sed -e "$munge_actual" <actual >check &&
                test_cmp expect check || {
                        cat actual
                        false
@@ -99,6 +110,7 @@ check_result () {
 # shown in normal full-history, as we can't distinguish unless we do a
 # simplification pass. After simplification, D is dropped but G remains.
 check_result 'M L K J I H G F E D C B A'
+check_result '(LH)M (K)L (GJ)K (I)J (G)I (G)H (FE)G (D)F (B)E (BC)D (A)C (A)B A'
 check_result 'M H L K J I G E F D C B A' --topo-order
 check_result 'M L H B A' -- file
 check_result 'M L H B A' --parents -- file