t / t4055-diff-context.shon commit diff: diff.context configuration gives default to -U (6468a4e)
   1#!/bin/sh
   2#
   3# Copyright (c) 2012 Mozilla Foundation
   4#
   5
   6test_description='diff.context configuration'
   7
   8. ./test-lib.sh
   9
  10test_expect_success 'setup' '
  11        cat >x <<-\EOF &&
  12        firstline
  13        b
  14        c
  15        d
  16        e
  17        f
  18        preline
  19        postline
  20        i
  21        j
  22        k
  23        l
  24        m
  25        n
  26        EOF
  27        git update-index --add x &&
  28        git commit -m initial &&
  29
  30        git cat-file blob HEAD:x |
  31        sed "/preline/a\
  32        ADDED" >x &&
  33        git update-index --add x &&
  34        git commit -m next &&
  35
  36        git cat-file blob HEAD:x |
  37        sed s/ADDED/MODIFIED/ >x
  38'
  39
  40test_expect_success 'the default number of context lines is 3' '
  41        git diff >output &&
  42        ! grep "^ d" output &&
  43        grep "^ e" output &&
  44        grep "^ j" output &&
  45        ! grep "^ k" output
  46'
  47
  48test_expect_success 'diff.context honored by "log"' '
  49        git log -1 -p >output &&
  50        ! grep firstline output &&
  51        git config diff.context 8 &&
  52        git log -1 -p >output &&
  53        grep "^ firstline" output
  54'
  55
  56test_expect_success 'The -U option overrides diff.context' '
  57        git config diff.context 8 &&
  58        git log -U4 -1 >output &&
  59        ! grep "^ firstline" output
  60'
  61
  62test_expect_success 'diff.context honored by "diff"' '
  63        git config diff.context 8 &&
  64        git diff >output &&
  65        grep "^ firstline" output
  66'
  67
  68test_expect_success 'plumbing not affected' '
  69        git config diff.context 8 &&
  70        git diff-files -p >output &&
  71        ! grep "^ firstline" output
  72'
  73
  74test_expect_success 'non-integer config parsing' '
  75        git config diff.context no &&
  76        test_must_fail git diff 2>output &&
  77        test_i18ngrep "bad config value" output
  78'
  79
  80test_expect_success 'negative integer config parsing' '
  81        git config diff.context -1 &&
  82        test_must_fail git diff 2>output &&
  83        test_i18ngrep "bad config file" output
  84'
  85
  86test_expect_success '-U0 is valid, so is diff.context=0' '
  87        git config diff.context 0 &&
  88        git diff >output &&
  89        grep "^-ADDED" output &&
  90        grep "^+MODIFIED" output
  91'
  92
  93test_done