(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_description)
          op: Equal
          rhs: {(SQ <"git update-index for gitlink to .git file.\n">)}
          spids: [13]
        )
      ]
      spids: [13]
    )
    (C {(.)} {(./test-lib.sh)})
    (C {(test_expect_success)} {(SQ <"submodule with absolute .git file">)} 
      {
        (SQ <"\n"> <"\tmkdir sub1 &&\n"> <"\t(cd sub1 &&\n"> <"\t git init &&\n"> 
          <"\t REAL=\"$(pwd)/.real\" &&\n"> <"\t mv .git \"$REAL\" &&\n"> <"\t echo \"gitdir: $REAL\" >.git &&\n"> <"\t test_commit first)\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"add gitlink to absolute .git file">)} 
      {(SQ <"\n"> <"\tgit update-index --add -- sub1\n">)}
    )
    (C {(test_expect_success)} {(SQ <"submodule with relative .git file">)} 
      {
        (SQ <"\n"> <"\tmkdir sub2 &&\n"> <"\t(cd sub2 &&\n"> <"\t git init &&\n"> 
          <"\t mv .git .real &&\n"> <"\t echo \"gitdir: .real\" >.git &&\n"> <"\t test_commit first)\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"add gitlink to relative .git file">)} 
      {(SQ <"\n"> <"\tgit update-index --add -- sub2\n">)}
    )
    (C {(test_done)})
  ]
)