diff options
author | dtucker@openbsd.org <dtucker@openbsd.org> | 2021-01-15 03:58:11 +0100 |
---|---|---|
committer | Darren Tucker <dtucker@dtucker.net> | 2021-01-18 08:44:03 +0100 |
commit | a8e798feabe36d02de292bcfd274712cae1d8d17 (patch) | |
tree | 9c931d1d438813a7f1d7ff9d70c2c8a918b0d37a /regress/unittests | |
parent | upstream: Make output buffer larger to prevent potential truncation (diff) | |
download | openssh-a8e798feabe36d02de292bcfd274712cae1d8d17.tar.xz openssh-a8e798feabe36d02de292bcfd274712cae1d8d17.zip |
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
Diffstat (limited to 'regress/unittests')
-rw-r--r-- | regress/unittests/misc/tests.c | 43 |
1 files 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"); |