]> git.ipfire.org Git - thirdparty/openssh-portable.git/commitdiff
upstream commit
authordtucker@openbsd.org <dtucker@openbsd.org>
Tue, 14 Mar 2017 01:20:29 +0000 (01:20 +0000)
committerDarren Tucker <dtucker@zip.com.au>
Tue, 14 Mar 2017 02:45:14 +0000 (13:45 +1100)
Add unit test for convtime().

Upstream-Regress-ID: 8717bc0ca4c21120f6dd3a1d3b7a363f707c31e1

regress/unittests/Makefile
regress/unittests/conversion/Makefile [new file with mode: 0644]
regress/unittests/conversion/tests.c [new file with mode: 0644]

index e70b1664431163f949ff5860343bb863cb48c13d..e975f6ca4160bcdea44e60a91ecc0556ccdb1604 100644 (file)
@@ -1,5 +1,6 @@
-#      $OpenBSD: Makefile,v 1.7 2016/08/19 06:44:13 djm Exp $
-REGRESS_FAIL_EARLY= yes
-SUBDIR=        test_helper sshbuf sshkey bitmap kex hostkeys utf8 match
+#      $OpenBSD: Makefile,v 1.9 2017/03/14 01:20:29 dtucker Exp $
+
+REGRESS_FAIL_EARLY?=   yes
+SUBDIR=        test_helper sshbuf sshkey bitmap kex hostkeys utf8 match conversion
 
 .include <bsd.subdir.mk>
diff --git a/regress/unittests/conversion/Makefile b/regress/unittests/conversion/Makefile
new file mode 100644 (file)
index 0000000..cde97dc
--- /dev/null
@@ -0,0 +1,10 @@
+#      $OpenBSD: Makefile,v 1.1 2017/03/14 01:20:29 dtucker Exp $
+
+PROG=test_conversion
+SRCS=tests.c
+REGRESS_TARGETS=run-regress-${PROG}
+
+run-regress-${PROG}: ${PROG}
+       env ${TEST_ENV} ./${PROG}
+
+.include <bsd.regress.mk>
diff --git a/regress/unittests/conversion/tests.c b/regress/unittests/conversion/tests.c
new file mode 100644 (file)
index 0000000..ebd7bde
--- /dev/null
@@ -0,0 +1,47 @@
+/*     $OpenBSD: tests.c,v 1.1 2017/03/14 01:20:29 dtucker Exp $ */
+/*
+ * Regress test for conversions
+ *
+ * Placed in the public domain
+ */
+
+#include <sys/types.h>
+#include <sys/param.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "test_helper.h"
+
+#include "misc.h"
+
+void
+tests(void)
+{
+       char buf[1024];
+
+       TEST_START("conversion_convtime");
+       ASSERT_LONG_EQ(convtime("0"), 0);
+       ASSERT_LONG_EQ(convtime("1"), 1);
+       ASSERT_LONG_EQ(convtime("1S"), 1);
+       /* from the examples in the comment above the function */
+       ASSERT_LONG_EQ(convtime("90m"), 5400);
+       ASSERT_LONG_EQ(convtime("1h30m"), 5400);
+       ASSERT_LONG_EQ(convtime("2d"), 172800);
+       ASSERT_LONG_EQ(convtime("1w"), 604800);
+
+       /* negative time is not allowed */
+       ASSERT_LONG_EQ(convtime("-7"), -1);
+       ASSERT_LONG_EQ(convtime("-9d"), -1);
+       
+       /* overflow */
+       snprintf(buf, sizeof buf, "%llu", (unsigned long long)LONG_MAX + 1);
+       ASSERT_LONG_EQ(convtime(buf), -1);
+
+       /* overflow with multiplier */
+       snprintf(buf, sizeof buf, "%lluM", (unsigned long long)LONG_MAX/60 + 1);
+       ASSERT_LONG_EQ(convtime(buf), -1);
+       ASSERT_LONG_EQ(convtime("1000000000000000000000w"), -1);
+       TEST_DONE();
+}