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        git mv one ichi &&
  20        test_tick &&
  21        git commit -m third &&
  22        cp ichi ein &&
  24        git add ein &&
  25        test_tick &&
  26        git commit -m fourth &&
  27        mkdir a &&
  29        echo ni >a/two &&
  30        git add a/two &&
  31        test_tick &&
  32        git commit -m fifth  &&
  33        git rm a/two &&
  35        test_tick &&
  36        git commit -m sixth
  37'
  39test_expect_success 'diff-filter=A' '
  41        actual=$(git log --pretty="format:%s" --diff-filter=A HEAD) &&
  43        expect=$(echo fifth ; echo fourth ; echo third ; echo initial) &&
  44        test "$actual" = "$expect" || {
  45                echo Oops
  46                echo "Actual: $actual"
  47                false
  48        }
  49'
  51test_expect_success 'diff-filter=M' '
  53        actual=$(git log --pretty="format:%s" --diff-filter=M HEAD) &&
  55        expect=$(echo second) &&
  56        test "$actual" = "$expect" || {
  57                echo Oops
  58                echo "Actual: $actual"
  59                false
  60        }
  61'
  63test_expect_success 'diff-filter=D' '
  65        actual=$(git log --pretty="format:%s" --diff-filter=D HEAD) &&
  67        expect=$(echo sixth ; echo third) &&
  68        test "$actual" = "$expect" || {
  69                echo Oops
  70                echo "Actual: $actual"
  71                false
  72        }
  73'
  75test_expect_success 'diff-filter=R' '
  77        actual=$(git log -M --pretty="format:%s" --diff-filter=R HEAD) &&
  79        expect=$(echo third) &&
  80        test "$actual" = "$expect" || {
  81                echo Oops
  82                echo "Actual: $actual"
  83                false
  84        }
  85'
  87test_expect_success 'diff-filter=C' '
  89        actual=$(git log -C -C --pretty="format:%s" --diff-filter=C HEAD) &&
  91        expect=$(echo fourth) &&
  92        test "$actual" = "$expect" || {
  93                echo Oops
  94                echo "Actual: $actual"
  95                false
  96        }
  97'
  99test_expect_success 'git log --follow' '
 101        actual=$(git log --follow --pretty="format:%s" ichi) &&
 103        expect=$(echo third ; echo second ; echo initial) &&
 104        test "$actual" = "$expect" || {
 105                echo Oops
 106                echo "Actual: $actual"
 107                false
 108        }
 109'
 111test_expect_success 'setup case sensitivity tests' '
 113        echo case >one &&
 114        test_tick &&
 115        git add one
 116        git commit -a -m Second
 117'
 118test_expect_success 'log --grep' '
 120        echo second >expect &&
 121        git log -1 --pretty="tformat:%s" --grep=sec >actual &&
 122        test_cmp expect actual
 123'
 124test_expect_success 'log -i --grep' '
 126        echo Second >expect &&
 127        git log -1 --pretty="tformat:%s" -i --grep=sec >actual &&
 128        test_cmp expect actual
 129'
 130test_expect_success 'log --grep -i' '
 132        echo Second >expect &&
 133        git log -1 --pretty="tformat:%s" --grep=sec -i >actual &&
 134        test_cmp expect actual
 135'
 136test_done
 138