diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/libsystemd/sd-device/test-sd-device-thread.c | 31 | ||||
-rw-r--r-- | src/libudev/test-udev-device-thread.c | 35 | ||||
-rw-r--r-- | src/test/meson.build | 8 |
3 files changed, 51 insertions, 23 deletions
diff --git a/src/libsystemd/sd-device/test-sd-device-thread.c b/src/libsystemd/sd-device/test-sd-device-thread.c index 6f3015515b..763e98c114 100644 --- a/src/libsystemd/sd-device/test-sd-device-thread.c +++ b/src/libsystemd/sd-device/test-sd-device-thread.c @@ -1,19 +1,25 @@ /* SPDX-License-Identifier: LGPL-2.1-or-later */ +#include <errno.h> #include <pthread.h> -#include <stdbool.h> #include <stdio.h> #include <stdlib.h> #include "sd-device.h" #include "device-util.h" -#include "macro.h" + +#define handle_error_errno(error, msg) \ + ({ \ + errno = abs(error); \ + perror(msg); \ + EXIT_FAILURE; \ + }) static void* thread(void *p) { sd_device **d = p; - assert_se(!(*d = sd_device_unref(*d))); + *d = sd_device_unref(*d); return NULL; } @@ -22,18 +28,27 @@ int main(int argc, char *argv[]) { sd_device *loopback; pthread_t t; const char *key, *value; + int r; - assert_se(unsetenv("SYSTEMD_MEMPOOL") == 0); + unsetenv("SYSTEMD_MEMPOOL"); - assert_se(sd_device_new_from_syspath(&loopback, "/sys/class/net/lo") >= 0); + r = sd_device_new_from_syspath(&loopback, "/sys/class/net/lo"); + if (r < 0) + return handle_error_errno(r, "Failed to create loopback device object"); FOREACH_DEVICE_PROPERTY(loopback, key, value) printf("%s=%s\n", key, value); - assert_se(pthread_create(&t, NULL, thread, &loopback) == 0); - assert_se(pthread_join(t, NULL) == 0); + r = pthread_create(&t, NULL, thread, &loopback); + if (r != 0) + return handle_error_errno(r, "Failed to create thread"); + + r = pthread_join(t, NULL); + if (r != 0) + return handle_error_errno(r, "Failed to wait thread finished"); - assert_se(!loopback); + if (loopback) + return handle_error_errno(r, "loopback device is not unref()ed"); return 0; } diff --git a/src/libudev/test-udev-device-thread.c b/src/libudev/test-udev-device-thread.c index a493152d4a..3f0341a698 100644 --- a/src/libudev/test-udev-device-thread.c +++ b/src/libudev/test-udev-device-thread.c @@ -1,36 +1,53 @@ /* SPDX-License-Identifier: LGPL-2.1-or-later */ +#include <errno.h> #include <pthread.h> -#include <stdbool.h> #include <stdio.h> #include <stdlib.h> #include "libudev.h" -#include "macro.h" +#define handle_error_errno(error, msg) \ + ({ \ + errno = abs(error); \ + perror(msg); \ + EXIT_FAILURE; \ + }) static void* thread(void *p) { struct udev_device **d = p; - assert_se(!(*d = udev_device_unref(*d))); + *d = udev_device_unref(*d); return NULL; } int main(int argc, char *argv[]) { struct udev_device *loopback; + struct udev_list_entry *entry, *e; pthread_t t; + int r; - assert_se(unsetenv("SYSTEMD_MEMPOOL") == 0); + unsetenv("SYSTEMD_MEMPOOL"); - assert_se(loopback = udev_device_new_from_syspath(NULL, "/sys/class/net/lo")); + loopback = udev_device_new_from_syspath(NULL, "/sys/class/net/lo"); + if (!loopback) + return handle_error_errno(errno, "Failed to create loopback device object"); - assert_se(udev_device_get_properties_list_entry(loopback)); + entry = udev_device_get_properties_list_entry(loopback); + udev_list_entry_foreach(e, entry) + printf("%s=%s\n", udev_list_entry_get_name(e), udev_list_entry_get_value(e)); - assert_se(pthread_create(&t, NULL, thread, &loopback) == 0); - assert_se(pthread_join(t, NULL) == 0); + r = pthread_create(&t, NULL, thread, &loopback); + if (r != 0) + return handle_error_errno(r, "Failed to create thread"); - assert_se(!loopback); + r = pthread_join(t, NULL); + if (r != 0) + return handle_error_errno(r, "Failed to wait thread finished"); + + if (loopback) + return handle_error_errno(r, "loopback device is not unref()ed"); return 0; } diff --git a/src/test/meson.build b/src/test/meson.build index 5db699db81..5d185eb77f 100644 --- a/src/test/meson.build +++ b/src/test/meson.build @@ -1042,15 +1042,11 @@ tests += [ []], [['src/libsystemd/sd-device/test-sd-device-thread.c'], - [libbasic, - libshared_static, - libsystemd], + [libsystemd], [threads]], [['src/libudev/test-udev-device-thread.c'], - [libbasic, - libshared_static, - libudev], + [libudev], [threads]], [['src/libsystemd/sd-device/test-sd-device-monitor.c'], |