tests: Module tests for common.c
authorJouni Malinen <j@w1.fi>
Sat, 28 Feb 2015 10:19:13 +0000 (12:19 +0200)
committerJouni Malinen <j@w1.fi>
Sat, 28 Feb 2015 10:20:56 +0000 (12:20 +0200)
Signed-off-by: Jouni Malinen <j@w1.fi>
src/utils/utils_module_tests.c

index b104585..4b97dad 100644 (file)
@@ -85,6 +85,15 @@ static int printf_encode_decode_tests(void)
                }
        }
 
+       if (printf_decode(bin, 3, "abcde") != 2)
+               errors++;
+
+       if (printf_decode(bin, 3, "\\xa") != 1 || bin[0] != 10)
+               errors++;
+
+       if (printf_decode(bin, 3, "\\a") != 1 || bin[0] != 'a')
+               errors++;
+
        if (errors) {
                wpa_printf(MSG_ERROR, "%d printf test(s) failed", errors);
                return -1;
@@ -324,6 +333,77 @@ static int base64_tests(void)
 }
 
 
+static int common_tests(void)
+{
+       char buf[3];
+       u8 addr[ETH_ALEN] = { 1, 2, 3, 4, 5, 6 };
+       u8 bin[3];
+       int errors = 0;
+       struct wpa_freq_range_list ranges;
+
+       wpa_printf(MSG_INFO, "common tests");
+
+       if (hwaddr_mask_txt(buf, 3, addr, addr) != -1)
+               errors++;
+
+       if (wpa_scnprintf(buf, 0, "hello") != 0 ||
+           wpa_scnprintf(buf, 3, "hello") != 2)
+               errors++;
+
+       if (wpa_snprintf_hex(buf, 0, addr, ETH_ALEN) != 0 ||
+           wpa_snprintf_hex(buf, 3, addr, ETH_ALEN) != 2)
+               errors++;
+
+       if (merge_byte_arrays(bin, 3, addr, ETH_ALEN, NULL, 0) != 3 ||
+           merge_byte_arrays(bin, 3, NULL, 0, addr, ETH_ALEN) != 3)
+               errors++;
+
+       if (dup_binstr(NULL, 0) != NULL)
+               errors++;
+
+       if (freq_range_list_includes(NULL, 0) != 0)
+               errors++;
+
+       os_memset(&ranges, 0, sizeof(ranges));
+       if (freq_range_list_parse(&ranges, "") != 0 ||
+           freq_range_list_includes(&ranges, 0) != 0 ||
+           freq_range_list_str(&ranges) != NULL)
+               errors++;
+
+       if (utf8_unescape(NULL, 0, buf, sizeof(buf)) != 0 ||
+           utf8_unescape("a", 1, NULL, 0) != 0 ||
+           utf8_unescape("a\\", 2, buf, sizeof(buf)) != 0 ||
+           utf8_unescape("abcde", 5, buf, sizeof(buf)) != 0 ||
+           utf8_unescape("abc", 3, buf, 3) != 3)
+               errors++;
+
+       if (utf8_unescape("a", 0, buf, sizeof(buf)) != 1 || buf[0] != 'a')
+               errors++;
+
+       if (utf8_unescape("\\b", 2, buf, sizeof(buf)) != 1 || buf[0] != 'b')
+               errors++;
+
+       if (utf8_escape(NULL, 0, buf, sizeof(buf)) != 0 ||
+           utf8_escape("a", 1, NULL, 0) != 0 ||
+           utf8_escape("abcde", 5, buf, sizeof(buf)) != 0 ||
+           utf8_escape("a\\bcde", 6, buf, sizeof(buf)) != 0 ||
+           utf8_escape("ab\\cde", 6, buf, sizeof(buf)) != 0 ||
+           utf8_escape("abc\\de", 6, buf, sizeof(buf)) != 0 ||
+           utf8_escape("abc", 3, buf, 3) != 3)
+               errors++;
+
+       if (utf8_escape("a", 0, buf, sizeof(buf)) != 1 || buf[0] != 'a')
+               errors++;
+
+       if (errors) {
+               wpa_printf(MSG_ERROR, "%d common test(s) failed", errors);
+               return -1;
+       }
+
+       return 0;
+}
+
+
 int utils_module_tests(void)
 {
        int ret = 0;
@@ -335,6 +415,7 @@ int utils_module_tests(void)
            trace_tests() < 0 ||
            bitfield_tests() < 0 ||
            base64_tests() < 0 ||
+           common_tests() < 0 ||
            int_array_tests() < 0)
                ret = -1;