-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
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>
- Loading branch information
Tay Ray Chuan
authored and
Junio C Hamano
committed
Jul 7, 2011
1 parent
1d26b25
commit 46c8f29
Showing
2 changed files
with
168 additions
and
159 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,165 @@ | ||
#!/bin/sh | ||
|
||
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 | ||
' | ||
} | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters