Browse Source

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>
maint
Johannes Schindelin 8 years ago committed by Junio C Hamano
parent
commit
1a6ec1eb38
  1. 15
      t/helper/test-config.c
  2. 50
      t/t1309-early-config.sh

15
t/helper/test-config.c

@ -66,6 +66,16 @@ static int iterate_cb(const char *var, const char *value, void *data) @@ -66,6 +66,16 @@ static int iterate_cb(const char *var, const char *value, void *data)
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 i, val;
@ -73,6 +83,11 @@ int cmd_main(int argc, const char **argv) @@ -73,6 +83,11 @@ int cmd_main(int argc, const char **argv)
const struct string_list *strptr;
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();

git_configset_init(&cs);

50
t/t1309-early-config.sh

@ -0,0 +1,50 @@ @@ -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
Loading…
Cancel
Save