t4033-diff-patience: factor out tests

Group the test cases into two functions, test_diff_(frobnitz|unique). This in preparation for the histogram diff algorithm, which would also re-use these test cases. Signed-off-by: Tay Ray Chuan <rctay89@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Tay Ray Chuan committed Jul 7, 2011 at 12:23 UTC 46c8f2988dc9a6012babd5833a6245ceff214483
2 files changed +168 -159
t/lib-diff-alternative.sh new
+165
@@ -0,0 +1,165 @@
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 +
t/t4033-diff-patience.sh
+3 -159
@@ -3,166 +3,10 @@
3 test_description='patience diff algorithm'
4
5 . ./test-lib.sh
6 +. "$TEST_DIRECTORY"/lib-diff-alternative.sh
7
7 -cat >file1 <<\EOF
8 -#include <stdio.h>
8 +test_diff_frobnitz "patience"
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"
11
12 test_done