From fe162e0bbda7efcee489db10bd76c8853297d96e Mon Sep 17 00:00:00 2001 From: Tanu Kaskinen Date: Thu, 23 Jul 2020 10:01:49 +0300 Subject: core-util-test: Test pa_atou64() and pa_atoi64() Part-of: --- src/tests/core-util-test.c | 56 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/src/tests/core-util-test.c b/src/tests/core-util-test.c index e48cb3807..49aa4abcc 100644 --- a/src/tests/core-util-test.c +++ b/src/tests/core-util-test.c @@ -115,6 +115,7 @@ START_TEST (test_atoi) { ck_assert_int_lt(pa_atoi("3.14", &value), 0); ck_assert_int_lt(pa_atoi("7*8", &value), 0); ck_assert_int_lt(pa_atoi("false", &value), 0); + ck_assert_int_lt(pa_atoi("10000000000", &value), 0); } END_TEST @@ -137,6 +138,31 @@ START_TEST (test_atou) { ck_assert_int_lt(pa_atou("3.14", &value), 0); ck_assert_int_lt(pa_atou("7*8", &value), 0); ck_assert_int_lt(pa_atou("false", &value), 0); + ck_assert_int_lt(pa_atou("10000000000", &value), 0); +} +END_TEST + +START_TEST (test_atou64) { + uint64_t value; + + // decimal + ck_assert_int_eq(pa_atou64("100000", &value), 0); + ck_assert_int_eq(value, 100000); + ck_assert_int_eq(pa_atou64("010", &value), 0); + ck_assert_int_eq(value, 10); + ck_assert_int_eq(pa_atou64("10000000000", &value), 0); + ck_assert_int_eq(value, 10000000000); + + // hexadecimal + ck_assert_int_eq(pa_atou64("0x100000", &value), 0); + ck_assert_int_eq(value, 0x100000); + + // invalid values + ck_assert_int_lt(pa_atou64("-100000", &value), 0); + ck_assert_int_lt(pa_atou64("-0x100000", &value), 0); + ck_assert_int_lt(pa_atou64("3.14", &value), 0); + ck_assert_int_lt(pa_atou64("7*8", &value), 0); + ck_assert_int_lt(pa_atou64("false", &value), 0); } END_TEST @@ -166,6 +192,34 @@ START_TEST (test_atol) { } END_TEST +START_TEST (test_atoi64) { + int64_t value; + + // decimal + ck_assert_int_eq(pa_atoi64("100000", &value), 0); + ck_assert_int_eq(value, 100000); + ck_assert_int_eq(pa_atoi64("-100000", &value), 0); + ck_assert_int_eq(value, -100000); + ck_assert_int_eq(pa_atoi64("010", &value), 0); + ck_assert_int_eq(value, 10); + ck_assert_int_eq(pa_atoi64("-010", &value), 0); + ck_assert_int_eq(value, -10); + ck_assert_int_eq(pa_atoi64("10000000000", &value), 0); + ck_assert_int_eq(value, 10000000000); + + // hexadecimal + ck_assert_int_eq(pa_atoi64("0x100000", &value), 0); + ck_assert_int_eq(value, 0x100000); + ck_assert_int_eq(pa_atoi64("-0x100000", &value), 0); + ck_assert_int_eq(value, -0x100000); + + // invalid values + ck_assert_int_lt(pa_atoi64("3.14", &value), 0); + ck_assert_int_lt(pa_atoi64("7*8", &value), 0); + ck_assert_int_lt(pa_atoi64("false", &value), 0); +} +END_TEST + START_TEST (test_atod) { double value; double epsilon = 0.001; @@ -275,7 +329,9 @@ int main(int argc, char *argv[]) { tcase_add_test(tc, test_parse_volume); tcase_add_test(tc, test_atoi); tcase_add_test(tc, test_atou); + tcase_add_test(tc, test_atou64); tcase_add_test(tc, test_atol); + tcase_add_test(tc, test_atoi64); tcase_add_test(tc, test_atod); tcase_add_test(tc, test_replace); tcase_add_test_raise_signal(tc, test_replace_fail_1, SIGABRT); -- cgit v1.2.1