(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_description) op: Equal rhs: {(SQ <"Tests for rev-parse --prefix">)} spids: [4] ) ] spids: [4] ) (C {(.)} {(./test-lib.sh)}) (C {(test_expect_success)} {(SQ <setup>)} { (SQ <"\n"> <"\tmkdir -p sub1/sub2 &&\n"> <"\techo top >top &&\n"> <"\techo file1 >sub1/file1 &&\n"> <"\techo file2 >sub1/sub2/file2 &&\n"> <"\tgit add top sub1/file1 sub1/sub2/file2 &&\n"> <"\tgit commit -m commit\n"> ) } ) (C {(test_expect_success)} {(SQ <"empty prefix -- file">)} { (SQ <"\n"> <"\tgit rev-parse --prefix \"\" -- top sub1/file1 >actual &&\n"> <"\tcat <<-\\EOF >expected &&\n"> <"\t--\n"> <"\ttop\n"> <"\tsub1/file1\n"> <"\tEOF\n"> <"\ttest_cmp expected actual\n"> ) } ) (C {(test_expect_success)} {(SQ <"valid prefix -- file">)} { (SQ <"\n"> <"\tgit rev-parse --prefix sub1/ -- file1 sub2/file2 >actual &&\n"> <"\tcat <<-\\EOF >expected &&\n"> <"\t--\n"> <"\tsub1/file1\n"> <"\tsub1/sub2/file2\n"> <"\tEOF\n"> <"\ttest_cmp expected actual\n"> ) } ) (C {(test_expect_success)} {(SQ <"valid prefix -- ../file">)} { (SQ <"\n"> <"\tgit rev-parse --prefix sub1/ -- ../top sub2/file2 >actual &&\n"> <"\tcat <<-\\EOF >expected &&\n"> <"\t--\n"> <"\tsub1/../top\n"> <"\tsub1/sub2/file2\n"> <"\tEOF\n"> <"\ttest_cmp expected actual\n"> ) } ) (C {(test_expect_success)} {(SQ <"empty prefix HEAD:./path">)} { (SQ <"\n"> <"\tgit rev-parse --prefix \"\" HEAD:./top >actual &&\n"> <"\tgit rev-parse HEAD:top >expected &&\n"> <"\ttest_cmp expected actual\n"> ) } ) (C {(test_expect_success)} {(SQ <"valid prefix HEAD:./path">)} { (SQ <"\n"> <"\tgit rev-parse --prefix sub1/ HEAD:./file1 >actual &&\n"> <"\tgit rev-parse HEAD:sub1/file1 >expected &&\n"> <"\ttest_cmp expected actual\n"> ) } ) (C {(test_expect_success)} {(SQ <"valid prefix HEAD:../path">)} { (SQ <"\n"> <"\tgit rev-parse --prefix sub1/ HEAD:../top >actual &&\n"> <"\tgit rev-parse HEAD:top >expected &&\n"> <"\ttest_cmp expected actual\n"> ) } ) (C {(test_expect_success)} {(SQ <"prefix ignored with HEAD:top">)} { (SQ <"\n"> <"\tgit rev-parse --prefix sub1/ HEAD:top >actual &&\n"> <"\tgit rev-parse HEAD:top >expected &&\n"> <"\ttest_cmp expected actual\n"> ) } ) (C {(test_expect_success)} {(SQ <"disambiguate path with valid prefix">)} { (SQ <"\n"> <"\tgit rev-parse --prefix sub1/ file1 >actual &&\n"> <"\tcat <<-\\EOF >expected &&\n"> <"\tsub1/file1\n"> <"\tEOF\n"> <"\ttest_cmp expected actual\n"> ) } ) (C {(test_expect_success)} {(SQ <"file and refs with prefix">)} { (SQ <"\n"> <"\tgit rev-parse --prefix sub1/ master file1 >actual &&\n"> <"\tcat <<-EOF >expected &&\n"> <"\t$(git rev-parse master)\n"> <"\tsub1/file1\n"> <"\tEOF\n"> <"\ttest_cmp expected actual\n"> ) } ) (C {(test_expect_success)} {(SQ <"two-levels deep">)} { (SQ <"\n"> <"\tgit rev-parse --prefix sub1/sub2/ -- file2 >actual &&\n"> <"\tcat <<-\\EOF >expected &&\n"> <"\t--\n"> <"\tsub1/sub2/file2\n"> <"\tEOF\n"> <"\ttest_cmp expected actual\n"> ) } ) (C {(test_done)}) ] )