(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:'tests for ref^{stuff}' span_id:6))} spids: [4] ) ] ) (C {(.)} {(./test-lib.sh)}) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:setup span_id:18))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:22) (Token id:Id.Lit_Chars val:'\techo blob >a-blob &&\n' span_id:23) (Token id: Id.Lit_Chars val: '\tgit tag -a -m blob blob-tag $(git hash-object -w a-blob) &&\n' span_id: 24 ) (Token id:Id.Lit_Chars val:'\tmkdir a-tree &&\n' span_id:25) (Token id: Id.Lit_Chars val: '\techo moreblobs >a-tree/another-blob &&\n' span_id: 26 ) (Token id:Id.Lit_Chars val:'\tgit add . &&\n' span_id:27) (Token id:Id.Lit_Chars val:'\tTREE_SHA1=$(git write-tree) &&\n' span_id:28) (Token id:Id.Lit_Chars val:'\tgit tag -a -m tree tree-tag "$TREE_SHA1" &&\n' span_id:29) (Token id:Id.Lit_Chars val:'\tgit commit -m Initial &&\n' span_id:30) (Token id:Id.Lit_Chars val:'\tgit tag -a -m commit commit-tag &&\n' span_id:31) (Token id:Id.Lit_Chars val:'\tgit branch ref &&\n' span_id:32) (Token id:Id.Lit_Chars val:'\tgit checkout master &&\n' span_id:33) (Token id:Id.Lit_Chars val:'\techo modified >>a-blob &&\n' span_id:34) (Token id:Id.Lit_Chars val:'\tgit add -u &&\n' span_id:35) (Token id:Id.Lit_Chars val:'\tgit commit -m Modified &&\n' span_id:36) (Token id:Id.Lit_Chars val:'\tgit branch modref &&\n' span_id:37) (Token id:Id.Lit_Chars val:'\techo changed! >>a-blob &&\n' span_id:38) (Token id:Id.Lit_Chars val:'\tgit add -u &&\n' span_id:39) (Token id:Id.Lit_Chars val:'\tgit commit -m !Exp &&\n' span_id:40) (Token id:Id.Lit_Chars val:'\tgit branch expref &&\n' span_id:41) (Token id:Id.Lit_Chars val:'\techo changed >>a-blob &&\n' span_id:42) (Token id:Id.Lit_Chars val:'\tgit add -u &&\n' span_id:43) (Token id:Id.Lit_Chars val:'\tgit commit -m Changed &&\n' span_id:44) (Token id:Id.Lit_Chars val:'\techo changed-again >>a-blob &&\n' span_id:45) (Token id:Id.Lit_Chars val:'\tgit add -u &&\n' span_id:46) (Token id:Id.Lit_Chars val:'\tgit commit -m Changed-again\n' span_id:47) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'ref^{non-existent}' span_id:54))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:58) (Token id: Id.Lit_Chars val: '\ttest_must_fail git rev-parse ref^{non-existent}\n' span_id: 59 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'ref^{}' span_id:66))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:70) (Token id:Id.Lit_Chars val:'\tgit rev-parse ref >expected &&\n' span_id:71) (Token id:Id.Lit_Chars val:'\tgit rev-parse ref^{} >actual &&\n' span_id:72) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual &&\n' span_id:73) (Token id:Id.Lit_Chars val:'\tgit rev-parse commit-tag^{} >actual &&\n' span_id:74) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:75) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'ref^{commit}' span_id:82))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:86) (Token id:Id.Lit_Chars val:'\tgit rev-parse ref >expected &&\n' span_id:87) (Token id:Id.Lit_Chars val:'\tgit rev-parse ref^{commit} >actual &&\n' span_id:88) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual &&\n' span_id:89) (Token id:Id.Lit_Chars val:'\tgit rev-parse commit-tag^{commit} >actual &&\n' span_id:90) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual &&\n' span_id:91) (Token id:Id.Lit_Chars val:'\ttest_must_fail git rev-parse tree-tag^{commit} &&\n' span_id:92) (Token id: Id.Lit_Chars val: '\ttest_must_fail git rev-parse blob-tag^{commit}\n' span_id: 93 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'ref^{tree}' span_id:100))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:104) (Token id:Id.Lit_Chars val:'\techo $TREE_SHA1 >expected &&\n' span_id:105) (Token id:Id.Lit_Chars val:'\tgit rev-parse ref^{tree} >actual &&\n' span_id:106) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual &&\n' span_id:107) (Token id:Id.Lit_Chars val:'\tgit rev-parse commit-tag^{tree} >actual &&\n' span_id:108) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual &&\n' span_id:109) (Token id:Id.Lit_Chars val:'\tgit rev-parse tree-tag^{tree} >actual &&\n' span_id:110) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual &&\n' span_id:111) (Token id:Id.Lit_Chars val:'\ttest_must_fail git rev-parse blob-tag^{tree}\n' span_id:112) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'ref^{tag}' span_id:119))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:123) (Token id: Id.Lit_Chars val: '\ttest_must_fail git rev-parse HEAD^{tag} &&\n' span_id: 124 ) (Token id:Id.Lit_Chars val:'\tgit rev-parse commit-tag >expected &&\n' span_id:125) (Token id: Id.Lit_Chars val: '\tgit rev-parse commit-tag^{tag} >actual &&\n' span_id: 126 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:127) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'ref^{/.}' span_id:134))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:138) (Token id:Id.Lit_Chars val:'\tgit rev-parse master >expected &&\n' span_id:139) (Token id:Id.Lit_Chars val:'\tgit rev-parse master^{/.} >actual &&\n' span_id:140) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:141) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'ref^{/non-existent}' span_id:148))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:152) (Token id: Id.Lit_Chars val: '\ttest_must_fail git rev-parse master^{/non-existent}\n' span_id: 153 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'ref^{/Initial}' span_id:160))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:164) (Token id:Id.Lit_Chars val:'\tgit rev-parse ref >expected &&\n' span_id:165) (Token id:Id.Lit_Chars val:'\tgit rev-parse master^{/Initial} >actual &&\n' span_id:166) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:167) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'ref^{/!Exp}' span_id:174))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:178) (Token id: Id.Lit_Chars val: '\ttest_must_fail git rev-parse master^{/!Exp}\n' span_id: 179 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'ref^{/!}' span_id:186))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:190) (Token id: Id.Lit_Chars val: '\ttest_must_fail git rev-parse master^{/!}\n' span_id: 191 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'ref^{/!!Exp}' span_id:198))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:202) (Token id:Id.Lit_Chars val:'\tgit rev-parse expref >expected &&\n' span_id:203) (Token id:Id.Lit_Chars val:'\tgit rev-parse master^{/!!Exp} >actual &&\n' span_id:204) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:205) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'ref^{/!-}' span_id:212))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:216) (Token id: Id.Lit_Chars val: '\ttest_must_fail git rev-parse master^{/!-}\n' span_id: 217 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'ref^{/!-.}' span_id:224))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:228) (Token id: Id.Lit_Chars val: '\ttest_must_fail git rev-parse master^{/!-.}\n' span_id: 229 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'ref^{/!-non-existent}' span_id:236))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:240) (Token id:Id.Lit_Chars val:'\tgit rev-parse master >expected &&\n' span_id:241) (Token id:Id.Lit_Chars val:'\tgit rev-parse master^{/!-non-existent} >actual &&\n' span_id:242) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:243) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'ref^{/!-Changed}' span_id:250))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:254) (Token id:Id.Lit_Chars val:'\tgit rev-parse expref >expected &&\n' span_id:255) (Token id:Id.Lit_Chars val:'\tgit rev-parse master^{/!-Changed} >actual &&\n' span_id:256) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:257) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'ref^{/!-!Exp}' span_id:264))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:268) (Token id:Id.Lit_Chars val:'\tgit rev-parse modref >expected &&\n' span_id:269) (Token id:Id.Lit_Chars val:'\tgit rev-parse expref^{/!-!Exp} >actual &&\n' span_id:270) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:271) ) } ) (C {(test_done)}) ] )