]>
git.ipfire.org Git - thirdparty/systemd.git/blob - src/test/test-sd-hwdb.c
3 #include "alloc-util.h"
4 #include "errno-util.h"
8 static int test_failed_enumerate(void) {
9 _cleanup_(sd_hwdb_unrefp
) sd_hwdb
*hwdb
= NULL
;
10 const char *key
, *value
;
13 log_info("/* %s */", __func__
);
15 r
= sd_hwdb_new(&hwdb
);
16 if (r
== -ENOENT
|| ERRNO_IS_PRIVILEGE(r
))
20 assert_se(sd_hwdb_seek(hwdb
, "no-such-modalias-should-exist") == 0);
22 assert_se(sd_hwdb_enumerate(hwdb
, &key
, &value
) == 0);
23 assert_se(sd_hwdb_enumerate(hwdb
, &key
, NULL
) == -EINVAL
);
24 assert_se(sd_hwdb_enumerate(hwdb
, NULL
, &value
) == -EINVAL
);
29 #define DELL_MODALIAS \
30 "evdev:atkbd:dmi:bvnXXX:bvrYYY:bdZZZ:svnDellXXX:pnYYY"
32 static void test_basic_enumerate(void) {
33 _cleanup_(sd_hwdb_unrefp
) sd_hwdb
*hwdb
= NULL
;
34 const char *key
, *value
;
35 size_t len1
= 0, len2
= 0;
38 log_info("/* %s */", __func__
);
40 assert_se(sd_hwdb_new(&hwdb
) == 0);
42 assert_se(sd_hwdb_seek(hwdb
, DELL_MODALIAS
) == 0);
45 r
= sd_hwdb_enumerate(hwdb
, &key
, &value
);
46 assert(IN_SET(r
, 0, 1));
51 log_debug("A: \"%s\" → \"%s\"", key
, value
);
52 len1
+= strlen(key
) + strlen(value
);
55 SD_HWDB_FOREACH_PROPERTY(hwdb
, DELL_MODALIAS
, key
, value
) {
56 log_debug("B: \"%s\" → \"%s\"", key
, value
);
57 len2
+= strlen(key
) + strlen(value
);
60 assert_se(len1
== len2
);
63 int main(int argc
, char *argv
[]) {
66 test_setup_logging(LOG_DEBUG
);
68 r
= test_failed_enumerate();
70 return log_tests_skipped_errno(r
, "cannot open hwdb");
72 test_basic_enumerate();