]>
Commit | Line | Data |
---|---|---|
dace6e44 ML |
1 | #!/bin/sh |
2 | ||
3 | test_description='test git rev-parse' | |
4 | . ./test-lib.sh | |
5 | ||
6 | test_rev_parse() { | |
7 | name=$1 | |
8 | shift | |
9 | ||
10 | test_expect_success "$name: is-bare-repository" \ | |
11 | "test '$1' = \"\$(git rev-parse --is-bare-repository)\"" | |
12 | shift | |
13 | [ $# -eq 0 ] && return | |
14 | ||
15 | test_expect_success "$name: is-inside-git-dir" \ | |
16 | "test '$1' = \"\$(git rev-parse --is-inside-git-dir)\"" | |
17 | shift | |
18 | [ $# -eq 0 ] && return | |
19 | ||
6c56049f ML |
20 | test_expect_success "$name: is-inside-work-tree" \ |
21 | "test '$1' = \"\$(git rev-parse --is-inside-work-tree)\"" | |
22 | shift | |
23 | [ $# -eq 0 ] && return | |
24 | ||
dace6e44 ML |
25 | test_expect_success "$name: prefix" \ |
26 | "test '$1' = \"\$(git rev-parse --show-prefix)\"" | |
27 | shift | |
28 | [ $# -eq 0 ] && return | |
8fb3c00d SG |
29 | |
30 | test_expect_success "$name: git-dir" \ | |
31 | "test '$1' = \"\$(git rev-parse --git-dir)\"" | |
32 | shift | |
33 | [ $# -eq 0 ] && return | |
dace6e44 ML |
34 | } |
35 | ||
8fb3c00d SG |
36 | # label is-bare is-inside-git is-inside-work prefix git-dir |
37 | ||
38 | ROOT=$(pwd) | |
7efeb8f0 | 39 | |
db7fee87 | 40 | test_rev_parse toplevel false false true '' .git |
dace6e44 ML |
41 | |
42 | cd .git || exit 1 | |
db7fee87 | 43 | test_rev_parse .git/ false true false '' . |
dace6e44 | 44 | cd objects || exit 1 |
8fb3c00d | 45 | test_rev_parse .git/objects/ false true false '' "$ROOT/.git" |
dace6e44 ML |
46 | cd ../.. || exit 1 |
47 | ||
48 | mkdir -p sub/dir || exit 1 | |
49 | cd sub/dir || exit 1 | |
db7fee87 | 50 | test_rev_parse subdirectory false false true sub/dir/ "$ROOT/.git" |
dace6e44 ML |
51 | cd ../.. || exit 1 |
52 | ||
53 | git config core.bare true | |
e90fdc39 | 54 | test_rev_parse 'core.bare = true' true false false |
dace6e44 ML |
55 | |
56 | git config --unset core.bare | |
6c56049f | 57 | test_rev_parse 'core.bare undefined' false false true |
dace6e44 ML |
58 | |
59 | mkdir work || exit 1 | |
60 | cd work || exit 1 | |
0e46e704 BD |
61 | GIT_DIR=../.git |
62 | GIT_CONFIG="$(pwd)"/../.git/config | |
63 | export GIT_DIR GIT_CONFIG | |
dace6e44 ML |
64 | |
65 | git config core.bare false | |
7efeb8f0 | 66 | test_rev_parse 'GIT_DIR=../.git, core.bare = false' false false true '' |
dace6e44 ML |
67 | |
68 | git config core.bare true | |
e90fdc39 | 69 | test_rev_parse 'GIT_DIR=../.git, core.bare = true' true false false '' |
dace6e44 ML |
70 | |
71 | git config --unset core.bare | |
7efeb8f0 | 72 | test_rev_parse 'GIT_DIR=../.git, core.bare undefined' false false true '' |
dace6e44 ML |
73 | |
74 | mv ../.git ../repo.git || exit 1 | |
0e46e704 BD |
75 | GIT_DIR=../repo.git |
76 | GIT_CONFIG="$(pwd)"/../repo.git/config | |
dace6e44 ML |
77 | |
78 | git config core.bare false | |
6c56049f | 79 | test_rev_parse 'GIT_DIR=../repo.git, core.bare = false' false false true '' |
dace6e44 ML |
80 | |
81 | git config core.bare true | |
e90fdc39 | 82 | test_rev_parse 'GIT_DIR=../repo.git, core.bare = true' true false false '' |
dace6e44 ML |
83 | |
84 | git config --unset core.bare | |
e90fdc39 | 85 | test_rev_parse 'GIT_DIR=../repo.git, core.bare undefined' false false true '' |
dace6e44 ML |
86 | |
87 | test_done |