diff options
author | Ævar Arnfjörð Bjarmason <avarab@gmail.com> | 2023-03-28 17:04:26 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2023-03-28 17:37:53 +0300 |
commit | 1c7e239bd0bc91d6296835e30fa597b8c56e752d (patch) | |
tree | 094db4d43dedd535714f1145b25f430d04872767 /t/t7413-submodule-is-active.sh | |
parent | f7b2ff95163247a3ec437f0ce78bb27cdac68b75 (diff) |
config API users: test for *_get_value_multi() segfaults
As we'll discuss in the subsequent commit these tests all
show *_get_value_multi() API users unable to handle there being a
value-less key in the config, which is represented with a "NULL" for
that entry in the "string" member of the returned "struct
string_list", causing a segfault.
These added tests exhaustively test for that issue, as we'll see in a
subsequent commit we'll need to change all of the API users
of *_get_value_multi(). These cases were discovered by triggering each
one individually, and then adding these tests.
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t7413-submodule-is-active.sh')
-rwxr-xr-x | t/t7413-submodule-is-active.sh | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/t/t7413-submodule-is-active.sh b/t/t7413-submodule-is-active.sh index 7cdc263764..bfe27e5073 100755 --- a/t/t7413-submodule-is-active.sh +++ b/t/t7413-submodule-is-active.sh @@ -51,6 +51,18 @@ test_expect_success 'is-active works with submodule.<name>.active config' ' test-tool -C super submodule is-active sub1 ' +test_expect_failure 'is-active handles submodule.active config missing a value' ' + cp super/.git/config super/.git/config.orig && + test_when_finished mv super/.git/config.orig super/.git/config && + + cat >>super/.git/config <<-\EOF && + [submodule] + active + EOF + + test-tool -C super submodule is-active sub1 +' + test_expect_success 'is-active works with basic submodule.active config' ' test_when_finished "git -C super config submodule.sub1.URL ../sub" && test_when_finished "git -C super config --unset-all submodule.active" && |