(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 <'check output directory names used by git-clone'>)}
        )
      ]
      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>}
        {(SQ <'setup ssh wrapper'>)}
        {
          (SQ <'\n'> <'\twrite_script "$TRASH_DIRECTORY/ssh-wrapper" <<-\\EOF &&\n'> 
            <'\tgit upload-pack "$TRASH_DIRECTORY"\n'> <'\tEOF\n'> <'\tGIT_SSH="$TRASH_DIRECTORY/ssh-wrapper" &&\n'> <'\texport GIT_SSH &&\n'> 
            <'\texport TRASH_DIRECTORY\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <test_clone_dir>
      name: test_clone_dir
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Sentence
              child: 
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'url='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'url='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'url='> name:url)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_Number 1)}
                    )
                  ]
                  redirects: []
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.Sentence
              child: 
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'dir='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'dir='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dir='> name:dir)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_Number 1)}
                    )
                  ]
                  redirects: []
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'expect='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'expect='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'expect='> name:expect)
                  op: assign_op.Equal
                  rhs: {<success>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'bare='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'bare='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'bare='> name:bare)
                  op: assign_op.Equal
                  rhs: {<non-bare>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'clone_opts='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'clone_opts='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'clone_opts='> name:clone_opts)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [i]
              iterable: (for_iter.Words words:[{(DQ ($ Id.VSub_At '@'))}])
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{(DQ ($ Id.VSub_DollarName i))})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <fail>
                          pattern: (pat.Words words:[{<fail>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'expect='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'expect='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'expect='> name:expect)
                                  op: assign_op.Equal
                                  rhs: {<failure>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <bare>
                          pattern: (pat.Words words:[{<bare>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'bare='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'bare='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'bare='> name:bare)
                                  op: assign_op.Equal
                                  rhs: {<bare>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'clone_opts='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'clone_opts='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'clone_opts='>
                                      name: clone_opts
                                    )
                                  op: assign_op.Equal
                                  rhs: {<--bare>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.Simple
              blame_tok: <test_expect_>
              more_env: []
              words: [
                {<test_expect_> ($ Id.VSub_DollarName expect)}
                {
                  (DQ <'clone of '> ($ Id.VSub_DollarName url) <' goes to '> ($ Id.VSub_DollarName dir) 
                    <' ('> ($ Id.VSub_DollarName bare) <')'>
                  )
                }
                {
                  (DQ <'\n'> <'\t\trm -rf '> ($ Id.VSub_DollarName dir) <' &&\n'> <'\t\tgit clone '> 
                    ($ Id.VSub_DollarName clone_opts) <' '> ($ Id.VSub_DollarName url) <' &&\n'> <'\t\ttest_path_is_dir '> ($ Id.VSub_DollarName dir) <'\n'> 
                    <'\t'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <test_clone_dir>
      more_env: []
      words: [{<test_clone_dir>} {<host> <Id.Lit_Colon ':'> <foo>} {<foo>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_clone_dir>
      more_env: []
      words: [{<test_clone_dir>} {<host> <Id.Lit_Colon ':'> <foo>} {<foo.git>} {<bare>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_clone_dir>
      more_env: []
      words: [{<test_clone_dir>} {<host> <Id.Lit_Colon ':'> <foo.git>} {<foo>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_clone_dir>
      more_env: []
      words: [{<test_clone_dir>} {<host> <Id.Lit_Colon ':'> <foo.git>} {<foo.git>} {<bare>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_clone_dir>
      more_env: []
      words: [{<test_clone_dir>} {<host> <Id.Lit_Colon ':'> <'foo/.git'>} {<foo>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_clone_dir>
      more_env: []
      words: [{<test_clone_dir>} {<host> <Id.Lit_Colon ':'> <'foo/.git'>} {<foo.git>} {<bare>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_clone_dir>
      more_env: []
      words: [{<test_clone_dir>} {<ssh> <Id.Lit_Colon ':'> <'//host/foo'>} {<foo>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_clone_dir>
      more_env: []
      words: [{<test_clone_dir>} {<ssh> <Id.Lit_Colon ':'> <'//host/foo'>} {<foo.git>} {<bare>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_clone_dir>
      more_env: []
      words: [{<test_clone_dir>} {<ssh> <Id.Lit_Colon ':'> <'//host/foo.git'>} {<foo>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_clone_dir>
      more_env: []
      words: [{<test_clone_dir>} {<ssh> <Id.Lit_Colon ':'> <'//host/foo.git'>} {<foo.git>} {<bare>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_clone_dir>
      more_env: []
      words: [{<test_clone_dir>} {<ssh> <Id.Lit_Colon ':'> <'//host/foo/.git'>} {<foo>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_clone_dir>
      more_env: []
      words: [{<test_clone_dir>} {<ssh> <Id.Lit_Colon ':'> <'//host/foo/.git'>} {<foo.git>} {<bare>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_clone_dir>
      more_env: []
      words: [{<test_clone_dir>} {<ssh> <Id.Lit_Colon ':'> <'//host/foo/'>} {<foo>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_clone_dir>
      more_env: []
      words: [{<test_clone_dir>} {<ssh> <Id.Lit_Colon ':'> <'//host/foo///'>} {<foo>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_clone_dir>
      more_env: []
      words: [{<test_clone_dir>} {<ssh> <Id.Lit_Colon ':'> <'//host/foo/.git/'>} {<foo>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_clone_dir>
      more_env: []
      words: [{<test_clone_dir>} {<ssh> <Id.Lit_Colon ':'> <'//host/foo.git/'>} {<foo>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_clone_dir>
      more_env: []
      words: [{<test_clone_dir>} {<ssh> <Id.Lit_Colon ':'> <'//host/foo.git///'>} {<foo>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_clone_dir>
      more_env: []
      words: [{<test_clone_dir>} {<ssh> <Id.Lit_Colon ':'> <'//host/foo///.git/'>} {<foo>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_clone_dir>
      more_env: []
      words: [{<test_clone_dir>} {<ssh> <Id.Lit_Colon ':'> <'//host/foo/.git///'>} {<foo>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_clone_dir>
      more_env: []
      words: [{<test_clone_dir>} {<host> <Id.Lit_Colon ':'> <'foo/'>} {<foo>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_clone_dir>
      more_env: []
      words: [{<test_clone_dir>} {<host> <Id.Lit_Colon ':'> <'foo///'>} {<foo>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_clone_dir>
      more_env: []
      words: [{<test_clone_dir>} {<host> <Id.Lit_Colon ':'> <'foo.git/'>} {<foo>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_clone_dir>
      more_env: []
      words: [{<test_clone_dir>} {<host> <Id.Lit_Colon ':'> <'foo/.git/'>} {<foo>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_clone_dir>
      more_env: []
      words: [{<test_clone_dir>} {<host> <Id.Lit_Colon ':'> <'foo.git///'>} {<foo>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_clone_dir>
      more_env: []
      words: [{<test_clone_dir>} {<host> <Id.Lit_Colon ':'> <'foo///.git/'>} {<foo>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_clone_dir>
      more_env: []
      words: [{<test_clone_dir>} {<host> <Id.Lit_Colon ':'> <'foo/.git///'>} {<foo>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_clone_dir>
      more_env: []
      words: [{<test_clone_dir>} {<ssh> <Id.Lit_Colon ':'> <'//host/'>} {<host>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_clone_dir>
      more_env: []
      words: [
        {<test_clone_dir>}
        {<ssh> <Id.Lit_Colon ':'> <'//host'> <Id.Lit_Colon ':'> <'1234/'>}
        {<host>}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_clone_dir>
      more_env: []
      words: [
        {<test_clone_dir>}
        {<ssh> <Id.Lit_Colon ':'> <'//user'> <Id.Lit_Splice '@host'> <'/'>}
        {<host>}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_clone_dir>
      more_env: []
      words: [{<test_clone_dir>} {<host> <Id.Lit_Colon ':'> <'/'>} {<host>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_clone_dir>
      more_env: []
      words: [
        {<test_clone_dir>}
        {<ssh> <Id.Lit_Colon ':'> <'//user'> <Id.Lit_Colon ':'> <password> <Id.Lit_Splice '@host'> <'/'>}
        {<host>}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_clone_dir>
      more_env: []
      words: [
        {<test_clone_dir>}
        {<ssh> <Id.Lit_Colon ':'> <'//user'> <Id.Lit_Colon ':'> <password> <Id.Lit_Splice '@host'> 
          <Id.Lit_Colon ':'> <'1234/'>
        }
        {<host>}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_clone_dir>
      more_env: []
      words: [
        {<test_clone_dir>}
        {<ssh> <Id.Lit_Colon ':'> <'//user'> <Id.Lit_Colon ':'> <passw> <Id.Lit_Splice '@rd'> 
          <Id.Lit_Splice '@host'> <Id.Lit_Colon ':'> <'1234/'>
        }
        {<host>}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_clone_dir>
      more_env: []
      words: [{<test_clone_dir>} {<user> <Id.Lit_Splice '@host'> <Id.Lit_Colon ':'> <'/'>} {<host>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_clone_dir>
      more_env: []
      words: [
        {<test_clone_dir>}
        {<user> <Id.Lit_Colon ':'> <password> <Id.Lit_Splice '@host'> <Id.Lit_Colon ':'> <'/'>}
        {<host>}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_clone_dir>
      more_env: []
      words: [
        {<test_clone_dir>}
        {<user> <Id.Lit_Colon ':'> <passw> <Id.Lit_Splice '@rd'> <Id.Lit_Splice '@host'> 
          <Id.Lit_Colon ':'> <'/'>
        }
        {<host>}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_clone_dir>
      more_env: []
      words: [
        {<test_clone_dir>}
        {<ssh> <Id.Lit_Colon ':'> <'//host/foo'> <Id.Lit_Splice '@bar'>}
        {<foo> <Id.Lit_Splice '@bar'>}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_clone_dir>
      more_env: []
      words: [
        {<test_clone_dir>}
        {<ssh> <Id.Lit_Colon ':'> <'//host/foo'> <Id.Lit_Splice '@bar'> <.git>}
        {<foo> <Id.Lit_Splice '@bar'>}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_clone_dir>
      more_env: []
      words: [
        {<test_clone_dir>}
        {<ssh> <Id.Lit_Colon ':'> <'//user'> <Id.Lit_Colon ':'> <password> <Id.Lit_Splice '@host'> 
          <'/foo'> <Id.Lit_Splice '@bar'>
        }
        {<foo> <Id.Lit_Splice '@bar'>}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_clone_dir>
      more_env: []
      words: [
        {<test_clone_dir>}
        {<ssh> <Id.Lit_Colon ':'> <'//user'> <Id.Lit_Colon ':'> <passw> <Id.Lit_Splice '@rd'> 
          <Id.Lit_Splice '@host'> <'/foo'> <Id.Lit_Splice '@bar'> <.git>
        }
        {<foo> <Id.Lit_Splice '@bar'>}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_clone_dir>
      more_env: []
      words: [
        {<test_clone_dir>}
        {<host> <Id.Lit_Colon ':'> <'/foo'> <Id.Lit_Splice '@bar'>}
        {<foo> <Id.Lit_Splice '@bar'>}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_clone_dir>
      more_env: []
      words: [
        {<test_clone_dir>}
        {<host> <Id.Lit_Colon ':'> <'/foo'> <Id.Lit_Splice '@bar'> <.git>}
        {<foo> <Id.Lit_Splice '@bar'>}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_clone_dir>
      more_env: []
      words: [
        {<test_clone_dir>}
        {<user> <Id.Lit_Colon ':'> <password> <Id.Lit_Splice '@host'> <Id.Lit_Colon ':'> <'/foo'> 
          <Id.Lit_Splice '@bar'>
        }
        {<foo> <Id.Lit_Splice '@bar'>}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_clone_dir>
      more_env: []
      words: [
        {<test_clone_dir>}
        {<user> <Id.Lit_Colon ':'> <passw> <Id.Lit_Splice '@rd'> <Id.Lit_Splice '@host'> 
          <Id.Lit_Colon ':'> <'/foo'> <Id.Lit_Splice '@bar'> <.git>
        }
        {<foo> <Id.Lit_Splice '@bar'>}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_clone_dir>
      more_env: []
      words: [
        {<test_clone_dir>}
        {<ssh> <Id.Lit_Colon ':'> <'//user'> <Id.Lit_Colon ':'> <password> <Id.Lit_Splice '@host'> 
          <'/test'> <Id.Lit_Colon ':'> <1234>
        }
        {<1234>}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_clone_dir>
      more_env: []
      words: [
        {<test_clone_dir>}
        {<ssh> <Id.Lit_Colon ':'> <'//user'> <Id.Lit_Colon ':'> <password> <Id.Lit_Splice '@host'> 
          <'/test'> <Id.Lit_Colon ':'> <1234.git>
        }
        {<1234>}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_done>
      more_env: []
      words: [{<test_done>}]
      redirects: []
      do_fork: T
    )
  ]
)