From e8c2e8dae6f9846adbe75b68d1a63bfa83981167 Mon Sep 17 00:00:00 2001 From: Lephenixnoir Date: Thu, 20 May 2021 15:37:52 +0200 Subject: [PATCH] stdlib: add saturation tests for strtol etc. --- src/stdlib/intconv.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/stdlib/intconv.c b/src/stdlib/intconv.c index 6cfd876..bcef9ef 100644 --- a/src/stdlib/intconv.c +++ b/src/stdlib/intconv.c @@ -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);