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
This commit is contained in:
dtucker@openbsd.org 2021-01-15 02:58:11 +00:00 committed by Darren Tucker
parent 9bde1a4206
commit a8e798feab
1 changed files with 27 additions and 16 deletions

View File

@ -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");