зеркало из https://github.com/microsoft/git.git
t1515: add tests for rev-parse out-of-repo helpers
The git-rev-parse command is a dumping ground for helpers that let scripts make various queries of git. Many of these are conceptually independent of being inside a git repository. With the exception of --parseopt, we do not directly test most of these features in our test suite. Let's give them some basic sanity checks, which reveals that some of them have been broken for some time when run from outside a repository. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Родитель
326e5bc91e
Коммит
a4e21fb4dc
|
@ -0,0 +1,45 @@
|
|||
#!/bin/sh
|
||||
|
||||
test_description='check that certain rev-parse options work outside repo'
|
||||
. ./test-lib.sh
|
||||
|
||||
test_expect_success 'set up non-repo directory' '
|
||||
GIT_CEILING_DIRECTORIES=$(pwd) &&
|
||||
export GIT_CEILING_DIRECTORIES &&
|
||||
mkdir non-repo &&
|
||||
cd non-repo &&
|
||||
# confirm that git does not find a repo
|
||||
test_must_fail git rev-parse --git-dir
|
||||
'
|
||||
|
||||
# Rather than directly test the output of sq-quote directly,
|
||||
# make sure the shell can read back a tricky case, since
|
||||
# that's what we really care about anyway.
|
||||
tricky="really tricky with \\ and \" and '"
|
||||
dump_args () {
|
||||
for i in "$@"; do
|
||||
echo "arg: $i"
|
||||
done
|
||||
}
|
||||
test_expect_success 'rev-parse --sq-quote' '
|
||||
dump_args "$tricky" easy >expect &&
|
||||
eval "dump_args $(git rev-parse --sq-quote "$tricky" easy)" >actual &&
|
||||
test_cmp expect actual
|
||||
'
|
||||
|
||||
test_expect_failure 'rev-parse --local-env-vars' '
|
||||
git rev-parse --local-env-vars >actual &&
|
||||
# we do not want to depend on the complete list here,
|
||||
# so just look for something plausible
|
||||
grep ^GIT_DIR actual
|
||||
'
|
||||
|
||||
test_expect_failure 'rev-parse --resolve-git-dir' '
|
||||
git init --separate-git-dir repo dir &&
|
||||
test_must_fail git rev-parse --resolve-git-dir . &&
|
||||
echo "$(pwd)/repo" >expect &&
|
||||
git rev-parse --resolve-git-dir dir/.git >actual &&
|
||||
test_cmp expect actual
|
||||
'
|
||||
|
||||
test_done
|
Загрузка…
Ссылка в новой задаче