1#!/bin/sh
   2test_description='git log'
   4. ./test-lib.sh
   6test_expect_success setup '
   8        echo one >one &&
  10        git add one &&
  11        test_tick &&
  12        git commit -m initial &&
  13        echo ichi >one &&
  15        git add one &&
  16        test_tick &&
  17        git commit -m second &&
  18        mkdir a &&
  20        echo ni >a/two &&
  21        git add a/two &&
  22        test_tick &&
  23        git commit -m third &&
  24        echo san >a/three &&
  26        git add a/three &&
  27        test_tick &&
  28        git commit -m fourth &&
  29        git rm a/three &&
  31        test_tick &&
  32        git commit -m fifth
  33'
  35test_expect_success 'diff-filter=A' '
  37        actual=$(git log --pretty="format:%s" --diff-filter=A HEAD) &&
  39        expect=$(echo fourth ; echo third ; echo initial) &&
  40        test "$actual" = "$expect" || {
  41                echo Oops
  42                echo "Actual: $actual"
  43                false
  44        }
  45'
  47test_expect_success 'diff-filter=M' '
  49        actual=$(git log --pretty="format:%s" --diff-filter=M HEAD) &&
  51        expect=$(echo second) &&
  52        test "$actual" = "$expect" || {
  53                echo Oops
  54                echo "Actual: $actual"
  55                false
  56        }
  57'
  59test_expect_success 'diff-filter=D' '
  61        actual=$(git log --pretty="format:%s" --diff-filter=D HEAD) &&
  63        expect=$(echo fifth) &&
  64        test "$actual" = "$expect" || {
  65                echo Oops
  66                echo "Actual: $actual"
  67                false
  68        }
  69'
  71test_expect_success 'setup case sensitivity tests' '
  73        echo case >one &&
  74        test_tick &&
  75        git commit -a -m Second
  76'
  77test_expect_success 'log --grep' '
  79        echo second >expect &&
  80        git log -1 --pretty="tformat:%s" --grep=sec >actual &&
  81        test_cmp expect actual
  82'
  83test_expect_success 'log -i --grep' '
  85        echo Second >expect &&
  86        git log -1 --pretty="tformat:%s" -i --grep=sec >actual &&
  87        test_cmp expect actual
  88'
  89test_expect_success 'log --grep -i' '
  91        echo Second >expect &&
  92        git log -1 --pretty="tformat:%s" --grep=sec -i >actual &&
  93        test_cmp expect actual
  94'
  95test_done
  97