[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