]> git.ipfire.org Git - thirdparty/git.git/blame - t/t4055-diff-context.sh
Merge branch 'wb/fsmonitor-bitmap-fix'
[thirdparty/git.git] / t / t4055-diff-context.sh
CommitLineData
6468a4e5
JM
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' '
50fb51e7 11 cat >template <<-\EOF &&
6468a4e5
JM
12 firstline
13 b
14 c
15 d
16 e
17 f
18 preline
50fb51e7 19 TARGET
6468a4e5
JM
20 postline
21 i
22 j
23 k
24 l
25 m
26 n
27 EOF
50fb51e7 28 sed "/TARGET/d" >x <template &&
6468a4e5
JM
29 git update-index --add x &&
30 git commit -m initial &&
31
50fb51e7 32 sed "s/TARGET/ADDED/" >x <template &&
6468a4e5
JM
33 git update-index --add x &&
34 git commit -m next &&
35
50fb51e7 36 sed "s/TARGET/MODIFIED/" >x <template
6468a4e5
JM
37'
38
39test_expect_success 'the default number of context lines is 3' '
40 git diff >output &&
41 ! grep "^ d" output &&
42 grep "^ e" output &&
43 grep "^ j" output &&
44 ! grep "^ k" output
45'
46
47test_expect_success 'diff.context honored by "log"' '
48 git log -1 -p >output &&
49 ! grep firstline output &&
50 git config diff.context 8 &&
51 git log -1 -p >output &&
52 grep "^ firstline" output
53'
54
55test_expect_success 'The -U option overrides diff.context' '
56 git config diff.context 8 &&
57 git log -U4 -1 >output &&
58 ! grep "^ firstline" output
59'
60
61test_expect_success 'diff.context honored by "diff"' '
62 git config diff.context 8 &&
63 git diff >output &&
64 grep "^ firstline" output
65'
66
67test_expect_success 'plumbing not affected' '
68 git config diff.context 8 &&
69 git diff-files -p >output &&
70 ! grep "^ firstline" output
71'
72
73test_expect_success 'non-integer config parsing' '
74 git config diff.context no &&
75 test_must_fail git diff 2>output &&
2f666581 76 test_i18ngrep "bad numeric config value" output
6468a4e5
JM
77'
78
79test_expect_success 'negative integer config parsing' '
80 git config diff.context -1 &&
81 test_must_fail git diff 2>output &&
155ef25f 82 test_i18ngrep "bad config variable" output
6468a4e5
JM
83'
84
85test_expect_success '-U0 is valid, so is diff.context=0' '
86 git config diff.context 0 &&
87 git diff >output &&
88 grep "^-ADDED" output &&
89 grep "^+MODIFIED" output
90'
91
92test_done