summaryrefslogtreecommitdiff
path: root/regress/unittests/misc
diff options
context:
space:
mode:
authordtucker@openbsd.org <dtucker@openbsd.org>2021-01-15 02:58:11 +0000
committerDarren Tucker <dtucker@dtucker.net>2021-01-18 18:44:03 +1100
commita8e798feabe36d02de292bcfd274712cae1d8d17 (patch)
tree9c931d1d438813a7f1d7ff9d70c2c8a918b0d37a /regress/unittests/misc
parent9bde1a420626da5007bf7ab499fa2159b9eddf72 (diff)
downloadopenssh-git-a8e798feabe36d02de292bcfd274712cae1d8d17.tar.gz
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/misc')
-rw-r--r--regress/unittests/misc/tests.c43
1 files changed, 27 insertions, 16 deletions
diff --git a/regress/unittests/misc/tests.c b/regress/unittests/misc/tests.c
index 0bd0c84f..d873dc24 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");