#!/bin/sh # # Copyright (c) 2006 Brian C Gernhardt # test_description='Format-patch numbering options' . ./test-lib.sh test_expect_success setup ' echo A > file && git add file && git commit -m First && echo B >> file && git commit -a -m Second && echo C >> file && git commit -a -m Third ' # Each of these gets used multiple times. test_num_no_numbered() { cnt=$(grep "^Subject: \[PATCH\]" $1 | wc -l) && test $cnt = $2 } test_single_no_numbered() { test_num_no_numbered $1 1 } test_no_numbered() { test_num_no_numbered $1 2 } test_single_cover_letter_numbered() { grep "^Subject: \[PATCH 0/1\]" $1 && grep "^Subject: \[PATCH 1/1\]" $1 } test_single_numbered() { grep "^Subject: \[PATCH 1/1\]" $1 } test_numbered() { grep "^Subject: \[PATCH 1/2\]" $1 && grep "^Subject: \[PATCH 2/2\]" $1 } test_expect_success 'single patch defaults to no numbers' ' git format-patch --stdout HEAD~1 >patch0.single && test_single_no_numbered patch0.single ' test_expect_success 'multiple patch defaults to numbered' ' git format-patch --stdout HEAD~2 >patch0.multiple && test_numbered patch0.multiple ' test_expect_success 'Use --numbered' ' git format-patch --numbered --stdout HEAD~1 >patch1 && test_single_numbered patch1 ' test_expect_success 'format.numbered = true' ' git config format.numbered true && git format-patch --stdout HEAD~2 >patch2 && test_numbered patch2 ' test_expect_success 'format.numbered && single patch' ' git format-patch --stdout HEAD^ > patch3 && test_single_numbered patch3 ' test_expect_success 'format.numbered && --no-numbered' ' git format-patch --no-numbered --stdout HEAD~2 >patch4 && test_no_numbered patch4 ' test_expect_success 'format.numbered && --keep-subject' ' git format-patch --keep-subject --stdout HEAD^ >patch4a && grep "^Subject: Third" patch4a ' test_expect_success 'format.numbered = auto' ' git config format.numbered auto && git format-patch --stdout HEAD~2 > patch5 && test_numbered patch5 ' test_expect_success 'format.numbered = auto && single patch' ' git format-patch --stdout HEAD^ > patch6 && test_single_no_numbered patch6 ' test_expect_success 'format.numbered = auto && --no-numbered' ' git format-patch --no-numbered --stdout HEAD~2 > patch7 && test_no_numbered patch7 ' test_expect_success '--start-number && --numbered' ' git format-patch --start-number 3 --numbered --stdout HEAD~1 > patch8 && grep "^Subject: \[PATCH 3/3\]" patch8 ' test_expect_success 'single patch with cover-letter defaults to numbers' ' git format-patch --cover-letter --stdout HEAD~1 >patch9.single && test_single_cover_letter_numbered patch9.single ' test_expect_success 'Use --no-numbered and --cover-letter single patch' ' git format-patch --no-numbered --stdout --cover-letter HEAD~1 >patch10 && test_no_numbered patch10 ' test_done