From c4df1155d329bda8bcc0604ba1e747ea9838b1f5 Mon Sep 17 00:00:00 2001 From: Hubert Tarasiuk Date: Tue, 23 Jun 2015 17:51:32 +0200 Subject: [PATCH 08/12] Unit test for find_key_values. * src/http.c: Add test_find_key_values. * src/test.c (main): Run new test. * src/test.h: Add test_find_key_values. --- src/http.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ src/test.c | 1 + src/test.h | 1 + 3 files changed, 46 insertions(+) diff --git a/src/http.c b/src/http.c index 0d652d6..e2e98f5 100644 --- a/src/http.c +++ b/src/http.c @@ -5001,6 +5001,50 @@ ensure_extension (struct http_stat *hs, const char *ext, int *dt) #ifdef TESTING const char * +test_find_key_values (void) +{ + static const char *header_data = "key1=val1;key2=val2 ;key3=val3; key4=val4"\ + " ; key5=val5;key6 =val6;key7= val7; "\ + "key8 = val8 ; key9 = val9 "\ + " ,key10= val10,key11,key12=val12"; + static const struct + { + const char *key; + const char *val; + } test_array[] = + { + { "key1", "val1" }, + { "key2", "val2" }, + { "key3", "val3" }, + { "key4", "val4" }, + { "key5", "val5" }, + { "key6", "val6" }, + { "key7", "val7" }, + { "key8", "val8" }, + { "key9", "val9" }, + { "key10", "val10" }, + { "key12", "val12" } + }; + const char *pos; + char *key, *value; + size_t i = 0; + + for (pos = header_data; (pos = find_key_values (pos, + header_data + strlen (header_data), + &key, &value)); pos++) + { + mu_assert ("test_find_key_values: wrong result", + !strcmp (test_array[i].val, value) && + !strcmp (test_array[i].key, key)); + xfree (key); + xfree (value); + i++; + } + + return NULL; +} + +const char * test_find_key_value (void) { static const char *header_data = "key1=val1;key2=val2 ;key3=val3; key4=val4"\ diff --git a/src/test.c b/src/test.c index 9a76f4c..68f813b 100644 --- a/src/test.c +++ b/src/test.c @@ -59,6 +59,7 @@ static const char * all_tests(void) { mu_run_test (test_find_key_value); + mu_run_test (test_find_key_values); mu_run_test (test_has_key); mu_run_test (test_parse_content_disposition); mu_run_test (test_subdir_p); diff --git a/src/test.h b/src/test.h index 5f84184..58d1ce5 100644 --- a/src/test.h +++ b/src/test.h @@ -47,6 +47,7 @@ extern int tests_run; const char *test_has_key (void); const char *test_find_key_value (void); +const char *test_find_key_values (void); const char *test_parse_content_disposition(void); const char *test_commands_sorted(void); const char *test_cmd_spec_restrict_file_names(void); -- 2.4.3