[PATCH 2/2] Better tests for error cases
From: Matthieu Moy <hidden>
Date: 2016-06-15 23:01:52
Subsystem:
the rest · Maintainer:
Linus Torvalds
Signed-off-by: Matthieu Moy <redacted> --- Consider squashing this into PATCH 2/2 Probably not sufficient. t/t1308-config-set.sh | 22 ++++++++++++++++++++++ test-config.c | 8 ++++++-- 2 files changed, 28 insertions(+), 2 deletions(-)
diff --git a/t/t1308-config-set.sh b/t/t1308-config-set.sh
index 87a29f1..f1e9e76 100755
--- a/t/t1308-config-set.sh
+++ b/t/t1308-config-set.sh@@ -167,4 +167,26 @@ test_expect_success 'find value_list for a key from a configset' ' test_cmp expect actual ' +test_expect_success 'proper error on non-existant files' ' + echo "Error reading configuration file non-existant-file." >expect && + test_must_fail test-config configset_get_value foo.bar non-existant-file 2>actual && + test_cmp expect actual +' + +test_expect_success 'proper error on error in default config files' ' + cp .git/config .git/config.old && + test_when_finished "mv .git/config.old .git/config" && + echo "[" >> .git/config && + echo "fatal: bad config file line 35 in .git/config" >expect && + test_must_fail test-config get_value foo.bar 2>actual && + test_cmp expect actual +' + +test_expect_success 'proper error on error in custom config files' ' + echo "[" >> syntax-error && + echo "fatal: bad config file line 1 in syntax-error" >expect && + test_must_fail test-config configset_get_value foo.bar syntax-error 2>actual && + test_cmp expect actual +' + test_done
diff --git a/test-config.c b/test-config.c
index 07b61ef..49f8cd7 100644
--- a/test-config.c
+++ b/test-config.c@@ -86,8 +86,10 @@ int main(int argc, char **argv) } } else if (!strcmp(argv[1], "configset_get_value")) { for (i = 3; i < argc; i++) { - if (git_configset_add_file(&cs, argv[i])) + if (git_configset_add_file(&cs, argv[i])) { + fprintf(stderr, "Error reading configuration file %s.\n", argv[i]); goto exit2; + } } if (!git_configset_get_value(&cs, argv[2], &v)) { if (!v)
@@ -101,8 +103,10 @@ int main(int argc, char **argv) } } else if (!strcmp(argv[1], "configset_get_value_multi")) { for (i = 3; i < argc; i++) { - if (git_configset_add_file(&cs, argv[i])) + if (git_configset_add_file(&cs, argv[i])) { + fprintf(stderr, "Error reading configuration file %s.\n", argv[i]); goto exit2; + } } strptr = git_configset_get_value_multi(&cs, argv[2]); if (strptr) {
--
2.0.0.262.gdafc651