diff options
author | Thomas Haller <thaller@redhat.com> | 2016-04-06 16:53:02 +0200 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2016-04-11 11:22:50 +0200 |
commit | 0e78ce5ed6ef20fc54623d601cc3d0c3fea67d05 (patch) | |
tree | 6d4d058baec2401ba470215b2130d7893df44ef6 /shared/nm-test-utils.h | |
parent | fbfe2ef216a09fb76be85c4bfd667b8392da5d0e (diff) | |
download | NetworkManager-0e78ce5ed6ef20fc54623d601cc3d0c3fea67d05.tar.gz |
nmtst: add nmtst_rand_buf() util
Diffstat (limited to 'shared/nm-test-utils.h')
-rw-r--r-- | shared/nm-test-utils.h | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/shared/nm-test-utils.h b/shared/nm-test-utils.h index 2503245761..8e21186dda 100644 --- a/shared/nm-test-utils.h +++ b/shared/nm-test-utils.h @@ -782,6 +782,34 @@ nmtst_get_rand_int (void) return g_rand_int (nmtst_get_rand ()); } +inline static gpointer +nmtst_rand_buf (GRand *rand, gpointer buffer, gsize buffer_length) +{ + guint32 v; + guint8 *b = buffer; + + if (!buffer_length) + return buffer; + + g_assert (buffer); + + if (!rand) + rand = nmtst_get_rand (); + + for (; buffer_length >= sizeof (guint32); buffer_length -= sizeof (guint32), b += sizeof (guint32)) { + v = g_rand_int (rand); + memcpy (b, &v, sizeof (guint32)); + } + if (buffer_length > 0) { + v = g_rand_int (rand); + do { + *(b++) = v & 0xFF; + v >>= 8; + } while (--buffer_length > 0); + } + return buffer; +} + inline static void * nmtst_rand_perm (GRand *rand, void *dst, const void *src, gsize elmt_size, gsize n_elmt) { |