(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: 'update-index and add refuse to add beyond symlinks' 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:22) (Token id:Id.Lit_Chars val:'\t>a &&\n' span_id:23) (Token id:Id.Lit_Chars val:'\tmkdir b &&\n' span_id:24) (Token id:Id.Lit_Chars val:'\tln -s b c &&\n' span_id:25) (Token id:Id.Lit_Chars val:'\t>c/d &&\n' span_id:26) (Token id:Id.Lit_Chars val:'\tgit update-index --add a b/d\n' span_id:27) ) } ) (C {(test_expect_success)} {(SYMLINKS)} {(SQ (Token id:Id.Lit_Chars val:'update-index --add beyond symlinks' span_id:36))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:40) (Token id: Id.Lit_Chars val: '\ttest_must_fail git update-index --add c/d &&\n' span_id: 41 ) (Token id:Id.Lit_Chars val:'\t! ( git ls-files | grep c/d )\n' span_id:42) ) } ) (C {(test_expect_success)} {(SYMLINKS)} {(SQ (Token id:Id.Lit_Chars val:'add beyond symlinks' span_id:51))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:55) (Token id:Id.Lit_Chars val:'\ttest_must_fail git add c/d &&\n' span_id:56) (Token id:Id.Lit_Chars val:'\t! ( git ls-files | grep c/d )\n' span_id:57) ) } ) (C {(test_done)}) ] )