From 632637c7b2e1a7bc9cd95b3225cd8a70ee522368 Mon Sep 17 00:00:00 2001 Message-Id: <632637c7b2e1a7bc9cd95b3225cd8a70ee522368.1714905446.git.mdw@distorted.org.uk> From: Mark Wooding Date: Fri, 30 Nov 2007 18:58:35 +0000 Subject: [PATCH] more thorough kvp.c testing Organization: Straylight/Edgeware From: Richard Kettlewell --- lib/test.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/lib/test.c b/lib/test.c index 781a1fc..635c245 100644 --- a/lib/test.c +++ b/lib/test.c @@ -818,8 +818,10 @@ static void test_wstat(void) { static void test_kvp(void) { struct kvp *k; + size_t n; fprintf(stderr, "test_kvp\n"); + /* decoding */ #define KVP_URLDECODE(S) kvp_urldecode((S), strlen(S)) insist(KVP_URLDECODE("=%zz") == 0); insist(KVP_URLDECODE("=%0") == 0); @@ -838,7 +840,19 @@ static void test_kvp(void) { check_string(kvp_get(k, "bar"), "spong"); insist(kvp_get(k, "ONE") == 0); insist(k->next->next == 0); - /* TODO test encoding too */ + /* encoding */ + insist(kvp_set(&k, "bar", "spong") == 0); + insist(kvp_set(&k, "bar", "foo") == 1); + insist(kvp_set(&k, "zog", "%") == 1); + insist(kvp_set(&k, "wibble", 0) == 1); + insist(kvp_set(&k, "wibble", 0) == 0); + check_string(kvp_urlencode(k, 0), + "bar=foo&zog=%25"); + check_string(kvp_urlencode(k, &n), + "bar=foo&zog=%25"); + insist(n == strlen("bar=foo&zog=%25")); + check_string(urlencodestring("abc% +\n"), + "abc%25%20%2b%0a"); } int main(void) { -- [mdw]