diff options
author | Damien Miller <djm@cvs.openbsd.org> | 2023-01-06 02:59:51 +0000 |
---|---|---|
committer | Damien Miller <djm@cvs.openbsd.org> | 2023-01-06 02:59:51 +0000 |
commit | 7780431bb4c86fe7f04fd8cceffe4b55e0390ab4 (patch) | |
tree | f5b0ecf5107dd752335963518ae3bcf49d4af50e | |
parent | 2b325d4feb757cb7dddc7baba17ba5c367dbcb93 (diff) |
unit tests for misc.c:ptimeout_* API
-rw-r--r-- | regress/usr.bin/ssh/unittests/misc/Makefile | 3 | ||||
-rw-r--r-- | regress/usr.bin/ssh/unittests/misc/test_ptimeout.c | 85 | ||||
-rw-r--r-- | regress/usr.bin/ssh/unittests/misc/tests.c | 4 |
3 files changed, 90 insertions, 2 deletions
diff --git a/regress/usr.bin/ssh/unittests/misc/Makefile b/regress/usr.bin/ssh/unittests/misc/Makefile index e8fe1a95313..d2be393ad70 100644 --- a/regress/usr.bin/ssh/unittests/misc/Makefile +++ b/regress/usr.bin/ssh/unittests/misc/Makefile @@ -1,4 +1,4 @@ -# $OpenBSD: Makefile,v 1.8 2022/02/04 07:53:44 dtucker Exp $ +# $OpenBSD: Makefile,v 1.9 2023/01/06 02:59:50 djm Exp $ PROG=test_misc SRCS=tests.c @@ -8,6 +8,7 @@ SRCS+= test_parse.c SRCS+= test_argv.c SRCS+= test_strdelim.c SRCS+= test_hpdelim.c +SRCS+= test_ptimeout.c # From usr.bin/ssh/Makefile.inc SRCS+= sshbuf.c diff --git a/regress/usr.bin/ssh/unittests/misc/test_ptimeout.c b/regress/usr.bin/ssh/unittests/misc/test_ptimeout.c new file mode 100644 index 00000000000..c1261b77b14 --- /dev/null +++ b/regress/usr.bin/ssh/unittests/misc/test_ptimeout.c @@ -0,0 +1,85 @@ +/* $OpenBSD: test_ptimeout.c,v 1.1 2023/01/06 02:59:50 djm Exp $ */ +/* + * Regress test for misc poll/ppoll timeout helpers. + * + * Placed in the public domain. + */ + +#include <sys/types.h> +#include <stdio.h> +#include <stdint.h> +#include <stdlib.h> +#include <string.h> +#include <poll.h> +#include <time.h> + +#include "test_helper.h" + +#include "log.h" +#include "misc.h" + +void test_ptimeout(void); + +void +test_ptimeout(void) +{ + struct timespec pt, *ts; + + TEST_START("ptimeout_init"); + ptimeout_init(&pt); + ASSERT_PTR_EQ(ptimeout_get_tsp(&pt), NULL); + ASSERT_INT_EQ(ptimeout_get_ms(&pt), -1); + TEST_DONE(); + + TEST_START("ptimeout_deadline_sec"); + ptimeout_deadline_sec(&pt, 100); + ptimeout_deadline_sec(&pt, 200); + ASSERT_INT_EQ(ptimeout_get_ms(&pt), 100 * 1000); + ts = ptimeout_get_tsp(&pt); + ASSERT_PTR_NE(ts, NULL); + ASSERT_LONG_EQ(ts->tv_nsec, 0); + ASSERT_LONG_EQ(ts->tv_sec, 100); + TEST_DONE(); + + TEST_START("ptimeout_deadline_ms"); + ptimeout_deadline_ms(&pt, 50123); + ptimeout_deadline_ms(&pt, 50500); + ASSERT_INT_EQ(ptimeout_get_ms(&pt), 50123); + ts = ptimeout_get_tsp(&pt); + ASSERT_PTR_NE(ts, NULL); + ASSERT_LONG_EQ(ts->tv_nsec, 123 * 1000000); + ASSERT_LONG_EQ(ts->tv_sec, 50); + TEST_DONE(); + + TEST_START("ptimeout zero"); + ptimeout_init(&pt); + ptimeout_deadline_ms(&pt, 0); + ASSERT_INT_EQ(ptimeout_get_ms(&pt), 0); + ts = ptimeout_get_tsp(&pt); + ASSERT_PTR_NE(ts, NULL); + ASSERT_LONG_EQ(ts->tv_nsec, 0); + ASSERT_LONG_EQ(ts->tv_sec, 0); + TEST_DONE(); + + TEST_START("ptimeout_deadline_monotime"); + ptimeout_init(&pt); + ptimeout_deadline_monotime(&pt, monotime() + 100); + ASSERT_INT_GT(ptimeout_get_ms(&pt), 50000); + ASSERT_INT_LT(ptimeout_get_ms(&pt), 200000); + ts = ptimeout_get_tsp(&pt); + ASSERT_PTR_NE(ts, NULL); + ASSERT_LONG_GT(ts->tv_sec, 50); + ASSERT_LONG_LT(ts->tv_sec, 200); + TEST_DONE(); + + TEST_START("ptimeout_deadline_monotime past"); + ptimeout_init(&pt); + ptimeout_deadline_monotime(&pt, monotime() + 100); + ptimeout_deadline_monotime(&pt, monotime() - 100); + ASSERT_INT_EQ(ptimeout_get_ms(&pt), 0); + ts = ptimeout_get_tsp(&pt); + ASSERT_PTR_NE(ts, NULL); + ASSERT_LONG_EQ(ts->tv_nsec, 0); + ASSERT_LONG_EQ(ts->tv_sec, 0); + TEST_DONE(); +} diff --git a/regress/usr.bin/ssh/unittests/misc/tests.c b/regress/usr.bin/ssh/unittests/misc/tests.c index e1917f725b5..781e9d94047 100644 --- a/regress/usr.bin/ssh/unittests/misc/tests.c +++ b/regress/usr.bin/ssh/unittests/misc/tests.c @@ -1,4 +1,4 @@ -/* $OpenBSD: tests.c,v 1.9 2022/02/04 07:53:44 dtucker Exp $ */ +/* $OpenBSD: tests.c,v 1.10 2023/01/06 02:59:50 djm Exp $ */ /* * Regress test for misc helper functions. * @@ -22,6 +22,7 @@ void test_expand(void); void test_argv(void); void test_strdelim(void); void test_hpdelim(void); +void test_ptimeout(void); void tests(void) @@ -32,4 +33,5 @@ tests(void) test_argv(); test_strdelim(); test_hpdelim(); + test_ptimeout(); } |