[SSSD] [PATCH] strtonum-tests: Add unit test for strtouint16.

Lukas Slebodnik lslebodn at redhat.com
Thu Aug 28 13:40:18 UTC 2014


ehlo,

It is almost the same as for strtouint32

LS
-------------- next part --------------
>From 77105aebb13e10965d683da8c89987872e3e6a1c Mon Sep 17 00:00:00 2001
From: Lukas Slebodnik <lslebodn at redhat.com>
Date: Thu, 28 Aug 2014 11:32:50 +0200
Subject: [PATCH 1/2] strtonum-tests: Add unit test for strtouint16.

It is almost the same as for strtouint32
---
 src/tests/strtonum-tests.c | 152 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 152 insertions(+)

diff --git a/src/tests/strtonum-tests.c b/src/tests/strtonum-tests.c
index 73a07114fa16d8ba3d41e7ad8adf5a094473b524..8740d3ef59425971956254dfd220ab9276a1c787 100644
--- a/src/tests/strtonum-tests.c
+++ b/src/tests/strtonum-tests.c
@@ -385,6 +385,147 @@ START_TEST (test_strtouint32_emptystring_base_10)
 }
 END_TEST
 
+/* Base-10 */
+START_TEST (test_strtouint16_pos_integer_base_10)
+{
+    uint16_t result;
+    const char *input = "123";
+    uint16_t expected = 123;
+    char *endptr;
+    errno_t error;
+
+    result = strtouint16(input, &endptr, 10);
+    error = errno;
+
+    EXPECT_UNSET_ERRNO(error);
+    CHECK_ZERO_ENDPTR(endptr);
+    CHECK_RESULT(expected, result);
+}
+END_TEST
+
+START_TEST (test_strtouint16_neg_integer_base_10)
+{
+    uint32_t result;
+    const char *input = "-123";
+    uint32_t expected = UINT16_MAX;
+    char *endptr;
+    errno_t error;
+
+    result = strtouint16(input, &endptr, 10);
+    error = errno;
+
+    CHECK_ERRNO(ERANGE, error);
+    CHECK_ZERO_ENDPTR(endptr);
+    CHECK_RESULT(expected, result);
+}
+END_TEST
+
+START_TEST (test_strtouint16_pos_integer_uintmax_base_10)
+{
+    uint32_t result;
+    const char *input = "65535";
+    uint32_t expected = UINT16_MAX;
+    char *endptr;
+    errno_t error;
+
+    result = strtouint16(input, &endptr, 10);
+    error = errno;
+
+    EXPECT_UNSET_ERRNO(error);
+    CHECK_ZERO_ENDPTR(endptr);
+    CHECK_RESULT(expected, result);
+}
+END_TEST
+
+
+START_TEST (test_strtouint16_pos_integer_overflow_base_10)
+{
+    uint32_t result;
+    const char *input = "131072";
+    uint32_t expected = UINT16_MAX;
+    char *endptr;
+    errno_t error;
+
+    result = strtouint16(input, &endptr, 10);
+    error = errno;
+
+    CHECK_ERRNO(ERANGE, error);
+    CHECK_ZERO_ENDPTR(endptr);
+    CHECK_RESULT(expected, result);
+}
+END_TEST
+
+START_TEST (test_strtouint16_mixed_alphanumeric_base_10)
+{
+    uint32_t result;
+    const char *input = "12b13";
+    uint32_t expected = 12;
+    char *endptr;
+    const char *expected_endptr = input+2;
+    errno_t error;
+
+    result = strtouint16(input, &endptr, 10);
+    error = errno;
+
+    EXPECT_UNSET_ERRNO(error);
+    CHECK_ENDPTR(expected_endptr, endptr);
+    CHECK_RESULT(expected, result);
+}
+END_TEST
+
+START_TEST (test_strtouint16_alphaonly_base_10)
+{
+    uint32_t result;
+    const char *input = "alpha";
+    uint32_t expected = 0;
+    char *endptr;
+    const char *expected_endptr = input;
+    errno_t error;
+
+    result = strtouint16(input, &endptr, 10);
+    error = errno;
+
+    EXPECT_UNSET_ERRNO(error);
+    CHECK_ENDPTR(expected_endptr, endptr);
+    CHECK_RESULT(expected, result);
+}
+END_TEST
+
+START_TEST (test_strtouint16_alphastart_base_10)
+{
+    uint32_t result;
+    const char *input = "alpha12345";
+    uint32_t expected = 0;
+    char *endptr;
+    const char *expected_endptr = input;
+    errno_t error;
+
+    result = strtouint16(input, &endptr, 10);
+    error = errno;
+
+    EXPECT_UNSET_ERRNO(error);
+    CHECK_ENDPTR(expected_endptr, endptr);
+    CHECK_RESULT(expected, result);
+}
+END_TEST
+
+START_TEST (test_strtouint16_emptystring_base_10)
+{
+    uint32_t result;
+    const char *input = "";
+    uint32_t expected = 0;
+    char *endptr;
+    const char *expected_endptr = input;
+    errno_t error;
+
+    result = strtouint16(input, &endptr, 10);
+    error = errno;
+
+    EXPECT_UNSET_ERRNO(error);
+    CHECK_ENDPTR(expected_endptr, endptr);
+    CHECK_RESULT(expected, result);
+}
+END_TEST
 
 
 Suite *create_strtonum_suite(void)
@@ -413,9 +554,20 @@ Suite *create_strtonum_suite(void)
     tcase_add_test(tc_strtouint32, test_strtouint32_alphastart_base_10);
     tcase_add_test(tc_strtouint32, test_strtouint32_emptystring_base_10);
 
+    TCase *tc_strtouint16 = tcase_create("strtouint16 Tests");
+    tcase_add_test(tc_strtouint16, test_strtouint16_pos_integer_base_10);
+    tcase_add_test(tc_strtouint16, test_strtouint16_neg_integer_base_10);
+    tcase_add_test(tc_strtouint16, test_strtouint16_pos_integer_uintmax_base_10);
+    tcase_add_test(tc_strtouint16, test_strtouint16_pos_integer_overflow_base_10);
+    tcase_add_test(tc_strtouint16, test_strtouint16_mixed_alphanumeric_base_10);
+    tcase_add_test(tc_strtouint16, test_strtouint16_alphaonly_base_10);
+    tcase_add_test(tc_strtouint16, test_strtouint16_alphastart_base_10);
+    tcase_add_test(tc_strtouint16, test_strtouint16_emptystring_base_10);
+
     /* Add all test cases to the suite */
     suite_add_tcase(s, tc_strtoint32);
     suite_add_tcase(s, tc_strtouint32);
+    suite_add_tcase(s, tc_strtouint16);
 
     return s;
 }
-- 
2.1.0



More information about the sssd-devel mailing list