]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
tests: add test-random-util 6194/head
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Sun, 25 Jun 2017 22:01:02 +0000 (18:01 -0400)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Wed, 28 Jun 2017 14:34:45 +0000 (10:34 -0400)
In case you're wondering: 16 aligns in a nice pyramid.

.gitignore
Makefile.am
src/test/meson.build
src/test/test-random-util.c [new file with mode: 0644]

index 60eda2b8ce8f82661a7f57be8686736663f0dbdf..c8c59eba5626c95cfd5869478942c44d8d3fcb52 100644 (file)
 /test-process-util
 /test-pty
 /test-qcow2
+/test-random-util
 /test-ratelimit
 /test-replace-var
 /test-resolve
index 4838df69f9b9183b6a0cae5b9f61707cf21058a9..56f159b84edd746541413407166295a04e751a87 100644 (file)
@@ -1624,6 +1624,7 @@ tests += \
        test-conf-parser \
        test-capability \
        test-async \
+       test-random-util \
        test-ratelimit \
        test-condition \
        test-uid-range \
@@ -1945,6 +1946,12 @@ test_fstab_util_SOURCES = \
 test_fstab_util_LDADD = \
        libsystemd-shared.la
 
+test_random_util_SOURCES = \
+       src/test/test-random-util.c
+
+test_random_util_LDADD = \
+       libsystemd-shared.la
+
 test_ratelimit_SOURCES = \
        src/test/test-ratelimit.c
 
index 892d2929eef96f6f294a59451a36640424428605..7b493a4d0526458ca8b02d01a8184cc78c7274ce 100644 (file)
@@ -161,6 +161,10 @@ tests += [
          [],
          []],
 
+        [['src/test/test-random-util.c'],
+         [],
+         []],
+
         [['src/test/test-ratelimit.c'],
          [],
          []],
diff --git a/src/test/test-random-util.c b/src/test/test-random-util.c
new file mode 100644 (file)
index 0000000..50f4da2
--- /dev/null
@@ -0,0 +1,65 @@
+/***
+  This file is part of systemd.
+
+  Copyright 2017 Zbigniew Jędrzejewski-Szmek
+
+  systemd 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.
+
+  systemd 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 systemd; If not, see <http://www.gnu.org/licenses/>.
+***/
+
+#include "hexdecoct.h"
+#include "random-util.h"
+#include "log.h"
+
+static void test_acquire_random_bytes(bool high_quality_required) {
+        uint8_t buf[16] = {};
+        unsigned i;
+
+        log_info("/* %s */", __func__);
+
+        for (i = 1; i < sizeof buf; i++) {
+                assert_se(acquire_random_bytes(buf, i, high_quality_required) == 0);
+                if (i + 1 < sizeof buf)
+                        assert_se(buf[i] == 0);
+
+                hexdump(stdout, buf, i);
+        }
+}
+
+static void test_pseudorandom_bytes(void) {
+        uint8_t buf[16] = {};
+        unsigned i;
+
+        log_info("/* %s */", __func__);
+
+        for (i = 1; i < sizeof buf; i++) {
+                pseudorandom_bytes(buf, i);
+                if (i + 1 < sizeof buf)
+                        assert_se(buf[i] == 0);
+
+                hexdump(stdout, buf, i);
+        }
+}
+
+int main(int argc, char **argv) {
+        log_set_max_level(LOG_DEBUG);
+        log_parse_environment();
+        log_open();
+
+        test_acquire_random_bytes(false);
+        test_acquire_random_bytes(true);
+
+        test_pseudorandom_bytes();
+
+        return 0;
+}