mirror of
https://github.com/git/git
synced 2024-08-24 18:26:02 +00:00
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>
This commit is contained in:
parent
1d26b252f1
commit
46c8f2988d
165
t/lib-diff-alternative.sh
Normal file
165
t/lib-diff-alternative.sh
Normal file
|
@ -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
|
||||
'
|
||||
}
|
||||
|
|
@ -3,166 +3,10 @@
|
|||
test_description='patience diff algorithm'
|
||||
|
||||
. ./test-lib.sh
|
||||
. "$TEST_DIRECTORY"/lib-diff-alternative.sh
|
||||
|
||||
cat >file1 <<\EOF
|
||||
#include <stdio.h>
|
||||
test_diff_frobnitz "patience"
|
||||
|
||||
// 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
|
||||
|
||||
test_expect_success 'patience diff' '
|
||||
|
||||
test_must_fail git diff --no-index --patience file1 file2 > output &&
|
||||
test_cmp expect output
|
||||
|
||||
'
|
||||
|
||||
test_expect_success 'patience diff output is valid' '
|
||||
|
||||
mv file2 expect &&
|
||||
git apply < output &&
|
||||
test_cmp expect file2
|
||||
|
||||
'
|
||||
|
||||
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
|
||||
|
||||
test_expect_success 'completely different files' '
|
||||
|
||||
test_must_fail git diff --no-index --patience uniq1 uniq2 > output &&
|
||||
test_cmp expect output
|
||||
|
||||
'
|
||||
test_diff_unique "patience"
|
||||
|
||||
test_done
|
||||
|
|
Loading…
Reference in a new issue