]>
Commit | Line | Data |
---|---|---|
accccde4 JH |
1 | #!/bin/sh |
2 | ||
3 | test_description='log --grep/--author/--regexp-ignore-case/-S/-G' | |
4 | . ./test-lib.sh | |
5 | ||
57b6dc76 RS |
6 | test_log () { |
7 | expect=$1 | |
8 | kind=$2 | |
9 | needle=$3 | |
10 | shift 3 | |
11 | rest=$@ | |
12 | ||
13 | case $kind in | |
14 | --*) | |
15 | opt=$kind=$needle | |
16 | ;; | |
17 | *) | |
18 | opt=$kind$needle | |
19 | ;; | |
20 | esac | |
21 | case $expect in | |
22 | expect_nomatch) | |
23 | match=nomatch | |
24 | ;; | |
25 | *) | |
26 | match=match | |
27 | ;; | |
28 | esac | |
29 | ||
30 | test_expect_success "log $kind${rest:+ $rest} ($match)" " | |
31 | git log $rest $opt --format=%H >actual && | |
32 | test_cmp $expect actual | |
33 | " | |
34 | } | |
35 | ||
e7880fcd RS |
36 | # test -i and --regexp-ignore-case and expect both to behave the same way |
37 | test_log_icase () { | |
38 | test_log $@ --regexp-ignore-case | |
39 | test_log $@ -i | |
40 | } | |
41 | ||
accccde4 | 42 | test_expect_success setup ' |
b0f7c7cf RS |
43 | >expect_nomatch && |
44 | ||
accccde4 JH |
45 | >file && |
46 | git add file && | |
47 | test_tick && | |
48 | git commit -m initial && | |
b0f7c7cf | 49 | git rev-parse --verify HEAD >expect_initial && |
accccde4 JH |
50 | |
51 | echo Picked >file && | |
b0f7c7cf | 52 | git add file && |
accccde4 | 53 | test_tick && |
b0f7c7cf RS |
54 | git commit --author="Another Person <another@example.com>" -m second && |
55 | git rev-parse --verify HEAD >expect_second | |
accccde4 JH |
56 | ' |
57 | ||
65a3402f RS |
58 | test_log expect_initial --grep initial |
59 | test_log expect_nomatch --grep InItial | |
60 | test_log_icase expect_initial --grep InItial | |
61 | test_log_icase expect_nomatch --grep initail | |
accccde4 | 62 | |
31a8189a RS |
63 | test_log expect_second --author Person |
64 | test_log expect_nomatch --author person | |
65 | test_log_icase expect_second --author person | |
66 | test_log_icase expect_nomatch --author spreon | |
accccde4 | 67 | |
e7880fcd RS |
68 | test_log expect_nomatch -G picked |
69 | test_log expect_second -G Picked | |
70 | test_log_icase expect_nomatch -G pickle | |
71 | test_log_icase expect_second -G picked | |
accccde4 | 72 | |
a8f61094 SR |
73 | test_expect_success 'log -G --textconv (missing textconv tool)' ' |
74 | echo "* diff=test" >.gitattributes && | |
75 | test_must_fail git -c diff.test.textconv=missing log -Gfoo && | |
76 | rm .gitattributes | |
77 | ' | |
78 | ||
79 | test_expect_success 'log -G --no-textconv (missing textconv tool)' ' | |
80 | echo "* diff=test" >.gitattributes && | |
81 | git -c diff.test.textconv=missing log -Gfoo --no-textconv >actual && | |
b0f7c7cf | 82 | test_cmp expect_nomatch actual && |
a8f61094 SR |
83 | rm .gitattributes |
84 | ' | |
85 | ||
e7880fcd RS |
86 | test_log expect_nomatch -S picked |
87 | test_log expect_second -S Picked | |
88 | test_log_icase expect_second -S picked | |
89 | test_log_icase expect_nomatch -S pickle | |
accccde4 | 90 | |
218c45a4 RS |
91 | test_log expect_nomatch -S p.cked --pickaxe-regex |
92 | test_log expect_second -S P.cked --pickaxe-regex | |
93 | test_log_icase expect_second -S p.cked --pickaxe-regex | |
94 | test_log_icase expect_nomatch -S p.ckle --pickaxe-regex | |
95 | ||
a8f61094 SR |
96 | test_expect_success 'log -S --textconv (missing textconv tool)' ' |
97 | echo "* diff=test" >.gitattributes && | |
98 | test_must_fail git -c diff.test.textconv=missing log -Sfoo && | |
99 | rm .gitattributes | |
100 | ' | |
101 | ||
102 | test_expect_success 'log -S --no-textconv (missing textconv tool)' ' | |
103 | echo "* diff=test" >.gitattributes && | |
104 | git -c diff.test.textconv=missing log -Sfoo --no-textconv >actual && | |
b0f7c7cf | 105 | test_cmp expect_nomatch actual && |
a8f61094 SR |
106 | rm .gitattributes |
107 | ' | |
108 | ||
accccde4 | 109 | test_done |