summaryrefslogtreecommitdiff
path: root/shared/nm-test-utils.h
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2016-04-06 16:53:02 +0200
committerThomas Haller <thaller@redhat.com>2016-04-11 11:22:50 +0200
commit0e78ce5ed6ef20fc54623d601cc3d0c3fea67d05 (patch)
tree6d4d058baec2401ba470215b2130d7893df44ef6 /shared/nm-test-utils.h
parentfbfe2ef216a09fb76be85c4bfd667b8392da5d0e (diff)
downloadNetworkManager-0e78ce5ed6ef20fc54623d601cc3d0c3fea67d05.tar.gz
nmtst: add nmtst_rand_buf() util
Diffstat (limited to 'shared/nm-test-utils.h')
-rw-r--r--shared/nm-test-utils.h28
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)
{