diff --git a/tests/Makefile.am b/tests/Makefile.am
index c7c9a037af..98b8bb9ddc 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -180,6 +180,7 @@ test_programs = virshtest sockettest \
virbitmaptest \
vircgrouptest \
vircryptotest \
+ virrandomtest \
virpcitest \
virendiantest \
virfiletest \
@@ -423,6 +424,7 @@ test_libraries = libshunload.la \
vircgroupmock.la \
virpcimock.la \
virnetdevmock.la \
+ virrandommock.la \
nodeinfomock.la \
nssmock.la \
$(NULL)
@@ -1080,6 +1082,10 @@ vircryptotest_SOURCES = \
vircryptotest.c testutils.h testutils.c
vircryptotest_LDADD = $(LDADDS)
+virrandomtest_SOURCES = \
+ virrandomtest.c testutils.h testutils.c
+virrandomtest_LDADD = $(LDADDS)
+
virhostdevtest_SOURCES = \
virhostdevtest.c testutils.h testutils.c
virhostdevtest_LDADD = $(LDADDS)
@@ -1094,6 +1100,12 @@ virpcimock_la_CFLAGS = $(AM_CFLAGS)
virpcimock_la_LDFLAGS = $(MOCKLIBS_LDFLAGS)
virpcimock_la_LIBADD = $(MOCKLIBS_LIBS)
+virrandommock_la_SOURCES = \
+ virrandommock.c
+virrandommock_la_CFLAGS = $(AM_CFLAGS)
+virrandommock_la_LDFLAGS = $(MOCKLIBS_LDFLAGS)
+virrandommock_la_LIBADD = $(MOCKLIBS_LIBS)
+
nodeinfomock_la_SOURCES = \
nodeinfomock.c
nodeinfomock_la_CFLAGS = $(AM_CFLAGS)
diff --git a/tests/virrandommock.c b/tests/virrandommock.c
new file mode 100644
index 0000000000..6df5e20e8f
--- /dev/null
+++ b/tests/virrandommock.c
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2016 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see
+ * .
+ *
+ * Author: John Ferlan
+ */
+
+#include
+
+#include "internal.h"
+#include "virrandom.h"
+#include "virmock.h"
+
+#define VIR_FROM_THIS VIR_FROM_NONE
+
+int
+virRandomBytes(unsigned char *buf,
+ size_t buflen)
+{
+ size_t i;
+
+ for (i = 0; i < buflen; i++)
+ buf[i] = i;
+
+ return 0;
+}
diff --git a/tests/virrandomtest.c b/tests/virrandomtest.c
new file mode 100644
index 0000000000..367bdc7054
--- /dev/null
+++ b/tests/virrandomtest.c
@@ -0,0 +1,86 @@
+/*
+ * Copyright (C) 2016 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see
+ * .
+ *
+ * Author: John Ferlan
+ */
+
+#include
+
+#include "internal.h"
+#include "viralloc.h"
+#include "virrandom.h"
+#include "testutils.h"
+
+#ifndef WIN32
+
+# define VIR_FROM_THIS VIR_FROM_NONE
+
+static int
+testRandomBytes(const void *unused ATTRIBUTE_UNUSED)
+{
+ int ret = -1;
+ size_t i;
+ uint8_t *data;
+ size_t datalen = 32;
+
+ if (VIR_ALLOC_N(data, datalen) < 0)
+ return -1;
+
+ if (virRandomBytes(data, datalen) < 0) {
+ fprintf(stderr, "Failed to generate random bytes");
+ goto cleanup;
+ }
+
+ for (i = 0; i < datalen; i++) {
+ if (data[i] != i) {
+ fprintf(stderr,
+ "virRandomBytes data[%zu]='%x' not in sequence\n",
+ i, data[i]);
+ goto cleanup;
+ }
+ }
+
+ ret = 0;
+
+ cleanup:
+ VIR_FREE(data);
+ return ret;
+}
+
+
+static int
+mymain(void)
+{
+ int ret = 0;
+
+ if (virtTestRun("RandomBytes", testRandomBytes, NULL) < 0)
+ ret = -1;
+
+ return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE;
+}
+
+VIRT_TEST_MAIN_PRELOAD(mymain, abs_builddir "/.libs/virrandommock.so")
+
+#else
+
+int
+main(void)
+{
+ return EXIT_AM_SKIP;
+}
+
+#endif