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 3
3
test_description=' patience diff algorithm'
4
4
5
5
. ./test-lib.sh
6
+ . " $TEST_DIRECTORY " /lib-diff-alternative.sh
6
7
7
- cat > file1 << \EOF
8
- #include <stdio.h>
8
+ test_diff_frobnitz " patience"
9
9
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"
167
11
168
12
test_done
You can’t perform that action at this time.
0 commit comments