Signed-off-by: Christian Couder chrisc...@tuxfamily.org
---
t/t7513-interpret-trailers.sh | 208 ++
1 file changed, 208 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..8be333c
--- /dev/null
+++ b/t/t7513-interpret-trailers.sh
@@ -0,0 +1,208 @@
+#!/bin/sh
+#
+# Copyright (c) 2013 Christian Couder
+#
+
+test_description='git interpret-trailers'
+
+. ./test-lib.sh
+
+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
+
+# 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.
+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' '
+ printf ack: Peff\nReviewed-by: \nAcked-by: Johan\n expected
+ git interpret-trailers ack = Peff Reviewed-by Acked-by: Johan
actual
+ test_cmp expected actual
+'
+
+test_expect_success '--trim-empty without config' '
+ printf ack: Peff\nAcked-by: Johan\n expected
+ 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:
+ printf Acked-by: Peff\n expected
+ 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=
+ printf Acked-by= Peff\n expected
+ 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 #
+ printf Bug #42\n expected
+ git interpret-trailers --trim-empty bug = 42 actual
+ test_cmp expected actual
+'
+
+test_expect_success 'with commit basic message' '
+ git interpret-trailers --infile 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
+ printf Fixes: \nAcked-by= \nReviewed-by: \nSigned-off-by: \n
expected
+ git interpret-trailers --infile complex_message actual
+ test_cmp expected actual
+'
+
+test_expect_success 'with commit complex message and args' '
+ cat complex_message_body expected
+ printf Fixes: \nAcked-by= \nAcked-by= Peff\nReviewed-by:
\nSigned-off-by: \nBug #42\n expected
+ git interpret-trailers --infile complex_message ack: Peff bug: 42
actual
+ test_cmp expected actual
+'
+
+test_expect_success 'with commit complex message, args and --trim-empty' '
+ cat complex_message_body expected
+ printf Acked-by= Peff\nBug #42\n expected
+ git interpret-trailers --trim-empty --infile complex_message ack:
Peff bug: 42 actual
+ test_cmp expected actual
+'
+
+test_expect_success 'using where = before' '
+ git config trailer.bug.where before
+ cat complex_message_body expected
+ printf Bug #42\nFixes: \nAcked-by= \nAcked-by= Peff\nReviewed-by:
\nSigned-off-by: \n expected
+ git interpret-trailers --infile complex_message ack: Peff bug: 42
actual
+ test_cmp expected actual
+'
+
+test_expect_success 'using where = before for a token in the middle of
infile' '
+ git config trailer.review.key Reviewed-by:
+ git config trailer.review.where before
+ cat complex_message_body expected
+ printf Bug #42\nFixes: \nAcked-by= \nAcked-by= Peff\nReviewed-by:
Johan\nReviewed-by: \nSigned-off-by: \n expected
+ git interpret-trailers --infile complex_message ack: Peff bug: 42
review: Johan actual
+ test_cmp expected actual
+'
+
+test_expect_success 'using where = before and --trim-empty' '
+ cat complex_message_body expected
+ printf Bug #46\nBug #42\nAcked-by= Peff\nReviewed-by: Johan\n
expected
+ git interpret-trailers --infile complex_message --trim-empty ack:
Peff bug: 42 review: Johan Bug: 46 actual
+ test_cmp expected actual
+'
+
+test_expect_success 'the default is ifExist = addIfDifferent' '
+ cat complex_message_body expected
+