(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:16777215 arg_word:{(path0)} spids:[48])]
    )
    (If
      arms: [
        (if_arm
          cond: [(C {(test_have_prereq)} {(SYMLINKS)})]
          action: [(C {(ln)} {(-s)} {(xyzzy)} {(path1)})]
          spids: [16777215 57]
        )
      ]
      else_action: [
        (SimpleCommand
          words: [{(date)}]
          redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(path1)} spids:[73])]
        )
      ]
      spids: [68 77]
    )
    (SimpleCommand
      words: [{(date)}]
      redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(path2/file2)} spids:[81])]
    )
    (SimpleCommand
      words: [{(date)}]
      redirects: [(Redir op_id:Redir_Great fd:16777215 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:16777215 arg_word:{(path2)} spids:[121])]
    )
    (If
      arms: [
        (if_arm
          cond: [(C {(test_have_prereq)} {(SYMLINKS)})]
          action: [(C {(ln)} {(-s)} {(frotz)} {(path3)})]
          spids: [16777215 130]
        )
      ]
      else_action: [
        (SimpleCommand
          words: [{(date)}]
          redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(path3)} spids:[146])]
        )
      ]
      spids: [141 150]
    )
    (SimpleCommand
      words: [{(date)}]
      redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(path0/file0)} spids:[154])]
    )
    (SimpleCommand
      words: [{(date)}]
      redirects: [(Redir op_id:Redir_Great fd:16777215 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 16777215]
    )
    (C {(test_done)})
  ]
)