| #!/bin/sh |
| # |
| # Copyright (c) 2005 Junio C Hamano |
| # Copyright (c) 2005 Robert Fitzsimons |
| # |
| |
| test_description='git-apply test patches with multiple fragments. |
| |
| ' |
| . ./test-lib.sh |
| |
| # setup |
| |
| cat > patch1.patch <<\EOF |
| diff --git a/main.c b/main.c |
| new file mode 100644 |
| --- /dev/null |
| +++ b/main.c |
| @@ -0,0 +1,23 @@ |
| +#include <stdio.h> |
| + |
| +int func(int num); |
| +void print_int(int num); |
| + |
| +int main() { |
| + int i; |
| + |
| + for (i = 0; i < 10; i++) { |
| + print_int(func(i)); |
| + } |
| + |
| + return 0; |
| +} |
| + |
| +int func(int num) { |
| + return num * num; |
| +} |
| + |
| +void print_int(int num) { |
| + printf("%d", num); |
| +} |
| + |
| EOF |
| cat > patch2.patch <<\EOF |
| diff --git a/main.c b/main.c |
| --- a/main.c |
| +++ b/main.c |
| @@ -1,7 +1,9 @@ |
| +#include <stdlib.h> |
| #include <stdio.h> |
| |
| int func(int num); |
| void print_int(int num); |
| +void print_ln(); |
| |
| int main() { |
| int i; |
| @@ -10,6 +12,8 @@ |
| print_int(func(i)); |
| } |
| |
| + print_ln(); |
| + |
| return 0; |
| } |
| |
| @@ -21,3 +25,7 @@ |
| printf("%d", num); |
| } |
| |
| +void print_ln() { |
| + printf("\n"); |
| +} |
| + |
| EOF |
| cat > patch3.patch <<\EOF |
| diff --git a/main.c b/main.c |
| --- a/main.c |
| +++ b/main.c |
| @@ -1,9 +1,7 @@ |
| -#include <stdlib.h> |
| #include <stdio.h> |
| |
| int func(int num); |
| void print_int(int num); |
| -void print_ln(); |
| |
| int main() { |
| int i; |
| @@ -12,8 +10,6 @@ |
| print_int(func(i)); |
| } |
| |
| - print_ln(); |
| - |
| return 0; |
| } |
| |
| @@ -25,7 +21,3 @@ |
| printf("%d", num); |
| } |
| |
| -void print_ln() { |
| - printf("\n"); |
| -} |
| - |
| EOF |
| cat > patch4.patch <<\EOF |
| diff --git a/main.c b/main.c |
| --- a/main.c |
| +++ b/main.c |
| @@ -1,13 +1,14 @@ |
| #include <stdio.h> |
| |
| int func(int num); |
| -void print_int(int num); |
| +int func2(int num); |
| |
| int main() { |
| int i; |
| |
| for (i = 0; i < 10; i++) { |
| - print_int(func(i)); |
| + printf("%d", func(i)); |
| + printf("%d", func3(i)); |
| } |
| |
| return 0; |
| @@ -17,7 +18,7 @@ |
| return num * num; |
| } |
| |
| -void print_int(int num) { |
| - printf("%d", num); |
| +int func2(int num) { |
| + return num * num * num; |
| } |
| |
| EOF |
| |
| test_expect_success "S = git-apply (1)" \ |
| 'git-apply patch1.patch patch2.patch' |
| mv main.c main.c.git |
| |
| test_expect_success "S = patch (1)" \ |
| 'cat patch1.patch patch2.patch | patch -p1' |
| |
| test_expect_success "S = cmp (1)" \ |
| 'cmp main.c.git main.c' |
| |
| rm -f main.c main.c.git |
| |
| test_expect_success "S = git-apply (2)" \ |
| 'git-apply patch1.patch patch2.patch patch3.patch' |
| mv main.c main.c.git |
| |
| test_expect_success "S = patch (2)" \ |
| 'cat patch1.patch patch2.patch patch3.patch | patch -p1' |
| |
| test_expect_success "S = cmp (2)" \ |
| 'cmp main.c.git main.c' |
| |
| rm -f main.c main.c.git |
| |
| test_expect_success "S = git-apply (3)" \ |
| 'git-apply patch1.patch patch4.patch' |
| mv main.c main.c.git |
| |
| test_expect_success "S = patch (3)" \ |
| 'cat patch1.patch patch4.patch | patch -p1' |
| |
| test_expect_success "S = cmp (3)" \ |
| 'cmp main.c.git main.c' |
| |
| test_done |
| |