Signed-off-by: Christian Couder chrisc...@tuxfamily.org
Signed-off-by: Junio C Hamano gits...@pobox.com
---
t/t7513-interpret-trailers.sh | 444 ++
1 file changed, 444 insertions(+)
create mode 100755 t/t7513-interpret-trailers.sh
diff --git a/t/t7513-interpret-trailers.sh b/t/t7513-interpret-trailers.sh
new file mode 100755
index 000..9911c7b
--- /dev/null
+++ b/t/t7513-interpret-trailers.sh
@@ -0,0 +1,444 @@
+#!/bin/sh
+#
+# Copyright (c) 2013, 2014 Christian Couder
+#
+
+test_description='git interpret-trailers'
+
+. ./test-lib.sh
+
+# When we want one trailing space at the end of each line, let's use sed
+# to make sure that these spaces are not removed by any automatic tool.
+
+test_expect_success 'setup' '
+ cat basic_message -\EOF
+ subject
+
+ body
+ EOF
+ cat complex_message_body -\EOF
+ my subject
+
+ my body which is long
+ and contains some special
+ chars like : = ? !
+
+ EOF
+ sed -e s/ Z\$/ / complex_message_trailers -\EOF
+ Fixes: Z
+ Acked-by: Z
+ Reviewed-by: Z
+ Signed-off-by: Z
+ EOF
+ cat basic_patch -\EOF
+ ---
+foo.txt | 2 +-
+1 file changed, 1 insertion(+), 1 deletion(-)
+
+ diff --git a/foo.txt b/foo.txt
+ index 0353767..1d91aa1 100644
+ --- a/foo.txt
+ +++ b/foo.txt
+ @@ -1,3 +1,3 @@
+
+ -bar
+ +baz
+
+ --
+ 1.9.rc0.11.ga562ddc
+
+ EOF
+'
+
+test_expect_success 'without config' '
+ sed -e s/ Z\$/ / expected -\EOF
+
+ ack: Peff
+ Reviewed-by: Z
+ Acked-by: Johan
+ EOF
+ git interpret-trailers --trailer ack = Peff --trailer Reviewed-by \
+ --trailer Acked-by: Johan actual
+ test_cmp expected actual
+'
+
+test_expect_success '--trim-empty without config' '
+ cat expected -\EOF
+
+ ack: Peff
+ Acked-by: Johan
+ EOF
+ git interpret-trailers --trim-empty --trailer ack = Peff \
+ --trailer Reviewed-by --trailer Acked-by: Johan \
+ --trailer sob: actual
+ test_cmp expected actual
+'
+
+test_expect_success 'with config setup' '
+ git config trailer.ack.key Acked-by:
+ cat expected -\EOF
+
+ Acked-by: Peff
+ EOF
+ git interpret-trailers --trim-empty --trailer ack = Peff actual
+ test_cmp expected actual
+ git interpret-trailers --trim-empty --trailer Acked-by = Peff actual
+ test_cmp expected actual
+ git interpret-trailers --trim-empty --trailer Acked-by :Peff actual
+ test_cmp expected actual
+'
+
+test_expect_success 'with config setup and = sign' '
+ git config trailer.ack.key Acked-by=
+ cat expected -\EOF
+
+ Acked-by= Peff
+ EOF
+ git interpret-trailers --trim-empty --trailer ack = Peff actual
+ test_cmp expected actual
+ git interpret-trailers --trim-empty --trailer Acked-by= Peff actual
+ test_cmp expected actual
+ git interpret-trailers --trim-empty --trailer Acked-by : Peff actual
+ test_cmp expected actual
+'
+
+test_expect_success 'with config setup and # sign' '
+ git config trailer.bug.key Bug #
+ cat expected -\EOF
+
+ Bug #42
+ EOF
+ git interpret-trailers --trim-empty --trailer bug = 42 actual
+ test_cmp expected actual
+'
+
+test_expect_success 'with commit basic message' '
+ cat basic_message expected
+ echo expected
+ git interpret-trailers basic_message actual
+ test_cmp expected actual
+'
+
+test_expect_success 'with basic patch' '
+ cat basic_message input
+ cat basic_patch input
+ cat basic_message expected
+ echo expected
+ cat basic_patch expected
+ git interpret-trailers input actual
+ test_cmp expected actual
+'
+
+test_expect_success 'with commit complex message as argument' '
+ cat complex_message_body complex_message_trailers complex_message
+ cat complex_message_body expected
+ sed -e s/ Z\$/ / expected -\EOF
+ Fixes: Z
+ Acked-by= Z
+ Reviewed-by: Z
+ Signed-off-by: Z
+ EOF
+ git interpret-trailers complex_message actual
+ test_cmp expected actual
+'
+
+test_expect_success 'with 2 files arguments' '
+ cat basic_message expected
+ echo expected
+ cat basic_patch expected
+ git interpret-trailers complex_message input actual
+ test_cmp expected actual
+'
+
+test_expect_success 'with message that has comments' '
+ cat basic_message message_with_comments
+ sed -e s/ Z\$/ /