#!/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 + +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 #include 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 #include 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 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