t / t4202-log.shon commit MinGW: fix diff --no-index /dev/null ... (36adb4a)
   1#!/bin/sh
   2
   3test_description='git log'
   4
   5. ./test-lib.sh
   6
   7test_expect_success setup '
   8
   9        echo one >one &&
  10        git add one &&
  11        test_tick &&
  12        git commit -m initial &&
  13
  14        echo ichi >one &&
  15        git add one &&
  16        test_tick &&
  17        git commit -m second &&
  18
  19        git mv one ichi &&
  20        test_tick &&
  21        git commit -m third &&
  22
  23        cp ichi ein &&
  24        git add ein &&
  25        test_tick &&
  26        git commit -m fourth &&
  27
  28        mkdir a &&
  29        echo ni >a/two &&
  30        git add a/two &&
  31        test_tick &&
  32        git commit -m fifth  &&
  33
  34        git rm a/two &&
  35        test_tick &&
  36        git commit -m sixth
  37
  38'
  39
  40printf "sixth\nfifth\nfourth\nthird\nsecond\ninitial" > expect
  41test_expect_success 'pretty' '
  42
  43        git log --pretty="format:%s" > actual &&
  44        test_cmp expect actual
  45'
  46
  47printf "sixth\nfifth\nfourth\nthird\nsecond\ninitial\n" > expect
  48test_expect_success 'pretty (tformat)' '
  49
  50        git log --pretty="tformat:%s" > actual &&
  51        test_cmp expect actual
  52'
  53
  54test_expect_success 'pretty (shortcut)' '
  55
  56        git log --pretty="%s" > actual &&
  57        test_cmp expect actual
  58'
  59
  60test_expect_success 'format' '
  61
  62        git log --format="%s" > actual &&
  63        test_cmp expect actual
  64'
  65
  66cat > expect << EOF
  67804a787 sixth
  68394ef78 fifth
  695d31159 fourth
  702fbe8c0 third
  71f7dab8e second
  723a2fdcb initial
  73EOF
  74test_expect_success 'oneline' '
  75
  76        git log --oneline > actual &&
  77        test_cmp expect actual
  78'
  79
  80test_expect_success 'diff-filter=A' '
  81
  82        actual=$(git log --pretty="format:%s" --diff-filter=A HEAD) &&
  83        expect=$(echo fifth ; echo fourth ; echo third ; echo initial) &&
  84        test "$actual" = "$expect" || {
  85                echo Oops
  86                echo "Actual: $actual"
  87                false
  88        }
  89
  90'
  91
  92test_expect_success 'diff-filter=M' '
  93
  94        actual=$(git log --pretty="format:%s" --diff-filter=M HEAD) &&
  95        expect=$(echo second) &&
  96        test "$actual" = "$expect" || {
  97                echo Oops
  98                echo "Actual: $actual"
  99                false
 100        }
 101
 102'
 103
 104test_expect_success 'diff-filter=D' '
 105
 106        actual=$(git log --pretty="format:%s" --diff-filter=D HEAD) &&
 107        expect=$(echo sixth ; echo third) &&
 108        test "$actual" = "$expect" || {
 109                echo Oops
 110                echo "Actual: $actual"
 111                false
 112        }
 113
 114'
 115
 116test_expect_success 'diff-filter=R' '
 117
 118        actual=$(git log -M --pretty="format:%s" --diff-filter=R HEAD) &&
 119        expect=$(echo third) &&
 120        test "$actual" = "$expect" || {
 121                echo Oops
 122                echo "Actual: $actual"
 123                false
 124        }
 125
 126'
 127
 128test_expect_success 'diff-filter=C' '
 129
 130        actual=$(git log -C -C --pretty="format:%s" --diff-filter=C HEAD) &&
 131        expect=$(echo fourth) &&
 132        test "$actual" = "$expect" || {
 133                echo Oops
 134                echo "Actual: $actual"
 135                false
 136        }
 137
 138'
 139
 140test_expect_success 'git log --follow' '
 141
 142        actual=$(git log --follow --pretty="format:%s" ichi) &&
 143        expect=$(echo third ; echo second ; echo initial) &&
 144        test "$actual" = "$expect" || {
 145                echo Oops
 146                echo "Actual: $actual"
 147                false
 148        }
 149
 150'
 151
 152test_expect_success 'setup case sensitivity tests' '
 153        echo case >one &&
 154        test_tick &&
 155        git add one
 156        git commit -a -m Second
 157'
 158
 159test_expect_success 'log --grep' '
 160        echo second >expect &&
 161        git log -1 --pretty="tformat:%s" --grep=sec >actual &&
 162        test_cmp expect actual
 163'
 164
 165test_expect_success 'log -i --grep' '
 166        echo Second >expect &&
 167        git log -1 --pretty="tformat:%s" -i --grep=sec >actual &&
 168        test_cmp expect actual
 169'
 170
 171test_expect_success 'log --grep -i' '
 172        echo Second >expect &&
 173        git log -1 --pretty="tformat:%s" --grep=sec -i >actual &&
 174        test_cmp expect actual
 175'
 176
 177test_done
 178