t / t6040-tracking-info.shon commit Merge branch 'jk/maint-soliconv' into maint (027b5a4)
   1#!/bin/sh
   2
   3test_description='remote tracking stats'
   4
   5. ./test-lib.sh
   6
   7advance () {
   8        echo "$1" >"$1" &&
   9        git add "$1" &&
  10        test_tick &&
  11        git commit -m "$1"
  12}
  13
  14test_expect_success setup '
  15        for i in a b c;
  16        do
  17                advance $i || break
  18        done &&
  19        git clone . test &&
  20        (
  21                cd test &&
  22                git checkout -b b1 origin &&
  23                git reset --hard HEAD^ &&
  24                advance d &&
  25                git checkout -b b2 origin &&
  26                git reset --hard b1 &&
  27                git checkout -b b3 origin &&
  28                git reset --hard HEAD^ &&
  29                git checkout -b b4 origin &&
  30                advance e &&
  31                advance f
  32        )
  33'
  34
  35script='s/^..\(b.\)[     0-9a-f]*\[\([^]]*\)\].*/\1 \2/p'
  36cat >expect <<\EOF
  37b1 ahead 1, behind 1
  38b2 ahead 1, behind 1
  39b3 behind 1
  40b4 ahead 2
  41EOF
  42
  43test_expect_success 'branch -v' '
  44        (
  45                cd test &&
  46                git branch -v
  47        ) |
  48        sed -n -e "$script" >actual &&
  49        test_cmp expect actual
  50'
  51
  52test_expect_success 'checkout' '
  53        (
  54                cd test && git checkout b1
  55        ) >actual &&
  56        grep -e "have 1 and 1 different" actual
  57'
  58
  59test_expect_success 'status' '
  60        (
  61                cd test &&
  62                git checkout b1 >/dev/null &&
  63                # reports nothing to commit
  64                test_must_fail git status
  65        ) >actual &&
  66        grep -e "have 1 and 1 different" actual
  67'
  68
  69
  70test_done