mirror of
https://github.com/git/git
synced 2024-08-28 12:09:19 +00:00
![Jonathan Nieder](/assets/img/avatar_default.png)
A #! line in these files is misleading, since these scriptlets are meant to be sourced with '.' (using whatever shell sources them) instead of run directly using the interpreter named on the #! line. Removing the #! line shouldn't hurt syntax highlighting since these files have filenames ending with '.sh'. For documentation, add a brief description of how the files are meant to be used in place of the shebang line. Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
167 lines
2.1 KiB
Bash
167 lines
2.1 KiB
Bash
# 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
|
|
'
|
|
}
|
|
|