Merge branch 'wk/user-manual'
[git/raj.git] / t / lib-diff-alternative.sh
blob75ffd9174fbfb7fc6b14d4777f6613d9f052d64f
1 #!/bin/sh
3 test_diff_frobnitz() {
4 cat >file1 <<\EOF
5 #include <stdio.h>
7 // Frobs foo heartily
8 int frobnitz(int foo)
10 int i;
11 for(i = 0; i < 10; i++)
13 printf("Your answer is: ");
14 printf("%d\n", foo);
18 int fact(int n)
20 if(n > 1)
22 return fact(n-1) * n;
24 return 1;
27 int main(int argc, char **argv)
29 frobnitz(fact(10));
31 EOF
33 cat >file2 <<\EOF
34 #include <stdio.h>
36 int fib(int n)
38 if(n > 2)
40 return fib(n-1) + fib(n-2);
42 return 1;
45 // Frobs foo heartily
46 int frobnitz(int foo)
48 int i;
49 for(i = 0; i < 10; i++)
51 printf("%d\n", foo);
55 int main(int argc, char **argv)
57 frobnitz(fib(10));
59 EOF
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>
69 +int fib(int n)
71 + if(n > 2)
72 + {
73 + return fib(n-1) + fib(n-2);
74 + }
75 + return 1;
78 // Frobs foo heartily
79 int frobnitz(int foo)
81 int i;
82 for(i = 0; i < 10; i++)
84 - printf("Your answer is: ");
85 printf("%d\n", foo);
89 -int fact(int n)
91 - if(n > 1)
92 - {
93 - return fact(n-1) * n;
94 - }
95 - return 1;
98 int main(int argc, char **argv)
100 - frobnitz(fact(10));
101 + frobnitz(fib(10));
105 STRATEGY=$1
107 test_expect_success "$STRATEGY diff" '
108 test_must_fail git diff --no-index "--$STRATEGY" file1 file2 > output &&
109 test_cmp expect output
112 test_expect_success "$STRATEGY diff output is valid" '
113 mv file2 expect &&
114 git apply < output &&
115 test_cmp expect file2
119 test_diff_unique() {
120 cat >uniq1 <<\EOF
129 cat >uniq2 <<\EOF
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 @@
158 STRATEGY=$1
160 test_expect_success 'completely different files' '
161 test_must_fail git diff --no-index "--$STRATEGY" uniq1 uniq2 > output &&
162 test_cmp expect output