Git fork
at reftables-rust 99 lines 2.2 kB view raw
1#!/bin/sh 2 3test_description='Tests for rev-parse --prefix' 4 5GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main 6export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME 7 8. ./test-lib.sh 9 10test_expect_success 'setup' ' 11 mkdir -p sub1/sub2 && 12 echo top >top && 13 echo file1 >sub1/file1 && 14 echo file2 >sub1/sub2/file2 && 15 git add top sub1/file1 sub1/sub2/file2 && 16 git commit -m commit 17' 18 19test_expect_success 'empty prefix -- file' ' 20 git rev-parse --prefix "" -- top sub1/file1 >actual && 21 cat <<-\EOF >expected && 22 -- 23 top 24 sub1/file1 25 EOF 26 test_cmp expected actual 27' 28 29test_expect_success 'valid prefix -- file' ' 30 git rev-parse --prefix sub1/ -- file1 sub2/file2 >actual && 31 cat <<-\EOF >expected && 32 -- 33 sub1/file1 34 sub1/sub2/file2 35 EOF 36 test_cmp expected actual 37' 38 39test_expect_success 'valid prefix -- ../file' ' 40 git rev-parse --prefix sub1/ -- ../top sub2/file2 >actual && 41 cat <<-\EOF >expected && 42 -- 43 sub1/../top 44 sub1/sub2/file2 45 EOF 46 test_cmp expected actual 47' 48 49test_expect_success 'empty prefix HEAD:./path' ' 50 git rev-parse --prefix "" HEAD:./top >actual && 51 git rev-parse HEAD:top >expected && 52 test_cmp expected actual 53' 54 55test_expect_success 'valid prefix HEAD:./path' ' 56 git rev-parse --prefix sub1/ HEAD:./file1 >actual && 57 git rev-parse HEAD:sub1/file1 >expected && 58 test_cmp expected actual 59' 60 61test_expect_success 'valid prefix HEAD:../path' ' 62 git rev-parse --prefix sub1/ HEAD:../top >actual && 63 git rev-parse HEAD:top >expected && 64 test_cmp expected actual 65' 66 67test_expect_success 'prefix ignored with HEAD:top' ' 68 git rev-parse --prefix sub1/ HEAD:top >actual && 69 git rev-parse HEAD:top >expected && 70 test_cmp expected actual 71' 72 73test_expect_success 'disambiguate path with valid prefix' ' 74 git rev-parse --prefix sub1/ file1 >actual && 75 cat <<-\EOF >expected && 76 sub1/file1 77 EOF 78 test_cmp expected actual 79' 80 81test_expect_success 'file and refs with prefix' ' 82 git rev-parse --prefix sub1/ main file1 >actual && 83 cat <<-EOF >expected && 84 $(git rev-parse main) 85 sub1/file1 86 EOF 87 test_cmp expected actual 88' 89 90test_expect_success 'two-levels deep' ' 91 git rev-parse --prefix sub1/sub2/ -- file2 >actual && 92 cat <<-\EOF >expected && 93 -- 94 sub1/sub2/file2 95 EOF 96 test_cmp expected actual 97' 98 99test_done