1#!/bin/sh
   2#
   3# Copyright (c) 2006 Brian C Gernhardt
   4#
   5test_description='Format-patch numbering options'
   7. ./test-lib.sh
   9test_expect_success setup '
  11        echo A > file &&
  13        git add file &&
  14        git commit -m First &&
  15        echo B >> file &&
  17        git commit -a -m Second &&
  18        echo C >> file &&
  20        git commit -a -m Third
  21'
  23# Each of these gets used multiple times.
  25test_num_no_numbered() {
  27        cnt=$(grep "^Subject: \[PATCH\]" $1 | wc -l) &&
  28        test $cnt = $2
  29}
  30test_single_no_numbered() {
  32        test_num_no_numbered $1 1
  33}
  34test_no_numbered() {
  36        test_num_no_numbered $1 2
  37}
  38test_single_numbered() {
  40        grep "^Subject: \[PATCH 1/1\]" $1
  41}
  42test_numbered() {
  44        grep "^Subject: \[PATCH 1/2\]" $1 &&
  45        grep "^Subject: \[PATCH 2/2\]" $1
  46}
  47test_expect_success 'Default: no numbered' '
  49        git format-patch --stdout HEAD~2 >patch0 &&
  51        test_no_numbered patch0
  52'
  54test_expect_success 'Use --numbered' '
  56        git format-patch --numbered --stdout HEAD~2 >patch1 &&
  58        test_numbered patch1
  59'
  61test_expect_success 'format.numbered = true' '
  63        git config format.numbered true &&
  65        git format-patch --stdout HEAD~2 >patch2 &&
  66        test_numbered patch2
  67'
  69test_expect_success 'format.numbered && single patch' '
  71        git format-patch --stdout HEAD^ > patch3 &&
  73        test_single_numbered patch3
  74'
  76test_expect_success 'format.numbered && --no-numbered' '
  78        git format-patch --no-numbered --stdout HEAD~2 >patch4 &&
  80        test_no_numbered patch4
  81'
  83test_expect_success 'format.numbered = auto' '
  85        git config format.numbered auto
  87        git format-patch --stdout HEAD~2 > patch5 &&
  88        test_numbered patch5
  89'
  91test_expect_success 'format.numbered = auto && single patch' '
  93        git format-patch --stdout HEAD^ > patch6 &&
  95        test_single_no_numbered patch6
  96'
  98test_expect_success 'format.numbered = auto && --no-numbered' '
 100        git format-patch --no-numbered --stdout HEAD~2 > patch7 &&
 102        test_no_numbered patch7
 103'
 105test_done