# Helpers shared by the test scripts for diff algorithms (patience, | |
# histogram, etc). | |
test_diff_frobnitz() { | |
cat >file1 <<\EOF | |
#include <stdio.h> | |
// Frobs foo heartily | |
int frobnitz(int foo) | |
{ | |
int i; | |
for(i = 0; i < 10; i++) | |
{ | |
printf("Your answer is: "); | |
printf("%d\n", foo); | |
} | |
} | |
int fact(int n) | |
{ | |
if(n > 1) | |
{ | |
return fact(n-1) * n; | |
} | |
return 1; | |
} | |
int main(int argc, char **argv) | |
{ | |
frobnitz(fact(10)); | |
} | |
EOF | |
cat >file2 <<\EOF | |
#include <stdio.h> | |
int fib(int n) | |
{ | |
if(n > 2) | |
{ | |
return fib(n-1) + fib(n-2); | |
} | |
return 1; | |
} | |
// Frobs foo heartily | |
int frobnitz(int foo) | |
{ | |
int i; | |
for(i = 0; i < 10; i++) | |
{ | |
printf("%d\n", foo); | |
} | |
} | |
int main(int argc, char **argv) | |
{ | |
frobnitz(fib(10)); | |
} | |
EOF | |
cat >expect <<\EOF | |
diff --git a/file1 b/file2 | |
index 6faa5a3..e3af329 100644 | |
--- a/file1 | |
+++ b/file2 | |
@@ -1,26 +1,25 @@ | |
#include <stdio.h> | |
+int fib(int n) | |
+{ | |
+ if(n > 2) | |
+ { | |
+ return fib(n-1) + fib(n-2); | |
+ } | |
+ return 1; | |
+} | |
+ | |
// Frobs foo heartily | |
int frobnitz(int foo) | |
{ | |
int i; | |
for(i = 0; i < 10; i++) | |
{ | |
- printf("Your answer is: "); | |
printf("%d\n", foo); | |
} | |
} | |
-int fact(int n) | |
-{ | |
- if(n > 1) | |
- { | |
- return fact(n-1) * n; | |
- } | |
- return 1; | |
-} | |
- | |
int main(int argc, char **argv) | |
{ | |
- frobnitz(fact(10)); | |
+ frobnitz(fib(10)); | |
} | |
EOF | |
STRATEGY=$1 | |
test_expect_success "$STRATEGY diff" ' | |
test_must_fail git diff --no-index "--$STRATEGY" file1 file2 > output && | |
test_cmp expect output | |
' | |
test_expect_success "$STRATEGY diff output is valid" ' | |
mv file2 expect && | |
git apply < output && | |
test_cmp expect file2 | |
' | |
} | |
test_diff_unique() { | |
cat >uniq1 <<\EOF | |
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
EOF | |
cat >uniq2 <<\EOF | |
a | |
b | |
c | |
d | |
e | |
f | |
EOF | |
cat >expect <<\EOF | |
diff --git a/uniq1 b/uniq2 | |
index b414108..0fdf397 100644 | |
--- a/uniq1 | |
+++ b/uniq2 | |
@@ -1,6 +1,6 @@ | |
-1 | |
-2 | |
-3 | |
-4 | |
-5 | |
-6 | |
+a | |
+b | |
+c | |
+d | |
+e | |
+f | |
EOF | |
STRATEGY=$1 | |
test_expect_success 'completely different files' ' | |
test_must_fail git diff --no-index "--$STRATEGY" uniq1 uniq2 > output && | |
test_cmp expect output | |
' | |
} | |