t1309: test read_early_config()
So far, we had no explicit tests of that function. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
1a27409ae8
commit
1a6ec1eb38
@ -66,6 +66,16 @@ static int iterate_cb(const char *var, const char *value, void *data)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int early_config_cb(const char *var, const char *value, void *vdata)
|
||||||
|
{
|
||||||
|
const char *key = vdata;
|
||||||
|
|
||||||
|
if (!strcmp(key, var))
|
||||||
|
printf("%s\n", value);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
int cmd_main(int argc, const char **argv)
|
int cmd_main(int argc, const char **argv)
|
||||||
{
|
{
|
||||||
int i, val;
|
int i, val;
|
||||||
@ -73,6 +83,11 @@ int cmd_main(int argc, const char **argv)
|
|||||||
const struct string_list *strptr;
|
const struct string_list *strptr;
|
||||||
struct config_set cs;
|
struct config_set cs;
|
||||||
|
|
||||||
|
if (argc == 3 && !strcmp(argv[1], "read_early_config")) {
|
||||||
|
read_early_config(early_config_cb, (void *)argv[2]);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
setup_git_directory();
|
setup_git_directory();
|
||||||
|
|
||||||
git_configset_init(&cs);
|
git_configset_init(&cs);
|
||||||
|
50
t/t1309-early-config.sh
Executable file
50
t/t1309-early-config.sh
Executable file
@ -0,0 +1,50 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
test_description='Test read_early_config()'
|
||||||
|
|
||||||
|
. ./test-lib.sh
|
||||||
|
|
||||||
|
test_expect_success 'read early config' '
|
||||||
|
test_config early.config correct &&
|
||||||
|
test-config read_early_config early.config >output &&
|
||||||
|
test correct = "$(cat output)"
|
||||||
|
'
|
||||||
|
|
||||||
|
test_expect_success 'in a sub-directory' '
|
||||||
|
test_config early.config sub &&
|
||||||
|
mkdir -p sub &&
|
||||||
|
(
|
||||||
|
cd sub &&
|
||||||
|
test-config read_early_config early.config
|
||||||
|
) >output &&
|
||||||
|
test sub = "$(cat output)"
|
||||||
|
'
|
||||||
|
|
||||||
|
test_expect_success 'ceiling' '
|
||||||
|
test_config early.config ceiling &&
|
||||||
|
mkdir -p sub &&
|
||||||
|
(
|
||||||
|
GIT_CEILING_DIRECTORIES="$PWD" &&
|
||||||
|
export GIT_CEILING_DIRECTORIES &&
|
||||||
|
cd sub &&
|
||||||
|
test-config read_early_config early.config
|
||||||
|
) >output &&
|
||||||
|
test -z "$(cat output)"
|
||||||
|
'
|
||||||
|
|
||||||
|
test_expect_success 'ceiling #2' '
|
||||||
|
mkdir -p xdg/git &&
|
||||||
|
git config -f xdg/git/config early.config xdg &&
|
||||||
|
test_config early.config ceiling &&
|
||||||
|
mkdir -p sub &&
|
||||||
|
(
|
||||||
|
XDG_CONFIG_HOME="$PWD"/xdg &&
|
||||||
|
GIT_CEILING_DIRECTORIES="$PWD" &&
|
||||||
|
export GIT_CEILING_DIRECTORIES XDG_CONFIG_HOME &&
|
||||||
|
cd sub &&
|
||||||
|
test-config read_early_config early.config
|
||||||
|
) >output &&
|
||||||
|
test xdg = "$(cat output)"
|
||||||
|
'
|
||||||
|
|
||||||
|
test_done
|
Reference in New Issue
Block a user