(command.CommandList
  children: [
    (command.ShAssignment
      left: <Id.Lit_VarLike 'test_description='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'test_description='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'test_description='> name:test_description)
          op: assign_op.Equal
          rhs: {(SQ <'am --abort'>)}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <.>
      more_env: []
      words: [{<.>} {<'./test-lib.sh'>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {<setup>}
        {
          (SQ <'\n'> <'\tfor i in a b c d e f g\n'> <'\tdo\n'> <'\t\techo $i\n'> <'\tdone >file-1 &&\n'> 
            <'\tcp file-1 file-2 &&\n'> <'\ttest_tick &&\n'> <'\tgit add file-1 file-2 &&\n'> <'\tgit commit -m initial &&\n'> 
            <'\tgit tag initial &&\n'> <'\tgit format-patch --stdout --root initial >initial.patch &&\n'> <'\tfor i in 2 3 4 5 6\n'> 
            <'\tdo\n'> <'\t\techo $i >>file-1 &&\n'> <'\t\techo $i >otherfile-$i &&\n'> <'\t\tgit add otherfile-$i &&\n'> 
            <'\t\ttest_tick &&\n'> <'\t\tgit commit -a -m $i || return 1\n'> <'\tdone &&\n'> 
            <'\tgit format-patch --no-numbered initial &&\n'> <'\tgit checkout -b side initial &&\n'> <'\techo local change >file-2-expect\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.ForEach
      keyword: <Id.KW_For for>
      iter_names: [with3]
      iterable: (for_iter.Words words:[{(SQ )} {(SQ <' -3'>)}])
      body: 
        (command.DoGroup
          left: <Id.KW_Do do>
          children: [
            (command.Simple
              blame_tok: <test_expect_success>
              more_env: []
              words: [
                {<test_expect_success>}
                {(DQ <am> ($ Id.VSub_DollarName with3) <' stops at a patch that does not apply'>)}
                {
                  (SQ <'\n'> <'\n'> <'\t\tgit reset --hard initial &&\n'> 
                    <'\t\tcp file-2-expect file-2 &&\n'> <'\n'> <'\t\ttest_must_fail git am$with3 000[1245]-*.patch &&\n'> 
                    <'\t\tgit log --pretty=tformat:%s >actual &&\n'> <'\t\tfor i in 3 2 initial\n'> <'\t\tdo\n'> <'\t\t\techo $i\n'> <'\t\tdone >expect &&\n'> 
                    <'\t\ttest_cmp expect actual\n'> <'\t'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <test_expect_success>
              more_env: []
              words: [
                {<test_expect_success>}
                {
                  (DQ <am> ($ Id.VSub_DollarName with3) <' --skip continue after failed am'> 
                    ($ Id.VSub_DollarName with3)
                  )
                }
                {
                  (SQ <'\n'> <'\t\ttest_must_fail git am$with3 --skip >output &&\n'> 
                    <'\t\ttest_i18ngrep "^Applying" output >output.applying &&\n'> <'\t\ttest_i18ngrep "^Applying: 6$" output.applying &&\n'> 
                    <'\t\ttest_i18ncmp file-2-expect file-2 &&\n'> <'\t\ttest ! -f .git/MERGE_RR\n'> <'\t'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <test_expect_success>
              more_env: []
              words: [
                {<test_expect_success>}
                {(DQ <'am --abort goes back after failed am'> ($ Id.VSub_DollarName with3))}
                {
                  (SQ <'\n'> <'\t\tgit am --abort &&\n'> <'\t\tgit rev-parse HEAD >actual &&\n'> 
                    <'\t\tgit rev-parse initial >expect &&\n'> <'\t\ttest_cmp expect actual &&\n'> <'\t\ttest_cmp file-2-expect file-2 &&\n'> 
                    <'\t\tgit diff-index --exit-code --cached HEAD &&\n'> <'\t\ttest ! -f .git/MERGE_RR\n'> <'\t'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.KW_Done done>
        )
      redirects: []
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'am -3 --skip removes otherfile-4'>)}
        {
          (SQ <'\n'> <'\tgit reset --hard initial &&\n'> 
            <'\ttest_must_fail git am -3 0003-*.patch &&\n'> <'\ttest 3 -eq $(git ls-files -u | wc -l) &&\n'> <'\ttest 4 = "$(cat otherfile-4)" &&\n'> 
            <'\tgit am --skip &&\n'> <'\ttest_cmp_rev initial HEAD &&\n'> <'\ttest -z "$(git ls-files -u)" &&\n'> 
            <'\ttest_path_is_missing otherfile-4\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'am -3 --abort removes otherfile-4'>)}
        {
          (SQ <'\n'> <'\tgit reset --hard initial &&\n'> 
            <'\ttest_must_fail git am -3 0003-*.patch &&\n'> <'\ttest 3 -eq $(git ls-files -u | wc -l) &&\n'> <'\ttest 4 = "$(cat otherfile-4)" &&\n'> 
            <'\tgit am --abort &&\n'> <'\ttest_cmp_rev initial HEAD &&\n'> <'\ttest -z "$(git ls-files -u)" &&\n'> 
            <'\ttest_path_is_missing otherfile-4\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'am --abort will keep the local commits intact'>)}
        {
          (SQ <'\n'> <'\ttest_must_fail git am 0004-*.patch &&\n'> <'\ttest_commit unrelated &&\n'> 
            <'\tgit rev-parse HEAD >expect &&\n'> <'\tgit am --abort &&\n'> <'\tgit rev-parse HEAD >actual &&\n'> <'\ttest_cmp expect actual\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'am --abort will keep dirty index intact'>)}
        {
          (SQ <'\n'> <'\tgit reset --hard initial &&\n'> <'\techo dirtyfile >dirtyfile &&\n'> 
            <'\tcp dirtyfile dirtyfile.expected &&\n'> <'\tgit add dirtyfile &&\n'> <'\ttest_must_fail git am 0001-*.patch &&\n'> 
            <'\ttest_cmp_rev initial HEAD &&\n'> <'\ttest_path_is_file dirtyfile &&\n'> <'\ttest_cmp dirtyfile.expected dirtyfile &&\n'> 
            <'\tgit am --abort &&\n'> <'\ttest_cmp_rev initial HEAD &&\n'> <'\ttest_path_is_file dirtyfile &&\n'> 
            <'\ttest_cmp dirtyfile.expected dirtyfile\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'am -3 stops on conflict on unborn branch'>)}
        {
          (SQ <'\n'> <'\tgit checkout -f --orphan orphan &&\n'> <'\tgit reset &&\n'> 
            <'\trm -f otherfile-4 &&\n'> <'\ttest_must_fail git am -3 0003-*.patch &&\n'> <'\ttest 2 -eq $(git ls-files -u | wc -l) &&\n'> 
            <'\ttest 4 = "$(cat otherfile-4)"\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'am -3 --skip clears index on unborn branch'>)}
        {
          (SQ <'\n'> <'\ttest_path_is_dir .git/rebase-apply &&\n'> <'\techo tmpfile >tmpfile &&\n'> 
            <'\tgit add tmpfile &&\n'> <'\tgit am --skip &&\n'> <'\ttest -z "$(git ls-files)" &&\n'> 
            <'\ttest_path_is_missing otherfile-4 &&\n'> <'\ttest_path_is_missing tmpfile\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'am -3 --abort removes otherfile-4 on unborn branch'>)}
        {
          (SQ <'\n'> <'\tgit checkout -f --orphan orphan &&\n'> <'\tgit reset &&\n'> 
            <'\trm -f otherfile-4 file-1 &&\n'> <'\ttest_must_fail git am -3 0003-*.patch &&\n'> <'\ttest 2 -eq $(git ls-files -u | wc -l) &&\n'> 
            <'\ttest 4 = "$(cat otherfile-4)" &&\n'> <'\tgit am --abort &&\n'> <'\ttest -z "$(git ls-files -u)" &&\n'> 
            <'\ttest_path_is_missing otherfile-4\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'am -3 --abort on unborn branch removes applied commits'>)}
        {
          (SQ <'\n'> <'\tgit checkout -f --orphan orphan &&\n'> <'\tgit reset &&\n'> 
            <'\trm -f otherfile-4 otherfile-2 file-1 file-2 &&\n'> <'\ttest_must_fail git am -3 initial.patch 0003-*.patch &&\n'> 
            <'\ttest 3 -eq $(git ls-files -u | wc -l) &&\n'> <'\ttest 4 = "$(cat otherfile-4)" &&\n'> <'\tgit am --abort &&\n'> 
            <'\ttest -z "$(git ls-files -u)" &&\n'> <'\ttest_path_is_missing otherfile-4 &&\n'> <'\ttest_path_is_missing file-1 &&\n'> 
            <'\ttest_path_is_missing file-2 &&\n'> <'\ttest 0 -eq $(git log --oneline 2>/dev/null | wc -l) &&\n'> 
            <'\ttest refs/heads/orphan = "$(git symbolic-ref HEAD)"\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'am --abort on unborn branch will keep local commits intact'>)}
        {
          (SQ <'\n'> <'\tgit checkout -f --orphan orphan &&\n'> <'\tgit reset &&\n'> 
            <'\ttest_must_fail git am 0004-*.patch &&\n'> <'\ttest_commit unrelated2 &&\n'> <'\tgit rev-parse HEAD >expect &&\n'> <'\tgit am --abort &&\n'> 
            <'\tgit rev-parse HEAD >actual &&\n'> <'\ttest_cmp expect actual\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'am --skip leaves index stat info alone'>)}
        {
          (SQ <'\n'> <'\tgit checkout -f --orphan skip-stat-info &&\n'> <'\tgit reset &&\n'> 
            <'\ttest_commit skip-should-be-untouched &&\n'> <'\ttest-chmtime =0 skip-should-be-untouched.t &&\n'> <'\tgit update-index --refresh &&\n'> 
            <'\tgit diff-files --exit-code --quiet &&\n'> <'\ttest_must_fail git am 0001-*.patch &&\n'> <'\tgit am --skip &&\n'> 
            <'\tgit diff-files --exit-code --quiet\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'am --abort leaves index stat info alone'>)}
        {
          (SQ <'\n'> <'\tgit checkout -f --orphan abort-stat-info &&\n'> <'\tgit reset &&\n'> 
            <'\ttest_commit abort-should-be-untouched &&\n'> <'\ttest-chmtime =0 abort-should-be-untouched.t &&\n'> <'\tgit update-index --refresh &&\n'> 
            <'\tgit diff-files --exit-code --quiet &&\n'> <'\ttest_must_fail git am 0001-*.patch &&\n'> <'\tgit am --abort &&\n'> 
            <'\tgit diff-files --exit-code --quiet\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_done>
      more_env: []
      words: [{<test_done>}]
      redirects: []
      do_fork: T
    )
  ]
)