diff options
Diffstat (limited to 'test/utils_str.c')
-rw-r--r-- | test/utils_str.c | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/test/utils_str.c b/test/utils_str.c index 81c600bc03..6498ef85d5 100644 --- a/test/utils_str.c +++ b/test/utils_str.c @@ -33,16 +33,112 @@ static int test_strtoi(void) TEST_ASSERT(strtoi("10", &e, 0) == 10); TEST_ASSERT(e && (*e == '\0')); + TEST_ASSERT(strtoi("010", &e, 0) == 8); + TEST_ASSERT(e && (*e == '\0')); + TEST_ASSERT(strtoi("+010", &e, 0) == 8); + TEST_ASSERT(e && (*e == '\0')); + TEST_ASSERT(strtoi("-010", &e, 0) == -8); + TEST_ASSERT(e && (*e == '\0')); TEST_ASSERT(strtoi("0x1f z", &e, 0) == 31); TEST_ASSERT(e && (*e == ' ')); + TEST_ASSERT(strtoi("0X1f z", &e, 0) == 31); + TEST_ASSERT(e && (*e == ' ')); TEST_ASSERT(strtoi("10a", &e, 16) == 266); TEST_ASSERT(e && (*e == '\0')); TEST_ASSERT(strtoi("0x02C", &e, 16) == 44); TEST_ASSERT(e && (*e == '\0')); + TEST_ASSERT(strtoi("+0x02C", &e, 16) == 44); + TEST_ASSERT(e && (*e == '\0')); + TEST_ASSERT(strtoi("-0x02C", &e, 16) == -44); + TEST_ASSERT(e && (*e == '\0')); + TEST_ASSERT(strtoi("0x02C", &e, 0) == 44); + TEST_ASSERT(e && (*e == '\0')); + TEST_ASSERT(strtoi("+0x02C", &e, 0) == 44); + TEST_ASSERT(e && (*e == '\0')); + TEST_ASSERT(strtoi("-0x02C", &e, 0) == -44); + TEST_ASSERT(e && (*e == '\0')); + TEST_ASSERT(strtoi("0X02C", &e, 16) == 44); + TEST_ASSERT(e && (*e == '\0')); + TEST_ASSERT(strtoi("+0X02C", &e, 16) == 44); + TEST_ASSERT(e && (*e == '\0')); + TEST_ASSERT(strtoi("-0X02C", &e, 16) == -44); + TEST_ASSERT(e && (*e == '\0')); + TEST_ASSERT(strtoi("0X02C", &e, 0) == 44); + TEST_ASSERT(e && (*e == '\0')); + TEST_ASSERT(strtoi("+0X02C", &e, 0) == 44); + TEST_ASSERT(e && (*e == '\0')); + TEST_ASSERT(strtoi("-0X02C", &e, 0) == -44); + TEST_ASSERT(e && (*e == '\0')); TEST_ASSERT(strtoi(" -12", &e, 0) == -12); TEST_ASSERT(e && (*e == '\0')); TEST_ASSERT(strtoi("!", &e, 0) == 0); TEST_ASSERT(e && (*e == '!')); + TEST_ASSERT(strtoi("+!", &e, 0) == 0); + TEST_ASSERT(e && (*e == '!')); + TEST_ASSERT(strtoi("+0!", &e, 0) == 0); + TEST_ASSERT(e && (*e == '!')); + TEST_ASSERT(strtoi("+0x!", &e, 0) == 0); + TEST_ASSERT(e && (*e == '!')); + TEST_ASSERT(strtoi("+0X!", &e, 0) == 0); + TEST_ASSERT(e && (*e == '!')); + + return EC_SUCCESS; +} + +static int test_strtoul(void) +{ + char *e; + + TEST_ASSERT(strtoul("10", &e, 0) == 10); + TEST_ASSERT(e && (*e == '\0')); + TEST_ASSERT(strtoul("010", &e, 0) == 8); + TEST_ASSERT(e && (*e == '\0')); + TEST_ASSERT(strtoul("+010", &e, 0) == 8); + TEST_ASSERT(e && (*e == '\0')); + TEST_ASSERT(strtoul("-010", &e, 0) == 0); + TEST_ASSERT(e && (*e == '-')); + TEST_ASSERT(strtoul("0x1f z", &e, 0) == 31); + TEST_ASSERT(e && (*e == ' ')); + TEST_ASSERT(strtoul("0X1f z", &e, 0) == 31); + TEST_ASSERT(e && (*e == ' ')); + TEST_ASSERT(strtoul("10a", &e, 16) == 266); + TEST_ASSERT(e && (*e == '\0')); + TEST_ASSERT(strtoul("0x02C", &e, 16) == 44); + TEST_ASSERT(e && (*e == '\0')); + TEST_ASSERT(strtoul("+0x02C", &e, 16) == 44); + TEST_ASSERT(e && (*e == '\0')); + TEST_ASSERT(strtoul("-0x02C", &e, 16) == 0); + TEST_ASSERT(e && (*e == '-')); + TEST_ASSERT(strtoul("0x02C", &e, 0) == 44); + TEST_ASSERT(e && (*e == '\0')); + TEST_ASSERT(strtoul("+0x02C", &e, 0) == 44); + TEST_ASSERT(e && (*e == '\0')); + TEST_ASSERT(strtoul("-0x02C", &e, 0) == 0); + TEST_ASSERT(e && (*e == '-')); + TEST_ASSERT(strtoul("0X02C", &e, 16) == 44); + TEST_ASSERT(e && (*e == '\0')); + TEST_ASSERT(strtoul("+0X02C", &e, 16) == 44); + TEST_ASSERT(e && (*e == '\0')); + TEST_ASSERT(strtoul("-0X02C", &e, 16) == 0); + TEST_ASSERT(e && (*e == '-')); + TEST_ASSERT(strtoul("0X02C", &e, 0) == 44); + TEST_ASSERT(e && (*e == '\0')); + TEST_ASSERT(strtoul("+0X02C", &e, 0) == 44); + TEST_ASSERT(e && (*e == '\0')); + TEST_ASSERT(strtoul("-0X02C", &e, 0) == 0); + TEST_ASSERT(e && (*e == '-')); + TEST_ASSERT(strtoul(" -12", &e, 0) == 0); + TEST_ASSERT(e && (*e == '-')); + TEST_ASSERT(strtoul("!", &e, 0) == 0); + TEST_ASSERT(e && (*e == '!')); + TEST_ASSERT(strtoul("+!", &e, 0) == 0); + TEST_ASSERT(e && (*e == '!')); + TEST_ASSERT(strtoul("+0!", &e, 0) == 0); + TEST_ASSERT(e && (*e == '!')); + TEST_ASSERT(strtoul("+0x!", &e, 0) == 0); + TEST_ASSERT(e && (*e == '!')); + TEST_ASSERT(strtoul("+0X!", &e, 0) == 0); + TEST_ASSERT(e && (*e == '!')); return EC_SUCCESS; } @@ -157,6 +253,7 @@ void run_test(void) RUN_TEST(test_isalpha); RUN_TEST(test_isprint); RUN_TEST(test_strtoi); + RUN_TEST(test_strtoul); RUN_TEST(test_parse_bool); RUN_TEST(test_strzcpy); RUN_TEST(test_strncpy); |