Signed-off-by: Christian Couder chrisc...@tuxfamily.org
---
t/t7513-interpret-trailers.sh | 336 ++
1 file changed, 336 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..417a4f3
--- /dev/null
+++ b/t/t7513-interpret-trailers.sh
@@ -0,0 +1,336 @@
+#!/bin/sh
+#
+# Copyright (c) 2013 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
+'
+
+test_expect_success 'without config' '
+ sed -e s/ Z\$/ / expected -\EOF
+ ack: Peff
+ Reviewed-by: Z
+ Acked-by: Johan
+ EOF
+ git interpret-trailers ack = Peff Reviewed-by 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 ack = Peff Reviewed-by
Acked-by: Johan 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 ack = Peff actual
+ test_cmp expected actual
+ git interpret-trailers --trim-empty Acked-by = Peff actual
+ test_cmp expected actual
+ git interpret-trailers --trim-empty 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 ack = Peff actual
+ test_cmp expected actual
+ git interpret-trailers --trim-empty Acked-by= Peff actual
+ test_cmp expected actual
+ git interpret-trailers --trim-empty 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 bug = 42 actual
+ test_cmp expected actual
+'
+
+test_expect_success 'with commit basic message' '
+ git interpret-trailers basic_message actual
+ test_cmp basic_message actual
+'
+
+test_expect_success 'with commit complex message' '
+ 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 commit complex message and args' '
+ cat complex_message_body expected
+ sed -e s/ Z\$/ / expected -\EOF
+ Fixes: Z
+ Acked-by= Z
+ Acked-by= Peff
+ Reviewed-by: Z
+ Signed-off-by: Z
+ Bug #42
+ EOF
+ git interpret-trailers ack: Peff bug: 42 complex_message actual
+ test_cmp expected actual
+'
+
+test_expect_success 'with commit complex message, args and --trim-empty' '
+ cat complex_message_body expected
+ cat expected -\EOF
+ Acked-by= Peff
+ Bug #42
+ EOF
+ git interpret-trailers --trim-empty ack: Peff bug: 42
complex_message actual
+ test_cmp expected actual
+'
+
+test_expect_success 'using where = before' '
+ git config trailer.bug.where before
+ cat complex_message_body expected
+ sed -e s/ Z\$/ / expected -\EOF
+ Bug #42
+ Fixes: Z
+ Acked-by= Z
+ Acked-by= Peff
+ Reviewed-by: Z
+ Signed-off-by: Z
+ EOF
+ git interpret-trailers ack: Peff bug: 42 complex_message actual
+ test_cmp expected actual
+'
+
+test_expect_success 'using where = before for a token in the middle of the
message' '
+ git config trailer.review.key Reviewed-by:
+ git config trailer.review.where before