(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:test_description)
          op: assign_op.Equal
          rhs: 
            {
              (SQ 
                (Token
                  id: Id.Lit_Chars
                  val: 'git update-index for gitlink to .git file.\n'
                  span_id: 15
                )
              )
            }
          spids: [13]
        )
      ]
    )
    (C {(.)} {(./test-lib.sh)})
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'submodule with absolute .git file' span_id:27))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:31) 
          (Token id:Id.Lit_Chars val:'\tmkdir sub1 &&\n' span_id:32) (Token id:Id.Lit_Chars val:'\t(cd sub1 &&\n' span_id:33) 
          (Token id:Id.Lit_Chars val:'\t git init &&\n' span_id:34) (Token id:Id.Lit_Chars val:'\t REAL="$(pwd)/.real" &&\n' span_id:35) 
          (Token id:Id.Lit_Chars val:'\t mv .git "$REAL" &&\n' span_id:36) (Token id:Id.Lit_Chars val:'\t echo "gitdir: $REAL" >.git &&\n' span_id:37) 
          (Token id:Id.Lit_Chars val:'\t test_commit first)\n' span_id:38)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'add gitlink to absolute .git file' span_id:45))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:49) 
          (Token id:Id.Lit_Chars val:'\tgit update-index --add -- sub1\n' span_id:50)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'submodule with relative .git file' span_id:57))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:61) 
          (Token id:Id.Lit_Chars val:'\tmkdir sub2 &&\n' span_id:62) (Token id:Id.Lit_Chars val:'\t(cd sub2 &&\n' span_id:63) 
          (Token id:Id.Lit_Chars val:'\t git init &&\n' span_id:64) (Token id:Id.Lit_Chars val:'\t mv .git .real &&\n' span_id:65) 
          (Token id:Id.Lit_Chars val:'\t echo "gitdir: .real" >.git &&\n' span_id:66) (Token id:Id.Lit_Chars val:'\t test_commit first)\n' span_id:67)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'add gitlink to relative .git file' span_id:74))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:78) 
          (Token id:Id.Lit_Chars val:'\tgit update-index --add -- sub2\n' span_id:79)
        )
      }
    )
    (C {(test_done)})
  ]
)