(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 <'git p4 submit failure handling'>)}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <.>
      more_env: []
      words: [{<.>} {<'./lib-git-p4.sh'>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [{<test_expect_success>} {(SQ <'start p4d'>)} {(SQ <'\n'> <'\tstart_p4d\n'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'init depot'>)}
        {
          (SQ <'\n'> <'\t(\n'> <'\t\tcd "$cli" &&\n'> 
            <'\t\tp4 client -o | sed "/LineEnd/s/:.*/:unix/" | p4 client -i &&\n'> <'\t\techo line1 >file1 &&\n'> <'\t\tp4 add file1 &&\n'> <'\t\tp4 submit -d "line1 in file1"\n'> 
            <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'conflict on one commit'>)}
        {
          (SQ <'\n'> <'\ttest_when_finished cleanup_git &&\n'> 
            <'\tgit p4 clone --dest="$git" //depot &&\n'> <'\t(\n'> <'\t\tcd "$cli" &&\n'> <'\t\tp4 open file1 &&\n'> <'\t\techo line2 >>file1 &&\n'> 
            <'\t\tp4 submit -d "line2 in file1"\n'> <'\t) &&\n'> <'\t(\n'> <'\t\t# now this commit should cause a conflict\n'> <'\t\tcd "$git" &&\n'> 
            <'\t\tgit config git-p4.skipSubmitEdit true &&\n'> <'\t\techo line3 >>file1 &&\n'> <'\t\tgit add file1 &&\n'> 
            <'\t\tgit commit -m "line3 in file1 will conflict" &&\n'> <'\t\ttest_expect_code 1 git p4 submit >out &&\n'> <'\t\ttest_i18ngrep "No commits applied" out\n'> 
            <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'conflict on second of two commits'>)}
        {
          (SQ <'\n'> <'\ttest_when_finished cleanup_git &&\n'> 
            <'\tgit p4 clone --dest="$git" //depot &&\n'> <'\t(\n'> <'\t\tcd "$cli" &&\n'> <'\t\tp4 open file1 &&\n'> <'\t\techo line3 >>file1 &&\n'> 
            <'\t\tp4 submit -d "line3 in file1"\n'> <'\t) &&\n'> <'\t(\n'> <'\t\tcd "$git" &&\n'> <'\t\tgit config git-p4.skipSubmitEdit true &&\n'> 
            <'\t\t# this commit is okay\n'> <'\t\ttest_commit "first_commit_okay" &&\n'> <'\t\t# now this submit should cause a conflict\n'> 
            <'\t\techo line4 >>file1 &&\n'> <'\t\tgit add file1 &&\n'> <'\t\tgit commit -m "line4 in file1 will conflict" &&\n'> 
            <'\t\ttest_expect_code 1 git p4 submit >out &&\n'> <'\t\ttest_i18ngrep "Applied only the commits" out\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'conflict on first of two commits, skip'>)}
        {
          (SQ <'\n'> <'\ttest_when_finished cleanup_git &&\n'> 
            <'\tgit p4 clone --dest="$git" //depot &&\n'> <'\t(\n'> <'\t\tcd "$cli" &&\n'> <'\t\tp4 open file1 &&\n'> <'\t\techo line4 >>file1 &&\n'> 
            <'\t\tp4 submit -d "line4 in file1"\n'> <'\t) &&\n'> <'\t(\n'> <'\t\tcd "$git" &&\n'> <'\t\tgit config git-p4.skipSubmitEdit true &&\n'> 
            <'\t\t# this submit should cause a conflict\n'> <'\t\techo line5 >>file1 &&\n'> <'\t\tgit add file1 &&\n'> 
            <'\t\tgit commit -m "line5 in file1 will conflict" &&\n'> <'\t\t# but this commit is okay\n'> <'\t\ttest_commit "okay_commit_after_skip" &&\n'> 
            <'\t\techo s | test_expect_code 1 git p4 submit >out &&\n'> <'\t\ttest_i18ngrep "Applied only the commits" out\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'conflict on first of two commits, quit'>)}
        {
          (SQ <'\n'> <'\ttest_when_finished cleanup_git &&\n'> 
            <'\tgit p4 clone --dest="$git" //depot &&\n'> <'\t(\n'> <'\t\tcd "$cli" &&\n'> <'\t\tp4 open file1 &&\n'> <'\t\techo line7 >>file1 &&\n'> 
            <'\t\tp4 submit -d "line7 in file1"\n'> <'\t) &&\n'> <'\t(\n'> <'\t\tcd "$git" &&\n'> <'\t\tgit config git-p4.skipSubmitEdit true &&\n'> 
            <'\t\t# this submit should cause a conflict\n'> <'\t\techo line8 >>file1 &&\n'> <'\t\tgit add file1 &&\n'> 
            <'\t\tgit commit -m "line8 in file1 will conflict" &&\n'> <'\t\t# but this commit is okay\n'> <'\t\ttest_commit "okay_commit_after_quit" &&\n'> 
            <'\t\techo q | test_expect_code 1 git p4 submit >out &&\n'> <'\t\ttest_i18ngrep "No commits applied" out\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'conflict cli and config options'>)}
        {
          (SQ <'\n'> <'\ttest_when_finished cleanup_git &&\n'> 
            <'\tgit p4 clone --dest="$git" //depot &&\n'> <'\t(\n'> <'\t\tcd "$git" &&\n'> <'\t\tgit p4 submit --conflict=ask &&\n'> 
            <'\t\tgit p4 submit --conflict=skip &&\n'> <'\t\tgit p4 submit --conflict=quit &&\n'> 
            <'\t\ttest_expect_code 2 git p4 submit --conflict=foo &&\n'> <'\t\ttest_expect_code 2 git p4 submit --conflict &&\n'> <'\t\tgit config git-p4.conflict foo &&\n'> 
            <'\t\ttest_expect_code 1 git p4 submit &&\n'> <'\t\tgit config --unset git-p4.conflict &&\n'> <'\t\tgit p4 submit\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'conflict on first of two commits, --conflict=skip'>)}
        {
          (SQ <'\n'> <'\ttest_when_finished cleanup_git &&\n'> 
            <'\tgit p4 clone --dest="$git" //depot &&\n'> <'\t(\n'> <'\t\tcd "$cli" &&\n'> <'\t\tp4 open file1 &&\n'> <'\t\techo line9 >>file1 &&\n'> 
            <'\t\tp4 submit -d "line9 in file1"\n'> <'\t) &&\n'> <'\t(\n'> <'\t\tcd "$git" &&\n'> <'\t\tgit config git-p4.skipSubmitEdit true &&\n'> 
            <'\t\t# this submit should cause a conflict\n'> <'\t\techo line10 >>file1 &&\n'> <'\t\tgit add file1 &&\n'> 
            <'\t\tgit commit -m "line10 in file1 will conflict" &&\n'> <'\t\t# but this commit is okay\n'> <'\t\ttest_commit "okay_commit_after_auto_skip" &&\n'> 
            <'\t\ttest_expect_code 1 git p4 submit --conflict=skip >out &&\n'> <'\t\ttest_i18ngrep "Applied only the commits" out\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'conflict on first of two commits, --conflict=quit'>)}
        {
          (SQ <'\n'> <'\ttest_when_finished cleanup_git &&\n'> 
            <'\tgit p4 clone --dest="$git" //depot &&\n'> <'\t(\n'> <'\t\tcd "$cli" &&\n'> <'\t\tp4 open file1 &&\n'> <'\t\techo line11 >>file1 &&\n'> 
            <'\t\tp4 submit -d "line11 in file1"\n'> <'\t) &&\n'> <'\t(\n'> <'\t\tcd "$git" &&\n'> <'\t\tgit config git-p4.skipSubmitEdit true &&\n'> 
            <'\t\t# this submit should cause a conflict\n'> <'\t\techo line12 >>file1 &&\n'> <'\t\tgit add file1 &&\n'> 
            <'\t\tgit commit -m "line12 in file1 will conflict" &&\n'> <'\t\t# but this commit is okay\n'> <'\t\ttest_commit "okay_commit_after_auto_quit" &&\n'> 
            <'\t\ttest_expect_code 1 git p4 submit --conflict=quit >out &&\n'> <'\t\ttest_i18ngrep "No commits applied" out\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'cleanup edit p4 populate'>)}
        {
          (SQ <'\n'> <'\t(\n'> <'\t\tcd "$cli" &&\n'> <'\t\techo text file >text &&\n'> 
            <'\t\tp4 add text &&\n'> <'\t\techo text+x file >text+x &&\n'> <'\t\tchmod 755 text+x &&\n'> <'\t\tp4 add text+x &&\n'> 
            <'\t\tp4 submit -d "populate p4"\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <setup_conflict>
      name: setup_conflict
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test_when_finished>
                  more_env: []
                  words: [{<test_when_finished>} {<cleanup_git>}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <git>
                  more_env: []
                  words: [
                    {<git>}
                    {<p4>}
                    {<clone>}
                    {<--dest> <Id.Lit_Equals '='> (DQ ($ Id.VSub_DollarName git))}
                    {<'//depot'>}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <test_tick>
                  more_env: []
                  words: [{<test_tick>}]
                  redirects: []
                  do_fork: T
                )
                (command.Subshell
                  left: <Id.Op_LParen _>
                  child: 
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <cd>
                          more_env: []
                          words: [{<cd>} {(DQ ($ Id.VSub_DollarName cli))}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <p4>
                          more_env: []
                          words: [{<p4>} {<open>} {<file1>}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [{<echo>} {($ Id.VSub_DollarName test_tick)}]
                          redirects: [
                            (Redir
                              op: <Id.Redir_DGreat '>>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<file1>}
                            )
                          ]
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <p4>
                          more_env: []
                          words: [
                            {<p4>}
                            {<submit>}
                            {<-d>}
                            {(DQ ($ Id.VSub_DollarName test_tick) <' in file1'>)}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DAmp _> <Id.Op_DAmp _> <Id.Op_DAmp _>]
                    )
                  right: <Id.Right_Subshell _>
                  redirects: []
                )
                (command.Simple
                  blame_tok: <test_tick>
                  more_env: []
                  words: [{<test_tick>}]
                  redirects: []
                  do_fork: T
                )
                (command.Subshell
                  left: <Id.Op_LParen _>
                  child: 
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <cd>
                          more_env: []
                          words: [{<cd>} {(DQ ($ Id.VSub_DollarName git))}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <git>
                          more_env: []
                          words: [{<git>} {<config>} {<git-p4.skipSubmitEdit>} {<true>}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [{<echo>} {($ Id.VSub_DollarName test_tick)}]
                          redirects: [
                            (Redir
                              op: <Id.Redir_DGreat '>>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<file1>}
                            )
                          ]
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <git>
                          more_env: []
                          words: [{<git>} {<add>} {<file1>}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DAmp _> <Id.Op_DAmp _> <Id.Op_DAmp _>]
                    )
                  right: <Id.Right_Subshell _>
                  redirects: []
                )
              ]
              ops: [<Id.Op_DAmp _> <Id.Op_DAmp _> <Id.Op_DAmp _> <Id.Op_DAmp _> <Id.Op_DAmp _>]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'cleanup edit after submit fail'>)}
        {
          (SQ <'\n'> <'\tsetup_conflict &&\n'> <'\t(\n'> <'\t\tcd "$git" &&\n'> 
            <'\t\techo another line >>text &&\n'> <'\t\tgit add text &&\n'> <'\t\tgit commit -m "conflict" &&\n'> 
            <'\t\ttest_expect_code 1 git p4 submit\n'> <'\t) &&\n'> <'\t(\n'> <'\t\tcd "$cli" &&\n'> <'\t\t# make sure it is not open\n'> 
            <'\t\t! p4 fstat -T action text\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'cleanup add after submit fail'>)}
        {
          (SQ <'\n'> <'\tsetup_conflict &&\n'> <'\t(\n'> <'\t\tcd "$git" &&\n'> 
            <'\t\techo new file >textnew &&\n'> <'\t\tgit add textnew &&\n'> <'\t\tgit commit -m "conflict" &&\n'> 
            <'\t\ttest_expect_code 1 git p4 submit\n'> <'\t) &&\n'> <'\t(\n'> <'\t\tcd "$cli" &&\n'> <'\t\t# make sure it is not there\n'> 
            <'\t\t# and that p4 thinks it is not added\n'> <'\t\t#   P4 returns 0 both for "not there but added" and\n'> <'\t\t#   "not there", so grep.\n'> 
            <'\t\ttest_path_is_missing textnew &&\n'> <'\t\tp4 fstat -T action textnew 2>&1 | grep "no such file"\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'cleanup delete after submit fail'>)}
        {
          (SQ <'\n'> <'\tsetup_conflict &&\n'> <'\t(\n'> <'\t\tcd "$git" &&\n'> 
            <'\t\tgit rm text+x &&\n'> <'\t\tgit commit -m "conflict" &&\n'> <'\t\ttest_expect_code 1 git p4 submit\n'> <'\t) &&\n'> <'\t(\n'> 
            <'\t\tcd "$cli" &&\n'> <'\t\t# make sure it is there\n'> <'\t\ttest_path_is_file text+x &&\n'> 
            <'\t\t! p4 fstat -T action text+x\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'cleanup copy after submit fail'>)}
        {
          (SQ <'\n'> <'\tsetup_conflict &&\n'> <'\t(\n'> <'\t\tcd "$git" &&\n'> 
            <'\t\tcp text text2 &&\n'> <'\t\tgit add text2 &&\n'> <'\t\tgit commit -m "conflict" &&\n'> 
            <'\t\tgit config git-p4.detectCopies true &&\n'> <'\t\tgit config git-p4.detectCopiesHarder true &&\n'> <'\t\t# make sure setup is okay\n'> 
            <'\t\tgit diff-tree -r -C --find-copies-harder HEAD | grep text2 | grep C100 &&\n'> <'\t\ttest_expect_code 1 git p4 submit\n'> <'\t) &&\n'> <'\t(\n'> <'\t\tcd "$cli" &&\n'> 
            <'\t\ttest_path_is_missing text2 &&\n'> <'\t\tp4 fstat -T action text2 2>&1 | grep "no such file"\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'cleanup rename after submit fail'>)}
        {
          (SQ <'\n'> <'\tsetup_conflict &&\n'> <'\t(\n'> <'\t\tcd "$git" &&\n'> 
            <'\t\tgit mv text text2 &&\n'> <'\t\tgit commit -m "conflict" &&\n'> <'\t\tgit config git-p4.detectRenames true &&\n'> 
            <'\t\t# make sure setup is okay\n'> <'\t\tgit diff-tree -r -M HEAD | grep text2 | grep R100 &&\n'> 
            <'\t\ttest_expect_code 1 git p4 submit\n'> <'\t) &&\n'> <'\t(\n'> <'\t\tcd "$cli" &&\n'> <'\t\ttest_path_is_missing text2 &&\n'> 
            <'\t\tp4 fstat -T action text2 2>&1 | grep "no such file"\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'cleanup edit after submit cancel'>)}
        {
          (SQ <'\n'> <'\ttest_when_finished cleanup_git &&\n'> 
            <'\tgit p4 clone --dest="$git" //depot &&\n'> <'\t(\n'> <'\t\tcd "$git" &&\n'> <'\t\techo line >>text &&\n'> <'\t\tgit add text &&\n'> 
            <'\t\tgit commit -m text &&\n'> <'\t\techo n | test_expect_code 1 git p4 submit &&\n'> <'\t\tgit reset --hard HEAD^\n'> <'\t) &&\n'> 
            <'\t(\n'> <'\t\tcd "$cli" &&\n'> <'\t\t! p4 fstat -T action text &&\n'> <'\t\ttest_cmp "$git"/text text\n'> 
            <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'cleanup add after submit cancel'>)}
        {
          (SQ <'\n'> <'\ttest_when_finished cleanup_git &&\n'> 
            <'\tgit p4 clone --dest="$git" //depot &&\n'> <'\t(\n'> <'\t\tcd "$git" &&\n'> <'\t\techo line >textnew &&\n'> <'\t\tgit add textnew &&\n'> 
            <'\t\tgit commit -m textnew &&\n'> <'\t\techo n | test_expect_code 1 git p4 submit\n'> <'\t) &&\n'> <'\t(\n'> <'\t\tcd "$cli" &&\n'> 
            <'\t\ttest_path_is_missing textnew &&\n'> <'\t\tp4 fstat -T action textnew 2>&1 | grep "no such file"\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'cleanup delete after submit cancel'>)}
        {
          (SQ <'\n'> <'\ttest_when_finished cleanup_git &&\n'> 
            <'\tgit p4 clone --dest="$git" //depot &&\n'> <'\t(\n'> <'\t\tcd "$git" &&\n'> <'\t\tgit rm text &&\n'> <'\t\tgit commit -m "rm text" &&\n'> 
            <'\t\techo n | test_expect_code 1 git p4 submit\n'> <'\t) &&\n'> <'\t(\n'> <'\t\tcd "$cli" &&\n'> <'\t\ttest_path_is_file text &&\n'> 
            <'\t\t! p4 fstat -T action text\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'cleanup copy after submit cancel'>)}
        {
          (SQ <'\n'> <'\ttest_when_finished cleanup_git &&\n'> 
            <'\tgit p4 clone --dest="$git" //depot &&\n'> <'\t(\n'> <'\t\tcd "$git" &&\n'> <'\t\tcp text text2 &&\n'> <'\t\tgit add text2 &&\n'> 
            <'\t\tgit commit -m text2 &&\n'> <'\t\tgit config git-p4.detectCopies true &&\n'> 
            <'\t\tgit config git-p4.detectCopiesHarder true &&\n'> <'\t\tgit diff-tree -r -C --find-copies-harder HEAD | grep text2 | grep C100 &&\n'> 
            <'\t\techo n | test_expect_code 1 git p4 submit\n'> <'\t) &&\n'> <'\t(\n'> <'\t\tcd "$cli" &&\n'> <'\t\ttest_path_is_missing text2 &&\n'> 
            <'\t\tp4 fstat -T action text2 2>&1 | grep "no such file"\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'cleanup rename after submit cancel'>)}
        {
          (SQ <'\n'> <'\ttest_when_finished cleanup_git &&\n'> 
            <'\tgit p4 clone --dest="$git" //depot &&\n'> <'\t(\n'> <'\t\tcd "$git" &&\n'> <'\t\tgit mv text text2 &&\n'> <'\t\tgit commit -m text2 &&\n'> 
            <'\t\tgit config git-p4.detectRenames true &&\n'> <'\t\tgit diff-tree -r -M HEAD | grep text2 | grep R100 &&\n'> 
            <'\t\techo n | test_expect_code 1 git p4 submit\n'> <'\t) &&\n'> <'\t(\n'> <'\t\tcd "$cli" &&\n'> <'\t\ttest_path_is_missing text2 &&\n'> 
            <'\t\tp4 fstat -T action text2 2>&1 | grep "no such file"\n'> <'\t\ttest_path_is_file text &&\n'> <'\t\t! p4 fstat -T action text\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'cleanup chmod after submit cancel'>)}
        {
          (SQ <'\n'> <'\ttest_when_finished cleanup_git &&\n'> 
            <'\tgit p4 clone --dest="$git" //depot &&\n'> <'\t(\n'> <'\t\tcd "$git" &&\n'> <'\t\ttest_chmod +x text &&\n'> <'\t\ttest_chmod -x text+x &&\n'> 
            <'\t\tgit add text text+x &&\n'> <'\t\tgit commit -m "chmod texts" &&\n'> <'\t\techo n | test_expect_code 1 git p4 submit\n'> 
            <'\t) &&\n'> <'\t(\n'> <'\t\tcd "$cli" &&\n'> <'\t\ttest_path_is_file text &&\n'> 
            <'\t\t! p4 fstat -T action text &&\n'> <'\t\ttest_path_is_file text+x &&\n'> <'\t\t! p4 fstat -T action text+x &&\n'> 
            <'\t\tls -l text | egrep ^-r-- &&\n'> <'\t\tls -l text+x | egrep ^-r-x\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [{<test_expect_success>} {(SQ <'kill p4d'>)} {(SQ <'\n'> <'\tkill_p4d\n'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_done>
      more_env: []
      words: [{<test_done>}]
      redirects: []
      do_fork: T
    )
  ]
)