summaryrefslogtreecommitdiff
path: root/test/utils_str.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/utils_str.c')
-rw-r--r--test/utils_str.c97
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);