chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
pam_elogind compiling
[elogind.git]
/
src
/
libsystemd
/
sd-event
/
test-event.c
diff --git
a/src/libsystemd/sd-event/test-event.c
b/src/libsystemd/sd-event/test-event.c
index 3342ec696841ed1b801d001b3d0be9e9159b26b5..721700be7b0c2d45078efef2fc097123c9b655a5 100644
(file)
--- a/
src/libsystemd/sd-event/test-event.c
+++ b/
src/libsystemd/sd-event/test-event.c
@@
-22,6
+22,7
@@
#include "sd-event.h"
#include "log.h"
#include "util.h"
#include "sd-event.h"
#include "log.h"
#include "util.h"
+#include "macro.h"
static int prepare_handler(sd_event_source *s, void *userdata) {
log_info("preparing %c", PTR_TO_INT(userdata));
static int prepare_handler(sd_event_source *s, void *userdata) {
log_info("preparing %c", PTR_TO_INT(userdata));
@@
-62,12
+63,12
@@
static int io_handler(sd_event_source *s, int fd, uint32_t revents, void *userda
static int child_handler(sd_event_source *s, const siginfo_t *si, void *userdata) {
static int child_handler(sd_event_source *s, const siginfo_t *si, void *userdata) {
- assert(s);
- assert(si);
+ assert
_se
(s);
+ assert
_se
(si);
log_info("got child on %c", PTR_TO_INT(userdata));
log_info("got child on %c", PTR_TO_INT(userdata));
- assert(userdata == INT_TO_PTR('f'));
+ assert
_se
(userdata == INT_TO_PTR('f'));
assert_se(sd_event_exit(sd_event_source_get_event(s), 0) >= 0);
sd_event_source_unref(s);
assert_se(sd_event_exit(sd_event_source_get_event(s), 0) >= 0);
sd_event_source_unref(s);
@@
-80,12
+81,12
@@
static int signal_handler(sd_event_source *s, const struct signalfd_siginfo *si,
sigset_t ss;
pid_t pid;
sigset_t ss;
pid_t pid;
- assert(s);
- assert(si);
+ assert
_se
(s);
+ assert
_se
(si);
log_info("got signal on %c", PTR_TO_INT(userdata));
log_info("got signal on %c", PTR_TO_INT(userdata));
- assert(userdata == INT_TO_PTR('e'));
+ assert
_se
(userdata == INT_TO_PTR('e'));
assert_se(sigemptyset(&ss) >= 0);
assert_se(sigaddset(&ss, SIGCHLD) >= 0);
assert_se(sigemptyset(&ss) >= 0);
assert_se(sigaddset(&ss, SIGCHLD) >= 0);
@@
-109,11
+110,11
@@
static int defer_handler(sd_event_source *s, void *userdata) {
sd_event_source *p = NULL;
sigset_t ss;
sd_event_source *p = NULL;
sigset_t ss;
- assert(s);
+ assert
_se
(s);
log_info("got defer on %c", PTR_TO_INT(userdata));
log_info("got defer on %c", PTR_TO_INT(userdata));
- assert(userdata == INT_TO_PTR('d'));
+ assert
_se
(userdata == INT_TO_PTR('d'));
assert_se(sigemptyset(&ss) >= 0);
assert_se(sigaddset(&ss, SIGUSR1) >= 0);
assert_se(sigemptyset(&ss) >= 0);
assert_se(sigaddset(&ss, SIGUSR1) >= 0);
@@
-140,7
+141,7
@@
static int time_handler(sd_event_source *s, uint64_t usec, void *userdata) {
assert_se(sd_event_add_defer(sd_event_source_get_event(s), &p, defer_handler, INT_TO_PTR('d')) >= 0);
assert_se(sd_event_source_set_enabled(p, SD_EVENT_ONESHOT) >= 0);
} else {
assert_se(sd_event_add_defer(sd_event_source_get_event(s), &p, defer_handler, INT_TO_PTR('d')) >= 0);
assert_se(sd_event_source_set_enabled(p, SD_EVENT_ONESHOT) >= 0);
} else {
- assert(!got_c);
+ assert
_se
(!got_c);
got_c = true;
}
} else
got_c = true;
}
} else
@@
-206,6
+207,10
@@
int main(int argc, char *argv[]) {
assert_se(sd_event_source_set_enabled(z, SD_EVENT_ONESHOT) >= 0);
assert_se(sd_event_source_set_prepare(z, prepare_handler) >= 0);
assert_se(sd_event_source_set_enabled(z, SD_EVENT_ONESHOT) >= 0);
assert_se(sd_event_source_set_prepare(z, prepare_handler) >= 0);
+ /* Test for floating event sources */
+ assert_se(sigprocmask_many(SIG_BLOCK, SIGRTMIN+1, -1) == 0);
+ assert_se(sd_event_add_signal(e, NULL, SIGRTMIN+1, NULL, NULL) >= 0);
+
assert_se(write(a[1], &ch, 1) >= 0);
assert_se(write(b[1], &ch, 1) >= 0);
assert_se(write(a[1], &ch, 1) >= 0);
assert_se(write(b[1], &ch, 1) >= 0);