File tree Expand file tree Collapse file tree 2 files changed +168
-159
lines changed
Expand file tree Collapse file tree 2 files changed +168
-159
lines changed Original file line number Diff line number Diff line change 1+ #! /bin/sh
2+
3+ test_diff_frobnitz () {
4+ cat > file1 << \EOF
5+ #include <stdio.h>
6+
7+ // Frobs foo heartily
8+ int frobnitz(int foo)
9+ {
10+ int i;
11+ for(i = 0; i < 10; i++)
12+ {
13+ printf("Your answer is: ");
14+ printf("%d\n", foo);
15+ }
16+ }
17+
18+ int fact(int n)
19+ {
20+ if(n > 1)
21+ {
22+ return fact(n-1) * n;
23+ }
24+ return 1;
25+ }
26+
27+ int main(int argc, char **argv)
28+ {
29+ frobnitz(fact(10));
30+ }
31+ EOF
32+
33+ cat > file2 << \EOF
34+ #include <stdio.h>
35+
36+ int fib(int n)
37+ {
38+ if(n > 2)
39+ {
40+ return fib(n-1) + fib(n-2);
41+ }
42+ return 1;
43+ }
44+
45+ // Frobs foo heartily
46+ int frobnitz(int foo)
47+ {
48+ int i;
49+ for(i = 0; i < 10; i++)
50+ {
51+ printf("%d\n", foo);
52+ }
53+ }
54+
55+ int main(int argc, char **argv)
56+ {
57+ frobnitz(fib(10));
58+ }
59+ EOF
60+
61+ cat > expect << \EOF
62+ diff --git a/file1 b/file2
63+ index 6faa5a3..e3af329 100644
64+ --- a/file1
65+ +++ b/file2
66+ @@ -1,26 +1,25 @@
67+ #include <stdio.h>
68+
69+ +int fib(int n)
70+ +{
71+ + if(n > 2)
72+ + {
73+ + return fib(n-1) + fib(n-2);
74+ + }
75+ + return 1;
76+ +}
77+ +
78+ // Frobs foo heartily
79+ int frobnitz(int foo)
80+ {
81+ int i;
82+ for(i = 0; i < 10; i++)
83+ {
84+ - printf("Your answer is: ");
85+ printf("%d\n", foo);
86+ }
87+ }
88+
89+ -int fact(int n)
90+ -{
91+ - if(n > 1)
92+ - {
93+ - return fact(n-1) * n;
94+ - }
95+ - return 1;
96+ -}
97+ -
98+ int main(int argc, char **argv)
99+ {
100+ - frobnitz(fact(10));
101+ + frobnitz(fib(10));
102+ }
103+ EOF
104+
105+ STRATEGY=$1
106+
107+ test_expect_success " $STRATEGY diff" '
108+ test_must_fail git diff --no-index "--$STRATEGY" file1 file2 > output &&
109+ test_cmp expect output
110+ '
111+
112+ test_expect_success " $STRATEGY diff output is valid" '
113+ mv file2 expect &&
114+ git apply < output &&
115+ test_cmp expect file2
116+ '
117+ }
118+
119+ test_diff_unique () {
120+ cat > uniq1 << \EOF
121+ 1
122+ 2
123+ 3
124+ 4
125+ 5
126+ 6
127+ EOF
128+
129+ cat > uniq2 << \EOF
130+ a
131+ b
132+ c
133+ d
134+ e
135+ f
136+ EOF
137+
138+ cat > expect << \EOF
139+ diff --git a/uniq1 b/uniq2
140+ index b414108..0fdf397 100644
141+ --- a/uniq1
142+ +++ b/uniq2
143+ @@ -1,6 +1,6 @@
144+ -1
145+ -2
146+ -3
147+ -4
148+ -5
149+ -6
150+ +a
151+ +b
152+ +c
153+ +d
154+ +e
155+ +f
156+ EOF
157+
158+ STRATEGY=$1
159+
160+ test_expect_success ' completely different files' '
161+ test_must_fail git diff --no-index "--$STRATEGY" uniq1 uniq2 > output &&
162+ test_cmp expect output
163+ '
164+ }
165+
Original file line number Diff line number Diff line change 33test_description=' patience diff algorithm'
44
55. ./test-lib.sh
6+ . " $TEST_DIRECTORY " /lib-diff-alternative.sh
67
7- cat > file1 << \EOF
8- #include <stdio.h>
8+ test_diff_frobnitz " patience"
99
10- // Frobs foo heartily
11- int frobnitz(int foo)
12- {
13- int i;
14- for(i = 0; i < 10; i++)
15- {
16- printf("Your answer is: ");
17- printf("%d\n", foo);
18- }
19- }
20-
21- int fact(int n)
22- {
23- if(n > 1)
24- {
25- return fact(n-1) * n;
26- }
27- return 1;
28- }
29-
30- int main(int argc, char **argv)
31- {
32- frobnitz(fact(10));
33- }
34- EOF
35-
36- cat > file2 << \EOF
37- #include <stdio.h>
38-
39- int fib(int n)
40- {
41- if(n > 2)
42- {
43- return fib(n-1) + fib(n-2);
44- }
45- return 1;
46- }
47-
48- // Frobs foo heartily
49- int frobnitz(int foo)
50- {
51- int i;
52- for(i = 0; i < 10; i++)
53- {
54- printf("%d\n", foo);
55- }
56- }
57-
58- int main(int argc, char **argv)
59- {
60- frobnitz(fib(10));
61- }
62- EOF
63-
64- cat > expect << \EOF
65- diff --git a/file1 b/file2
66- index 6faa5a3..e3af329 100644
67- --- a/file1
68- +++ b/file2
69- @@ -1,26 +1,25 @@
70- #include <stdio.h>
71-
72- +int fib(int n)
73- +{
74- + if(n > 2)
75- + {
76- + return fib(n-1) + fib(n-2);
77- + }
78- + return 1;
79- +}
80- +
81- // Frobs foo heartily
82- int frobnitz(int foo)
83- {
84- int i;
85- for(i = 0; i < 10; i++)
86- {
87- - printf("Your answer is: ");
88- printf("%d\n", foo);
89- }
90- }
91-
92- -int fact(int n)
93- -{
94- - if(n > 1)
95- - {
96- - return fact(n-1) * n;
97- - }
98- - return 1;
99- -}
100- -
101- int main(int argc, char **argv)
102- {
103- - frobnitz(fact(10));
104- + frobnitz(fib(10));
105- }
106- EOF
107-
108- test_expect_success ' patience diff' '
109-
110- test_must_fail git diff --no-index --patience file1 file2 > output &&
111- test_cmp expect output
112-
113- '
114-
115- test_expect_success ' patience diff output is valid' '
116-
117- mv file2 expect &&
118- git apply < output &&
119- test_cmp expect file2
120-
121- '
122-
123- cat > uniq1 << \EOF
124- 1
125- 2
126- 3
127- 4
128- 5
129- 6
130- EOF
131-
132- cat > uniq2 << \EOF
133- a
134- b
135- c
136- d
137- e
138- f
139- EOF
140-
141- cat > expect << \EOF
142- diff --git a/uniq1 b/uniq2
143- index b414108..0fdf397 100644
144- --- a/uniq1
145- +++ b/uniq2
146- @@ -1,6 +1,6 @@
147- -1
148- -2
149- -3
150- -4
151- -5
152- -6
153- +a
154- +b
155- +c
156- +d
157- +e
158- +f
159- EOF
160-
161- test_expect_success ' completely different files' '
162-
163- test_must_fail git diff --no-index --patience uniq1 uniq2 > output &&
164- test_cmp expect output
165-
166- '
10+ test_diff_unique " patience"
16711
16812test_done
You can’t perform that action at this time.
0 commit comments