[openssh-commits] [openssh] branch master updated: upstream: ASSERT_DOUBLE_* test helpers
git+noreply at mindrot.org
git+noreply at mindrot.org
Fri Dec 5 22:14:08 AEDT 2025
This is an automated email from the git hooks/post-receive script.
djm pushed a commit to branch master
in repository openssh.
The following commit(s) were added to refs/heads/master by this push:
new 5f5d1af47 upstream: ASSERT_DOUBLE_* test helpers
5f5d1af47 is described below
commit 5f5d1af478d4b9daf61fab1e4298973980d4c348
Author: djm at openbsd.org <djm at openbsd.org>
AuthorDate: Fri Dec 5 11:13:35 2025 +0000
upstream: ASSERT_DOUBLE_* test helpers
OpenBSD-Regress-ID: cdb5c4e95c0f00efb773ddba4056a49e33702cf9
---
regress/unittests/test_helper/test_helper.c | 43 ++++++++++++++++++++++++++++-
regress/unittests/test_helper/test_helper.h | 18 +++++++++++-
2 files changed, 59 insertions(+), 2 deletions(-)
diff --git a/regress/unittests/test_helper/test_helper.c b/regress/unittests/test_helper/test_helper.c
index 51b80119b..15d7a0063 100644
--- a/regress/unittests/test_helper/test_helper.c
+++ b/regress/unittests/test_helper/test_helper.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: test_helper.c,v 1.14 2025/04/15 04:00:42 djm Exp $ */
+/* $OpenBSD: test_helper.c,v 1.15 2025/12/05 11:13:35 djm Exp $ */
/*
* Copyright (c) 2011 Damien Miller <djm at mindrot.org>
*
@@ -604,6 +604,47 @@ assert_u64(const char *file, int line, const char *a1, const char *a2,
test_die();
}
+void
+assert_double(const char *file, int line, const char *a1, const char *a2,
+ double aa1, double aa2, enum test_predicate pred)
+{
+ const double epsilon = 0.000000001;
+
+ switch (pred) {
+ case TEST_EQ:
+ if (fabs(aa1 - aa2) < epsilon)
+ return;
+ break;
+ case TEST_NE:
+ if (fabs(aa1 - aa2) >= epsilon)
+ return;
+ break;
+ case TEST_LT:
+ if (aa1 < aa2)
+ return;
+ break;
+ case TEST_LE:
+ if (aa1 <= aa2)
+ return;
+ break;
+ case TEST_GT:
+ if (aa1 > aa2)
+ return;
+ break;
+ case TEST_GE:
+ if (aa1 >= aa2)
+ return;
+ break;
+ default:
+ abort();
+ }
+
+ test_header(file, line, a1, a2, "DOUBLE", pred);
+ fprintf(stderr, "%12s = %f\n", a1, aa1);
+ fprintf(stderr, "%12s = %f\n", a2, aa2);
+ test_die();
+}
+
void
assert_ptr(const char *file, int line, const char *a1, const char *a2,
const void *aa1, const void *aa2, enum test_predicate pred)
diff --git a/regress/unittests/test_helper/test_helper.h b/regress/unittests/test_helper/test_helper.h
index 4f7e2c87f..215513a06 100644
--- a/regress/unittests/test_helper/test_helper.h
+++ b/regress/unittests/test_helper/test_helper.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: test_helper.h,v 1.10 2025/04/15 04:00:42 djm Exp $ */
+/* $OpenBSD: test_helper.h,v 1.11 2025/12/05 11:13:35 djm Exp $ */
/*
* Copyright (c) 2011 Damien Miller <djm at mindrot.org>
*
@@ -99,6 +99,9 @@ void assert_u32(const char *file, int line,
void assert_u64(const char *file, int line,
const char *a1, const char *a2,
u_int64_t aa1, u_int64_t aa2, enum test_predicate pred);
+void assert_double(const char *file, int line,
+ const char *a1, const char *a2,
+ double aa1, double aa2, enum test_predicate pred);
#define TEST_START(n) test_start(n)
#define TEST_DONE() test_done()
@@ -285,6 +288,19 @@ void assert_u64(const char *file, int line,
#define ASSERT_U64_GE(a1, a2) \
assert_u64(__FILE__, __LINE__, #a1, #a2, a1, a2, TEST_GE)
+#define ASSERT_DOUBLE_EQ(a1, a2) \
+ assert_double(__FILE__, __LINE__, #a1, #a2, a1, a2, TEST_EQ)
+#define ASSERT_DOUBLE_NE(a1, a2) \
+ assert_double(__FILE__, __LINE__, #a1, #a2, a1, a2, TEST_NE)
+#define ASSERT_DOUBLE_LT(a1, a2) \
+ assert_double(__FILE__, __LINE__, #a1, #a2, a1, a2, TEST_LT)
+#define ASSERT_DOUBLE_LE(a1, a2) \
+ assert_double(__FILE__, __LINE__, #a1, #a2, a1, a2, TEST_LE)
+#define ASSERT_DOUBLE_GT(a1, a2) \
+ assert_double(__FILE__, __LINE__, #a1, #a2, a1, a2, TEST_GT)
+#define ASSERT_DOUBLE_GE(a1, a2) \
+ assert_double(__FILE__, __LINE__, #a1, #a2, a1, a2, TEST_GE)
+
/* Benchmarking support */
#define BENCH_START(name) \
do { \
--
To stop receiving notification emails like this one, please contact
djm at mindrot.org.
More information about the openssh-commits
mailing list