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