177 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
			
		
		
	
	
			177 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
#!/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
 | 
						|
 |