(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 update-index nonsense-path test.\n'> <'\n'> 
                <'This test creates the following structure in the cache:\n'> <'\n'> <'    path0       - a file\n'> <'    path1       - a symlink\n'> 
                <'    path2/file2 - a file in a directory\n'> <'    path3/file3 - a file in a directory\n'> <'\n'> 
                <'and tries to git update-index --add the following:\n'> <'\n'> <'    path0/file0 - a file in a directory\n'> <'    path1/file1 - a file in a directory\n'> 
                <'    path2       - a file\n'> <'    path3       - a symlink\n'> <'\n'> <'All of the attempts should fail.\n'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <.>
      more_env: []
      words: [{<.>} {<'./test-lib.sh'>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <mkdir>
      more_env: []
      words: [{<mkdir>} {<path2>} {<path3>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <date>
      more_env: []
      words: [{<date>}]
      redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<path0>})]
      do_fork: T
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Simple
                  blame_tok: <test_have_prereq>
                  more_env: []
                  words: [{<test_have_prereq>} {<SYMLINKS>}]
                  redirects: []
                  do_fork: T
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <ln>
              more_env: []
              words: [{<ln>} {<-s>} {<xyzzy>} {<path1>}]
              redirects: []
              do_fork: T
            )
          ]
          spids: [51 57]
        )
      ]
      else_kw: <Id.KW_Else else>
      else_action: [
        (command.Simple
          blame_tok: <date>
          more_env: []
          words: [{<date>}]
          redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<path1>})]
          do_fork: T
        )
      ]
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.Simple
      blame_tok: <date>
      more_env: []
      words: [{<date>}]
      redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'path2/file2'>})]
      do_fork: T
    )
    (command.Simple
      blame_tok: <date>
      more_env: []
      words: [{<date>}]
      redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'path3/file3'>})]
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'git update-index --add to add various paths.'>)}
        {(SQ <'git update-index --add -- path0 path1 path2/file2 path3/file3'>)}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <rm>
      more_env: []
      words: [{<rm>} {<-fr>} {<path> <Id.Lit_QMark '?'>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <mkdir>
      more_env: []
      words: [{<mkdir>} {<path0>} {<path1>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <date>
      more_env: []
      words: [{<date>}]
      redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<path2>})]
      do_fork: T
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Simple
                  blame_tok: <test_have_prereq>
                  more_env: []
                  words: [{<test_have_prereq>} {<SYMLINKS>}]
                  redirects: []
                  do_fork: T
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <ln>
              more_env: []
              words: [{<ln>} {<-s>} {<frotz>} {<path3>}]
              redirects: []
              do_fork: T
            )
          ]
          spids: [124 130]
        )
      ]
      else_kw: <Id.KW_Else else>
      else_action: [
        (command.Simple
          blame_tok: <date>
          more_env: []
          words: [{<date>}]
          redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<path3>})]
          do_fork: T
        )
      ]
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.Simple
      blame_tok: <date>
      more_env: []
      words: [{<date>}]
      redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'path0/file0'>})]
      do_fork: T
    )
    (command.Simple
      blame_tok: <date>
      more_env: []
      words: [{<date>}]
      redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'path1/file1'>})]
      do_fork: T
    )
    (command.ForEach
      keyword: <Id.KW_For for>
      iter_names: [p]
      iterable: (for_iter.Words words:[{<'path0/file0'>} {<'path1/file1'>} {<path2>} {<path3>}])
      body: 
        (command.DoGroup
          left: <Id.KW_Do do>
          children: [
            (command.Simple
              blame_tok: <test_expect_success>
              more_env: []
              words: [
                {<test_expect_success>}
                {
                  (DQ <'git update-index to add conflicting path '> ($ Id.VSub_DollarName p) 
                    <' should fail.'>
                  )
                }
                {(DQ <'test_must_fail git update-index --add -- '> ($ Id.VSub_DollarName p))}
              ]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.KW_Done done>
        )
      redirects: []
    )
    (command.Simple
      blame_tok: <test_done>
      more_env: []
      words: [{<test_done>}]
      redirects: []
      do_fork: T
    )
  ]
)