]>
git.ipfire.org Git - thirdparty/systemd.git/blob - src/test/test-sd-hwdb.c
3 #include "alloc-util.h"
7 static int test_failed_enumerate(void) {
8 _cleanup_(sd_hwdb_unrefp
) sd_hwdb
*hwdb
= NULL
;
9 const char *key
, *value
;
12 log_info("/* %s */", __func__
);
14 r
= sd_hwdb_new(&hwdb
);
19 assert_se(sd_hwdb_seek(hwdb
, "no-such-modalias-should-exist") == 0);
21 assert_se(sd_hwdb_enumerate(hwdb
, &key
, &value
) == 0);
22 assert_se(sd_hwdb_enumerate(hwdb
, &key
, NULL
) == -EINVAL
);
23 assert_se(sd_hwdb_enumerate(hwdb
, NULL
, &value
) == -EINVAL
);
28 #define DELL_MODALIAS \
29 "evdev:atkbd:dmi:bvnXXX:bvrYYY:bdZZZ:svnDellXXX:pnYYY"
31 static void test_basic_enumerate(void) {
32 _cleanup_(sd_hwdb_unrefp
) sd_hwdb
*hwdb
= NULL
;
33 const char *key
, *value
;
34 size_t len1
= 0, len2
= 0;
37 log_info("/* %s */", __func__
);
39 assert_se(sd_hwdb_new(&hwdb
) == 0);
41 assert_se(sd_hwdb_seek(hwdb
, DELL_MODALIAS
) == 0);
44 r
= sd_hwdb_enumerate(hwdb
, &key
, &value
);
45 assert(IN_SET(r
, 0, 1));
50 log_debug("A: \"%s\" → \"%s\"", key
, value
);
51 len1
+= strlen(key
) + strlen(value
);
54 SD_HWDB_FOREACH_PROPERTY(hwdb
, DELL_MODALIAS
, key
, value
) {
55 log_debug("B: \"%s\" → \"%s\"", key
, value
);
56 len2
+= strlen(key
) + strlen(value
);
59 assert_se(len1
== len2
);
62 int main(int argc
, char *argv
[]) {
65 test_setup_logging(LOG_DEBUG
);
67 r
= test_failed_enumerate();
69 return log_tests_skipped_errno(r
, "cannot open hwdb");
71 test_basic_enumerate();