From dd7ce063fb46e1a8e17e5faf70c7cda70924e1e9 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Wed, 21 Oct 2020 16:49:46 +0200 Subject: tests: add nmtst_get_rand_one_case_in() helper --- shared/nm-utils/nm-test-utils.h | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/shared/nm-utils/nm-test-utils.h b/shared/nm-utils/nm-test-utils.h index 9d48488297..431397f0bf 100644 --- a/shared/nm-utils/nm-test-utils.h +++ b/shared/nm-utils/nm-test-utils.h @@ -900,14 +900,16 @@ nmtst_get_rand_uint64(void) static inline guint nmtst_get_rand_uint(void) { - G_STATIC_ASSERT_EXPR(sizeof(guint32) == sizeof(guint)); - return nmtst_get_rand_uint32(); + G_STATIC_ASSERT_EXPR((sizeof(guint) == sizeof(guint32) || (sizeof(guint) == sizeof(guint64)))); + if (sizeof(guint32) == sizeof(guint)) + return nmtst_get_rand_uint32(); + return nmtst_get_rand_uint64(); } static inline gsize nmtst_get_rand_size(void) { - G_STATIC_ASSERT_EXPR(sizeof(gsize) == sizeof(guint32) || sizeof(gsize) == sizeof(guint64)); + G_STATIC_ASSERT_EXPR((sizeof(gsize) == sizeof(guint32) || (sizeof(gsize) == sizeof(guint64)))); if (sizeof(gsize) == sizeof(guint32)) return nmtst_get_rand_uint32(); return nmtst_get_rand_uint64(); @@ -919,6 +921,17 @@ nmtst_get_rand_bool(void) return nmtst_get_rand_uint32() % 2; } +static inline gboolean +nmtst_get_rand_one_case_in(guint32 num) +{ + /* num=1 doesn't make much sense, because it will always return %TRUE. + * Still accept it, it might be that @num is calculated, so 1 might be + * a valid edge case. */ + g_assert(num > 0); + + return (nmtst_get_rand_uint32() % num) == 0; +} + static inline gpointer nmtst_rand_buf(GRand *rand, gpointer buffer, gsize buffer_length) { -- cgit v1.2.3