summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTanu Kaskinen <tanuk@iki.fi>2020-07-23 10:01:49 +0300
committerTanu Kaskinen <tanuk@iki.fi>2020-12-03 14:41:39 +0000
commitfe162e0bbda7efcee489db10bd76c8853297d96e (patch)
tree5cc932c4d84e7be4ebc5b5140aa047ad81527a4b
parentef5a2f15541cfe5e325be9136c84a7945ac54404 (diff)
downloadpulseaudio-fe162e0bbda7efcee489db10bd76c8853297d96e.tar.gz
core-util-test: Test pa_atou64() and pa_atoi64()
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/51>
-rw-r--r--src/tests/core-util-test.c56
1 files changed, 56 insertions, 0 deletions
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);