From a8e798feabe36d02de292bcfd274712cae1d8d17 Mon Sep 17 00:00:00 2001 From: "dtucker@openbsd.org" Date: Fri, 15 Jan 2021 02:58:11 +0000 Subject: [PATCH] upstream: Change types in convtime() unit test to int to match change its new type. Add tests for boundary conditions and fix convtime to work up to INT_MAX. ok djm@ OpenBSD-Regress-ID: ba2b81e9a3257fff204b020affe85b604a44f97e --- regress/unittests/misc/tests.c | 43 +++++++++++++++++++++------------- 1 file changed, 27 insertions(+), 16 deletions(-) diff --git a/regress/unittests/misc/tests.c b/regress/unittests/misc/tests.c index 0bd0c84f9..d873dc241 100644 --- a/regress/unittests/misc/tests.c +++ b/regress/unittests/misc/tests.c @@ -1,4 +1,4 @@ -/* $OpenBSD: tests.c,v 1.3 2020/05/29 04:32:26 dtucker Exp $ */ +/* $OpenBSD: tests.c,v 1.4 2021/01/15 02:58:11 dtucker Exp $ */ /* * Regress test for misc helper functions. * @@ -22,6 +22,7 @@ tests(void) { int port, parseerr; char *user, *host, *path, *ret; + char buf[1024]; TEST_START("misc_parse_user_host_path"); ASSERT_INT_EQ(parse_user_host_path("someuser@some.host:some/path", @@ -79,22 +80,32 @@ tests(void) TEST_DONE(); TEST_START("misc_convtime"); - ASSERT_LONG_EQ(convtime("1"), 1); - ASSERT_LONG_EQ(convtime("2s"), 2); - ASSERT_LONG_EQ(convtime("3m"), 180); - ASSERT_LONG_EQ(convtime("1m30"), 90); - ASSERT_LONG_EQ(convtime("1m30s"), 90); - ASSERT_LONG_EQ(convtime("1h1s"), 3601); - ASSERT_LONG_EQ(convtime("1h30m"), 90 * 60); - ASSERT_LONG_EQ(convtime("1d"), 24 * 60 * 60); - ASSERT_LONG_EQ(convtime("1w"), 7 * 24 * 60 * 60); - ASSERT_LONG_EQ(convtime("1w2d3h4m5"), 788645); - ASSERT_LONG_EQ(convtime("1w2d3h4m5s"), 788645); + ASSERT_INT_EQ(convtime("0"), 0); + ASSERT_INT_EQ(convtime("1"), 1); + ASSERT_INT_EQ(convtime("2s"), 2); + ASSERT_INT_EQ(convtime("3m"), 180); + ASSERT_INT_EQ(convtime("1m30"), 90); + ASSERT_INT_EQ(convtime("1m30s"), 90); + ASSERT_INT_EQ(convtime("1h1s"), 3601); + ASSERT_INT_EQ(convtime("1h30m"), 90 * 60); + ASSERT_INT_EQ(convtime("1d"), 24 * 60 * 60); + ASSERT_INT_EQ(convtime("1w"), 7 * 24 * 60 * 60); + ASSERT_INT_EQ(convtime("1w2d3h4m5"), 788645); + ASSERT_INT_EQ(convtime("1w2d3h4m5s"), 788645); /* any negative number or error returns -1 */ - ASSERT_LONG_EQ(convtime("-1"), -1); - ASSERT_LONG_EQ(convtime(""), -1); - ASSERT_LONG_EQ(convtime("trout"), -1); - ASSERT_LONG_EQ(convtime("-77"), -1); + ASSERT_INT_EQ(convtime("-1"), -1); + ASSERT_INT_EQ(convtime(""), -1); + ASSERT_INT_EQ(convtime("trout"), -1); + ASSERT_INT_EQ(convtime("-77"), -1); + /* boundary conditions */ + snprintf(buf, sizeof buf, "%llu", (long long unsigned)INT_MAX); + ASSERT_INT_EQ(convtime(buf), INT_MAX); + snprintf(buf, sizeof buf, "%llu", (long long unsigned)INT_MAX + 1); + ASSERT_INT_EQ(convtime(buf), -1); + ASSERT_INT_EQ(convtime("3550w5d3h14m7s"), 2147483647); +#if INT_MAX == 2147483647 + ASSERT_INT_EQ(convtime("3550w5d3h14m8s"), -1); +#endif TEST_DONE(); TEST_START("dollar_expand");