]>
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 | |
29 | } | |
30 | ||
6c56049f | 31 | test_rev_parse toplevel false false true '' |
dace6e44 ML |
32 | |
33 | cd .git || exit 1 | |
e90fdc39 | 34 | test_rev_parse .git/ true true false '' |
dace6e44 | 35 | cd objects || exit 1 |
e90fdc39 | 36 | test_rev_parse .git/objects/ true true false '' |
dace6e44 ML |
37 | cd ../.. || exit 1 |
38 | ||
39 | mkdir -p sub/dir || exit 1 | |
40 | cd sub/dir || exit 1 | |
6c56049f | 41 | test_rev_parse subdirectory false false true sub/dir/ |
dace6e44 ML |
42 | cd ../.. || exit 1 |
43 | ||
44 | git config core.bare true | |
e90fdc39 | 45 | test_rev_parse 'core.bare = true' true false false |
dace6e44 ML |
46 | |
47 | git config --unset core.bare | |
6c56049f | 48 | test_rev_parse 'core.bare undefined' false false true |
dace6e44 ML |
49 | |
50 | mkdir work || exit 1 | |
51 | cd work || exit 1 | |
52 | export GIT_DIR=../.git | |
e90fdc39 | 53 | export GIT_CONFIG="$(pwd)"/../.git/config |
dace6e44 ML |
54 | |
55 | git config core.bare false | |
e90fdc39 | 56 | test_rev_parse 'GIT_DIR=../.git, core.bare = false' false false true work/ |
dace6e44 ML |
57 | |
58 | git config core.bare true | |
e90fdc39 | 59 | test_rev_parse 'GIT_DIR=../.git, core.bare = true' true false false '' |
dace6e44 ML |
60 | |
61 | git config --unset core.bare | |
e90fdc39 | 62 | test_rev_parse 'GIT_DIR=../.git, core.bare undefined' false false true work/ |
dace6e44 ML |
63 | |
64 | mv ../.git ../repo.git || exit 1 | |
65 | export GIT_DIR=../repo.git | |
e90fdc39 | 66 | export GIT_CONFIG="$(pwd)"/../repo.git/config |
dace6e44 ML |
67 | |
68 | git config core.bare false | |
6c56049f | 69 | test_rev_parse 'GIT_DIR=../repo.git, core.bare = false' false false true '' |
dace6e44 ML |
70 | |
71 | git config core.bare true | |
e90fdc39 | 72 | test_rev_parse 'GIT_DIR=../repo.git, core.bare = true' true false false '' |
dace6e44 ML |
73 | |
74 | git config --unset core.bare | |
e90fdc39 | 75 | test_rev_parse 'GIT_DIR=../repo.git, core.bare undefined' false false true '' |
dace6e44 ML |
76 | |
77 | test_done |