]> granicus.if.org Git - strace/blobdiff - tests/signalfd4.c
tests: extend TEST_NETLINK_OBJECT macro
[strace] / tests / signalfd4.c
index 7b1d6ce2a156c28c30b4769900f99986869ddbc1..4391b92356662e824e6b043bce3247da11556f12 100644 (file)
@@ -1,5 +1,8 @@
 /*
+ * Check decoding of signalfd4 syscall.
+ *
  * Copyright (c) 2015-2016 Dmitry V. Levin <ldv@altlinux.org>
+ * Copyright (c) 2016-2017 The strace developers.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
 
 #include "tests.h"
 #include <fcntl.h>
+#include <asm/unistd.h>
 
-#if defined HAVE_SYS_SIGNALFD_H && defined HAVE_SIGNALFD && defined O_CLOEXEC
+#if defined HAVE_SYS_SIGNALFD_H \
+ && defined HAVE_SIGNALFD \
+ && defined O_CLOEXEC
 
 # include <signal.h>
+# include <stdio.h>
 # include <unistd.h>
 # include <sys/signalfd.h>
 
 int
 main(void)
 {
+       const char *const sigs = SIGUSR2 < SIGCHLD ? "USR2 CHLD" : "CHLD USR2";
+       const unsigned int size = get_sigset_size();
+
        sigset_t mask;
        sigemptyset(&mask);
        sigaddset(&mask, SIGUSR2);
        sigaddset(&mask, SIGCHLD);
-       (void) close(0);
-       if (signalfd(-1, &mask, O_CLOEXEC | O_NONBLOCK))
-               perror_msg_and_skip("signalfd");
+
+       int fd = signalfd(-1, &mask, O_CLOEXEC | O_NONBLOCK);
+       printf("signalfd4(-1, [%s], %u, SFD_CLOEXEC|SFD_NONBLOCK) = %s\n",
+              sigs, size, sprintrc(fd));
+
+       puts("+++ exited with 0 +++");
        return 0;
 }