]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test-device-util: let's verify that we return proper error from log_device_*
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Thu, 1 Apr 2021 08:11:30 +0000 (10:11 +0200)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Thu, 1 Apr 2021 09:44:42 +0000 (11:44 +0200)
src/libsystemd/meson.build
src/libsystemd/sd-device/test-device-util.c [new file with mode: 0644]

index ad50815a7b6ddd289207c9f872d9799458618477..3def5655ccfd772d33543b1014d2e1cba30411a4 100644 (file)
@@ -307,6 +307,8 @@ tests += [
 
         [['src/libsystemd/sd-device/test-sd-device.c']],
 
+        [['src/libsystemd/sd-device/test-device-util.c']],
+
         [['src/libsystemd/sd-device/test-sd-device-monitor.c']],
 ]
 
diff --git a/src/libsystemd/sd-device/test-device-util.c b/src/libsystemd/sd-device/test-device-util.c
new file mode 100644 (file)
index 0000000..93fc105
--- /dev/null
@@ -0,0 +1,30 @@
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+
+#include "device-util.h"
+#include "tests.h"
+
+static void test_log_device_full(void) {
+        int r;
+
+        log_info("/* %s */", __func__);
+
+        for (int level = LOG_ERR; level <= LOG_DEBUG; level++) {
+                log_device_full(NULL, level, "test level=%d: %m", level);
+
+                r = log_device_full_errno(NULL, level, EUCLEAN, "test level=%d errno=EUCLEAN: %m", level);
+                assert_se(r == -EUCLEAN);
+
+                r = log_device_full_errno(NULL, level, 0, "test level=%d errno=0: %m", level);
+                assert_se(r == 0);
+
+                r = log_device_full_errno(NULL, level, SYNTHETIC_ERRNO(ENODATA), "test level=%d errno=S(ENODATA): %m", level);
+                assert_se(r == -ENODATA);
+        }
+}
+
+int main(int argc, char **argv) {
+        test_setup_logging(LOG_INFO);
+
+        test_log_device_full();
+        return 0;
+}