test: add test for sd_device
authorYu Watanabe <watanabe.yu+github@gmail.com>
Fri, 28 Sep 2018 11:52:48 +0000 (20:52 +0900)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Tue, 2 Oct 2018 21:04:55 +0000 (23:04 +0200)
src/libsystemd/sd-device/test-sd-device.c [new file with mode: 0644]
src/test/meson.build

diff --git a/src/libsystemd/sd-device/test-sd-device.c b/src/libsystemd/sd-device/test-sd-device.c
new file mode 100644 (file)
index 0000000..fc2d02b
--- /dev/null
@@ -0,0 +1,71 @@
+/* SPDX-License-Identifier: LGPL-2.1+ */
+
+#include "device-enumerator-private.h"
+#include "device-private.h"
+#include "device-util.h"
+#include "string-util.h"
+#include "tests.h"
+#include "util.h"
+
+static void test_sd_device_basic(void) {
+        _cleanup_(sd_device_enumerator_unrefp) sd_device_enumerator *e = NULL;
+        sd_device *d;
+
+        assert_se(sd_device_enumerator_new(&e) >= 0);
+        assert_se(sd_device_enumerator_allow_uninitialized(e) >= 0);
+        FOREACH_DEVICE(e, d) {
+                const char *syspath, *devpath, *subsystem, *val;
+                dev_t devnum;
+                usec_t usec;
+                int i, r;
+
+                assert_se(sd_device_get_syspath(d, &syspath) >= 0);
+
+                r = sd_device_get_subsystem(d, &subsystem);
+                assert_se(r >= 0 || r == -ENOENT);
+
+                r = sd_device_get_devtype(d, &val);
+                assert_se(r >= 0 || r == -ENOENT);
+
+                r = sd_device_get_devnum(d, &devnum);
+                assert_se(r >= 0 || r == -ENOENT);
+
+                r = sd_device_get_ifindex(d, &i);
+                assert_se(r >= 0 || r == -ENOENT);
+
+                r = sd_device_get_driver(d, &val);
+                assert_se(r >= 0 || r == -ENOENT);
+
+                assert_se(sd_device_get_devpath(d, &devpath) >= 0);
+
+                r = sd_device_get_devname(d, &val);
+                assert_se(r >= 0 || r == -ENOENT);
+
+                assert_se(sd_device_get_sysname(d, &val) >= 0);
+
+                r = sd_device_get_sysnum(d, &val);
+                assert_se(r >= 0 || r == -ENOENT);
+
+                i = 0;
+                assert_se(sd_device_get_is_initialized(d, &i) >= 0);
+                if (i > 0) {
+                        r = sd_device_get_usec_since_initialized(d, &usec);
+                        assert_se(r >= 0 || r == -ENODATA);
+                }
+
+                r = sd_device_get_sysattr_value(d, "name_assign_type", &val);
+                assert_se(r >= 0 || IN_SET(r, -ENOENT, -EINVAL));
+
+                r = sd_device_get_property_value(d, "ID_NET_DRIVER", &val);
+                assert_se(r >= 0 || r == -ENOENT);
+
+                log_debug("syspath:%s devpath:%s subsystem:%s", syspath, devpath, strempty(subsystem));
+        }
+}
+
+int main(int argc, char **argv) {
+        test_setup_logging(LOG_INFO);
+
+        test_sd_device_basic();
+        return 0;
+}
index 6377937..b3d8b72 100644 (file)
@@ -880,6 +880,10 @@ tests += [
         [['src/libsystemd/sd-login/test-login.c'],
          [],
          []],
+
+        [['src/libsystemd/sd-device/test-sd-device.c'],
+         [],
+         []],
 ]
 
 if cxx.found()