git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v9 8/8] add tests for `git_config_get_string_const()`

From
Tanay Abhra <tanayabh@gmail.com>
Date
Aug 7, 2014, 11:59 UTC
Message-ID
<1407412759-13833-9-git-send-email-tanayabh@gmail.com>
In-Reply-To
<1407412759-13833-1-git-send-email-tanayabh@gmail.com>

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>
---
 t/t1308-config-set.sh | 10 ++++++++++
 test-config.c         | 10 ++++++++++
 2 files changed, 20 insertions(+)
diff --git a/t/t1308-config-set.sh b/t/t1308-config-set.sh
index 9cc678d..ea0bce2 100755
--- a/t/t1308-config-set.sh
+++ b/t/t1308-config-set.sh
@@ -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
 '
diff --git a/test-config.c b/test-config.c
index 9dd1b22..6a77552 100644
--- a/test-config.c
+++ b/test-config.c
@@ -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;
-- 
1.9.0.GIT
Previous: Tanay AbhraNext: Matthieu Moy
Message 15 of 16 in “Rewrite `git_config()` using config-set API”
  1. 0/8 Rewrite `git_config()` using config-set APITanay Abhra, Aug 7, 2014
  2. 1/8 config.c: mark error and warnings strings for translationTanay Abhra, Aug 7, 2014
  3. 2/8 config.c: fix accuracy of line number in errorsTanay Abhra, Aug 7, 2014
  4. 3/8 add line number and file name info to `config_set`Tanay Abhra, Aug 7, 2014
  5. Ramsay JonesAug 7, 2014
  6. Matthieu MoyAug 7, 2014
  7. Junio C HamanoAug 7, 2014
  8. Matthieu MoyAug 7, 2014
  9. 4/8 change `git_config()` return value to voidTanay Abhra, Aug 7, 2014
  10. 5/8 config: add `git_die_config()` to the config-set APITanay Abhra, Aug 7, 2014
  11. Junio C HamanoAug 7, 2014
  12. Tanay AbhraAug 8, 2014
  13. 6/8 rewrite git_config() to use the config-set APITanay Abhra, Aug 7, 2014
  14. 7/8 add a test for semantic errors in config filesTanay Abhra, Aug 7, 2014
  15. 8/8 add tests for `git_config_get_string_const()`Tanay Abhra, Aug 7, 2014
  16. Matthieu MoyAug 7, 2014

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.