add tests for `git_config_get_string_const()`
authorTanay Abhra <tanayabh@gmail.com>
Thu, 7 Aug 2014 11:59:19 +0000 (04:59 -0700)
committerJunio C Hamano <gitster@pobox.com>
Thu, 7 Aug 2014 18:41:20 +0000 (11:41 -0700)
Add tests for `git_config_get_string_const()`, check whether it
dies printing the line number and the file name if a NULL
value is retrieved for the given key.

Signed-off-by: Tanay Abhra <tanayabh@gmail.com>
Reviewed-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t1308-config-set.sh
test-config.c
index 9cc678d90b4e4f753c7586dea385ef2ad3431db8..ea0bce2dc64b6fe3cac3e00f48b7a17a341af647 100755 (executable)
@@ -119,6 +119,16 @@ test_expect_success 'find integer value for a key' '
        check_config get_int lamb.chop 65
 '
 
+test_expect_success 'find string value for a key' '
+       check_config get_string case.baz hask &&
+       check_config expect_code 1 get_string case.ba "Value not found for \"case.ba\""
+'
+
+test_expect_success 'check line error when NULL string is queried' '
+       test_expect_code 128 test-config get_string case.foo 2>result &&
+       test_i18ngrep "fatal: .*case\.foo.*\.git/config.*line 7" result
+'
+
 test_expect_success 'find integer if value is non parse-able' '
        check_config expect_code 128 get_int lamb.head
 '
index 9dd1b22630948b63d971a8ef5ff363db2d80fd9a..6a775522105d9bfc5c1c60f36944bc43e64badef 100644 (file)
@@ -16,6 +16,8 @@
  *
  * get_bool -> print bool value for the entered key or die
  *
+ * get_string -> print string value for the entered key or die
+ *
  * configset_get_value -> returns value with the highest priority for the entered key
  *                     from a config_set constructed from files entered as arguments.
  *
@@ -84,6 +86,14 @@ int main(int argc, char **argv)
                        printf("Value not found for \"%s\"\n", argv[2]);
                        goto exit1;
                }
+       } else if (argc == 3 && !strcmp(argv[1], "get_string")) {
+               if (!git_config_get_string_const(argv[2], &v)) {
+                       printf("%s\n", v);
+                       goto exit0;
+               } else {
+                       printf("Value not found for \"%s\"\n", argv[2]);
+                       goto exit1;
+               }
        } else if (!strcmp(argv[1], "configset_get_value")) {
                for (i = 3; i < argc; i++) {
                        int err;