(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_description)
          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">
              )
            }
          spids: [13]
        )
      ]
      spids: [13]
    )
    (C {(.)} {(./test-lib.sh)})
    (C {(mkdir)} {(path2)} {(path3)})
    (SimpleCommand
      words: [{(date)}]
      redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(path0)} spids:[48])]
    )
    (If
      arms: [
        (if_arm
          cond: [(C {(test_have_prereq)} {(SYMLINKS)})]
          action: [(C {(ln)} {(-s)} {(xyzzy)} {(path1)})]
          spids: [-1 57]
        )
      ]
      else_action: [
        (SimpleCommand
          words: [{(date)}]
          redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(path1)} spids:[73])]
        )
      ]
      spids: [68 77]
    )
    (SimpleCommand
      words: [{(date)}]
      redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(path2/file2)} spids:[81])]
    )
    (SimpleCommand
      words: [{(date)}]
      redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(path3/file3)} spids:[86])]
    )
    (C {(test_expect_success)} {(SQ <"git update-index --add to add various paths.">)} 
      {(SQ <"git update-index --add -- path0 path1 path2/file2 path3/file3">)}
    )
    (C {(rm)} {(-fr)} {(path) (Lit_Other "?")})
    (C {(mkdir)} {(path0)} {(path1)})
    (SimpleCommand
      words: [{(date)}]
      redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(path2)} spids:[121])]
    )
    (If
      arms: [
        (if_arm
          cond: [(C {(test_have_prereq)} {(SYMLINKS)})]
          action: [(C {(ln)} {(-s)} {(frotz)} {(path3)})]
          spids: [-1 130]
        )
      ]
      else_action: [
        (SimpleCommand
          words: [{(date)}]
          redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(path3)} spids:[146])]
        )
      ]
      spids: [141 150]
    )
    (SimpleCommand
      words: [{(date)}]
      redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(path0/file0)} spids:[154])]
    )
    (SimpleCommand
      words: [{(date)}]
      redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(path1/file1)} spids:[159])]
    )
    (ForEach
      iter_name: p
      iter_words: [{(path0/file0)} {(path1/file1)} {(path2)} {(path3)}]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (C {(test_expect_success)} 
              {
                (DQ ("git update-index to add conflicting path ") ($ VSub_Name "$p") (" should fail."))
              } {(DQ ("test_must_fail git update-index --add -- ") ($ VSub_Name "$p"))}
            )
          ]
          spids: [177 197]
        )
      spids: [168 -1]
    )
    (C {(test_done)})
  ]
)