(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:'pulling from symlinked subdir' span_id:6))}
          spids: [4]
        )
      ]
    )
    (C {(.)} {(./test-lib.sh)})
    (C {(test_expect_success)} {(SYMLINKS)} {(setup)} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:50) 
          (Token id:Id.Lit_Chars val:'\tmkdir subdir &&\n' span_id:51) (Token id:Id.Lit_Chars val:'\techo file >subdir/file &&\n' span_id:52) 
          (Token id:Id.Lit_Chars val:'\tgit add subdir/file &&\n' span_id:53) (Token id:Id.Lit_Chars val:'\tgit commit -q -m file &&\n' span_id:54) 
          (Token id:Id.Lit_Chars val:'\tgit clone -q . clone-repo &&\n' span_id:55) (Token id:Id.Lit_Chars val:'\tln -s clone-repo/subdir/ subdir-link &&\n' span_id:56) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:57) (Token id:Id.Lit_Chars val:'\t\tcd clone-repo &&\n' span_id:58) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit config receive.denyCurrentBranch warn\n'
            span_id: 59
          ) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:60) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit config receive.denyCurrentBranch warn\n'
            span_id: 61
          )
        )
      }
    )
    (C {(test_expect_success)} {(SYMLINKS)} 
      {(SQ (Token id:Id.Lit_Chars val:'pulling from real subdir' span_id:76))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:80) (Token id:Id.Lit_Chars val:'\t(\n' span_id:81) 
          (Token id:Id.Lit_Chars val:'\t\techo real >subdir/file &&\n' span_id:82) (Token id:Id.Lit_Chars val:'\t\tgit commit -m real subdir/file &&\n' span_id:83) 
          (Token id:Id.Lit_Chars val:'\t\tcd clone-repo/subdir/ &&\n' span_id:84) (Token id:Id.Lit_Chars val:'\t\tgit pull &&\n' span_id:85) 
          (Token id:Id.Lit_Chars val:'\t\ttest real = $(cat file)\n' span_id:86) (Token id:Id.Lit_Chars val:'\t)\n' span_id:87)
        )
      }
    )
    (C {(test_expect_success)} {(SYMLINKS)} 
      {(SQ (Token id:Id.Lit_Chars val:'pulling from symlinked subdir' span_id:150))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:154) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:155) (Token id:Id.Lit_Chars val:'\t\techo link >subdir/file &&\n' span_id:156) 
          (Token id:Id.Lit_Chars val:'\t\tgit commit -m link subdir/file &&\n' span_id:157) (Token id:Id.Lit_Chars val:'\t\tcd subdir-link/ &&\n' span_id:158) 
          (Token id:Id.Lit_Chars val:'\t\tgit pull &&\n' span_id:159) (Token id:Id.Lit_Chars val:'\t\ttest link = $(cat file)\n' span_id:160) 
          (Token id:Id.Lit_Chars val:'\t)\n' span_id:161)
        )
      }
    )
    (C {(test_expect_success)} {(SYMLINKS)} 
      {(SQ (Token id:Id.Lit_Chars val:'pushing from symlinked subdir' span_id:179))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:183) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:184) (Token id:Id.Lit_Chars val:'\t\tcd subdir-link/ &&\n' span_id:185) 
          (Token id:Id.Lit_Chars val:'\t\techo push >file &&\n' span_id:186) (Token id:Id.Lit_Chars val:'\t\tgit commit -m push ./file &&\n' span_id:187) 
          (Token id:Id.Lit_Chars val:'\t\tgit push\n' span_id:188) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:189) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest push = $(git show HEAD:subdir/file)\n'
            span_id: 190
          )
        )
      }
    )
    (C {(test_done)})
  ]
)