t0033: add tests for safe.directory
It is difficult to change the ownership on a directory in our test suite, so insert a new GIT_TEST_ASSUME_DIFFERENT_OWNER environment variable to trick Git into thinking we are in a differently-owned directory. This allows us to test that the config is parsed correctly. Signed-off-by: Derrick Stolee <derrickstolee@github.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
cb95038137
commit
e47363e5a8
3
setup.c
3
setup.c
@ -1053,7 +1053,8 @@ static int ensure_valid_ownership(const char *path)
|
|||||||
{
|
{
|
||||||
struct safe_directory_data data = { .path = path };
|
struct safe_directory_data data = { .path = path };
|
||||||
|
|
||||||
if (is_path_owned_by_current_user(path))
|
if (!git_env_bool("GIT_TEST_ASSUME_DIFFERENT_OWNER", 0) &&
|
||||||
|
is_path_owned_by_current_user(path))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
read_very_early_config(safe_directory_cb, &data);
|
read_very_early_config(safe_directory_cb, &data);
|
||||||
|
34
t/t0033-safe-directory.sh
Executable file
34
t/t0033-safe-directory.sh
Executable file
@ -0,0 +1,34 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
test_description='verify safe.directory checks'
|
||||||
|
|
||||||
|
. ./test-lib.sh
|
||||||
|
|
||||||
|
GIT_TEST_ASSUME_DIFFERENT_OWNER=1
|
||||||
|
export GIT_TEST_ASSUME_DIFFERENT_OWNER
|
||||||
|
|
||||||
|
expect_rejected_dir () {
|
||||||
|
test_must_fail git status 2>err &&
|
||||||
|
grep "safe.directory" err
|
||||||
|
}
|
||||||
|
|
||||||
|
test_expect_success 'safe.directory is not set' '
|
||||||
|
expect_rejected_dir
|
||||||
|
'
|
||||||
|
|
||||||
|
test_expect_success 'safe.directory does not match' '
|
||||||
|
git config --global safe.directory bogus &&
|
||||||
|
expect_rejected_dir
|
||||||
|
'
|
||||||
|
|
||||||
|
test_expect_success 'safe.directory matches' '
|
||||||
|
git config --global --add safe.directory "$(pwd)" &&
|
||||||
|
git status
|
||||||
|
'
|
||||||
|
|
||||||
|
test_expect_success 'safe.directory matches, but is reset' '
|
||||||
|
git config --global --add safe.directory "" &&
|
||||||
|
expect_rejected_dir
|
||||||
|
'
|
||||||
|
|
||||||
|
test_done
|
Loading…
x
Reference in New Issue
Block a user