(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_description)
          op: Equal
          rhs: {(SQ <"Format-patch numbering options">)}
          spids: [13]
        )
      ]
      spids: [13]
    )
    (C {(.)} {(./test-lib.sh)})
    (C {(test_expect_success)} {(setup)} 
      {
        (SQ <"\n"> <"\n"> <"\techo A > file &&\n"> <"\tgit add file &&\n"> <"\tgit commit -m First &&\n"> 
          <"\n"> <"\techo B >> file &&\n"> <"\tgit commit -a -m Second &&\n"> <"\n"> <"\techo C >> file &&\n"> 
          <"\tgit commit -a -m Third\n"> <"\n">
        )
      }
    )
    (FuncDef
      name: test_num_no_numbered
      body: 
        (BraceGroup
          children: [
            (AndOr
              children: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:cnt)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (Pipeline
                                    children: [
                                      (C {(grep)} 
                                        {
                                          (DQ ("^Subject: ") 
                                            (EscapedLiteralPart
                                              token: <Lit_EscapedChar "\\[">
                                            ) (PATCH) (EscapedLiteralPart token:<Lit_EscapedChar "\\]">)
                                          )
                                        } {($ VSub_Number "$1")}
                                      )
                                      (C {(wc)} {(-l)})
                                    ]
                                    negated: False
                                  )
                                ]
                              )
                            left_token: <Left_CommandSub "$(">
                            spids: [56 73]
                          )
                        }
                      spids: [55]
                    )
                  ]
                  spids: [55]
                )
                (C {(test)} {($ VSub_Name "$cnt")} {(Lit_Other "=")} {($ VSub_Number "$2")})
              ]
              op_id: Op_DAmp
            )
          ]
          spids: [52]
        )
      spids: [48 51]
    )
    (FuncDef
      name: test_single_no_numbered
      body: 
        (BraceGroup
          children: [(C {(test_num_no_numbered)} {($ VSub_Number "$1")} {(1)})]
          spids: [93]
        )
      spids: [89 92]
    )
    (FuncDef
      name: test_no_numbered
      body: 
        (BraceGroup
          children: [(C {(test_num_no_numbered)} {($ VSub_Number "$1")} {(2)})]
          spids: [109]
        )
      spids: [105 108]
    )
    (FuncDef
      name: test_single_cover_letter_numbered
      body: 
        (BraceGroup
          children: [
            (AndOr
              children: [
                (C {(grep)} 
                  {
                    (DQ ("^Subject: ") (EscapedLiteralPart token:<Lit_EscapedChar "\\[">) ("PATCH 0/1") 
                      (EscapedLiteralPart token:<Lit_EscapedChar "\\]">)
                    )
                  } {($ VSub_Number "$1")}
                )
                (C {(grep)} 
                  {
                    (DQ ("^Subject: ") (EscapedLiteralPart token:<Lit_EscapedChar "\\[">) ("PATCH 1/1") 
                      (EscapedLiteralPart token:<Lit_EscapedChar "\\]">)
                    )
                  } {($ VSub_Number "$1")}
                )
              ]
              op_id: Op_DAmp
            )
          ]
          spids: [125]
        )
      spids: [121 124]
    )
    (FuncDef
      name: test_single_numbered
      body: 
        (BraceGroup
          children: [
            (C {(grep)} 
              {
                (DQ ("^Subject: ") (EscapedLiteralPart token:<Lit_EscapedChar "\\[">) ("PATCH 1/1") 
                  (EscapedLiteralPart token:<Lit_EscapedChar "\\]">)
                )
              } {($ VSub_Number "$1")}
            )
          ]
          spids: [160]
        )
      spids: [156 159]
    )
    (FuncDef
      name: test_numbered
      body: 
        (BraceGroup
          children: [
            (AndOr
              children: [
                (C {(grep)} 
                  {
                    (DQ ("^Subject: ") (EscapedLiteralPart token:<Lit_EscapedChar "\\[">) ("PATCH 1/2") 
                      (EscapedLiteralPart token:<Lit_EscapedChar "\\]">)
                    )
                  } {($ VSub_Number "$1")}
                )
                (C {(grep)} 
                  {
                    (DQ ("^Subject: ") (EscapedLiteralPart token:<Lit_EscapedChar "\\[">) ("PATCH 2/2") 
                      (EscapedLiteralPart token:<Lit_EscapedChar "\\]">)
                    )
                  } {($ VSub_Number "$1")}
                )
              ]
              op_id: Op_DAmp
            )
          ]
          spids: [181]
        )
      spids: [177 180]
    )
    (C {(test_expect_success)} {(SQ <"single patch defaults to no numbers">)} 
      {
        (SQ <"\n"> <"\tgit format-patch --stdout HEAD~1 >patch0.single &&\n"> 
          <"\ttest_single_no_numbered patch0.single\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"multiple patch defaults to numbered">)} 
      {
        (SQ <"\n"> <"\n"> <"\tgit format-patch --stdout HEAD~2 >patch0.multiple &&\n"> 
          <"\ttest_numbered patch0.multiple\n"> <"\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"Use --numbered">)} 
      {
        (SQ <"\n"> <"\n"> <"\tgit format-patch --numbered --stdout HEAD~1 >patch1 &&\n"> 
          <"\ttest_single_numbered patch1\n"> <"\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"format.numbered = true">)} 
      {
        (SQ <"\n"> <"\n"> <"\tgit config format.numbered true &&\n"> 
          <"\tgit format-patch --stdout HEAD~2 >patch2 &&\n"> <"\ttest_numbered patch2\n"> <"\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"format.numbered && single patch">)} 
      {
        (SQ <"\n"> <"\n"> <"\tgit format-patch --stdout HEAD^ > patch3 &&\n"> 
          <"\ttest_single_numbered patch3\n"> <"\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"format.numbered && --no-numbered">)} 
      {
        (SQ <"\n"> <"\n"> <"\tgit format-patch --no-numbered --stdout HEAD~2 >patch4 &&\n"> 
          <"\ttest_no_numbered patch4\n"> <"\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"format.numbered && --keep-subject">)} 
      {
        (SQ <"\n"> <"\n"> <"\tgit format-patch --keep-subject --stdout HEAD^ >patch4a &&\n"> 
          <"\tgrep \"^Subject: Third\" patch4a\n"> <"\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"format.numbered = auto">)} 
      {
        (SQ <"\n"> <"\n"> <"\tgit config format.numbered auto &&\n"> 
          <"\tgit format-patch --stdout HEAD~2 > patch5 &&\n"> <"\ttest_numbered patch5\n"> <"\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"format.numbered = auto && single patch">)} 
      {
        (SQ <"\n"> <"\n"> <"\tgit format-patch --stdout HEAD^ > patch6 &&\n"> 
          <"\ttest_single_no_numbered patch6\n"> <"\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"format.numbered = auto && --no-numbered">)} 
      {
        (SQ <"\n"> <"\n"> <"\tgit format-patch --no-numbered --stdout HEAD~2 > patch7 &&\n"> 
          <"\ttest_no_numbered patch7\n"> <"\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"--start-number && --numbered">)} 
      {
        (SQ <"\n"> <"\n"> 
          <"\tgit format-patch --start-number 3 --numbered --stdout HEAD~1 > patch8 &&\n"> <"\tgrep \"^Subject: \\[PATCH 3/3\\]\" patch8\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"single patch with cover-letter defaults to numbers">)} 
      {
        (SQ <"\n"> <"\tgit format-patch --cover-letter --stdout HEAD~1 >patch9.single &&\n"> 
          <"\ttest_single_cover_letter_numbered patch9.single\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"Use --no-numbered and --cover-letter single patch">)} 
      {
        (SQ <"\n"> <"\tgit format-patch --no-numbered --stdout --cover-letter HEAD~1 >patch10 &&\n"> 
          <"\ttest_no_numbered patch10\n">
        )
      }
    )
    (C {(test_done)})
  ]
)