diff --git a/munit.c b/munit.c index 00ede07..950dc75 100644 --- a/munit.c +++ b/munit.c @@ -1009,6 +1009,17 @@ munit_rand_int_range(int min, int max) { return min + munit_rand_at_most(0, (munit_uint32_t) range); } +munit_uint32_t +munit_rand_uint32_range(munit_uint32_t min, munit_uint32_t max) { + + munit_uint32_t range = (munit_uint32_t) max - (munit_uint32_t) min; + + if (min > max) + return munit_rand_uint32_range(max, min); + + return min + munit_rand_at_most(0, (munit_uint32_t) range); +} + double munit_rand_double(void) { munit_uint32_t old, state; diff --git a/munit.h b/munit.h index 8460a45..4cdacd4 100644 --- a/munit.h +++ b/munit.h @@ -396,6 +396,7 @@ void* munit_malloc_ex(const char* filename, int line, size_t size); void munit_rand_seed(munit_uint32_t seed); munit_uint32_t munit_rand_uint32(void); +munit_uint32_t munit_rand_uint32_range(munit_uint32_t min, munit_uint32_t max); int munit_rand_int_range(int min, int max); double munit_rand_double(void); void munit_rand_memory(size_t size, munit_uint8_t buffer[MUNIT_ARRAY_PARAM(size)]);