stdlib: add saturation tests for strtol etc.

This commit is contained in:
Lephenixnoir 2021-05-20 15:37:52 +02:00
parent 3984056ee5
commit e8c2e8dae6
Signed by: Lephenixnoir
GPG Key ID: 1BBA026E13FC0495
1 changed files with 10 additions and 1 deletions

View File

@ -47,6 +47,8 @@ static void _ft_stdlib_llconv(ft_test *t)
assert_conv("0", 0ull);
assert_conv(" 1729", 1729ull);
assert_conv("18446744073709551615", 18446744073709551615ull);
ft_assert_eval(t, func("0x10000000000000001", NULL, 0),
18446744073709551615ull, format);
ft_log(t, "\nOverflow situations:\n");
assert_errno("18446744073709551616", ERANGE);
@ -105,7 +107,11 @@ static void _ft_stdlib_llconv(ft_test *t)
assert_conv("-0", 0ll);
assert_conv("-1729", -1729ll);
assert_conv("9223372036854775807", 9223372036854775807ll);
assert_conv("-9223372036854775808", -9223372036854775807ll-1);
assert_conv("-9223372036854775808", -9223372036854775807ll - 1);
ft_assert_eval(t, func("9223372036854775808", NULL, 0),
9223372036854775807ll, format);
ft_assert_eval(t, func("-9223372036854775809", NULL, 0),
-9223372036854775807ll - 1, format);
ft_log(t, "\nOverflow situations:\n");
assert_errno("9223372036854775807", 0);
@ -143,6 +149,7 @@ static void _ft_stdlib_lconv(ft_test *t)
assert_conv("0", 0ul);
assert_conv(" 1729", 1729ul);
assert_conv("4294967295", 4294967295ul);
ft_assert_eval(t, func("4294967296", NULL, 0), 4294967295ul, format);
ft_log(t, "\nOverflow situations:\n");
assert_errno("4294967296", ERANGE);
@ -168,6 +175,8 @@ static void _ft_stdlib_lconv(ft_test *t)
assert_conv("-1729", -1729l);
assert_conv("2147483647", 2147483647l);
assert_conv("-2147483648", -2147483647l-1);
ft_assert_eval(t, func("2147483648", NULL, 0), 2147483647l, format);
ft_assert_eval(t, func("-2147483649", NULL, 0), -2147483647l-1,format);
ft_log(t, "\nOverflow situations:\n");
assert_errno("2147483647", 0);