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

[PATCH v4 6/6] add tests for `git_config_get_string_const()`

From
Tanay Abhra <tanayabh@gmail.com>
Date
Jul 29, 2014, 11:28 UTC
Message-ID
<1406633302-23144-7-git-send-email-tanayabh@gmail.com>
In-Reply-To
<1406633302-23144-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 e2f9d0b..f012dd6 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 &&
+	grep "fatal: bad config variable '\''case.foo'\'' at file line 7 in .git/config" 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 Abhra
Message 13 of 13 in “Rewrite `git_config()` using config-set API”
  1. 0/6 Rewrite `git_config()` using config-set APITanay Abhra, Jul 29, 2014
  2. 1/6 config.c: fix accuracy of line number in errorsTanay Abhra, Jul 29, 2014
  3. 2/6 add line number and file name info to `config_set`Tanay Abhra, Jul 29, 2014
  4. 3/6 rewrite git_config() to use the config-set APITanay Abhra, Jul 29, 2014
  5. Tanay AbhraJul 29, 2014
  6. Matthieu MoyJul 29, 2014
  7. Matthieu MoyJul 29, 2014
  8. Tanay AbhraJul 29, 2014
  9. Matthieu MoyJul 29, 2014
  10. Tanay AbhraJul 29, 2014
  11. 4/6 add a test for semantic errors in config filesTanay Abhra, Jul 29, 2014
  12. 5/6 config: add `git_die_config()` to the config-set APITanay Abhra, Jul 29, 2014
  13. 6/6 add tests for `git_config_get_string_const()`Tanay Abhra, Jul 29, 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.