[launchd-changes] [23447] trunk/launchd/testing/our_kill_is_busted.c
source_changes at macosforge.org
source_changes at macosforge.org
Tue Oct 30 14:41:05 PDT 2007
Revision: 23447
http://trac.macosforge.org/projects/launchd/changeset/23447
Author: zarzycki at apple.com
Date: 2007-10-30 14:41:05 -0700 (Tue, 30 Oct 2007)
Log Message:
-----------
5487498
Added Paths:
-----------
trunk/launchd/testing/our_kill_is_busted.c
Added: trunk/launchd/testing/our_kill_is_busted.c
===================================================================
--- trunk/launchd/testing/our_kill_is_busted.c (rev 0)
+++ trunk/launchd/testing/our_kill_is_busted.c 2007-10-30 21:41:05 UTC (rev 23447)
@@ -0,0 +1,56 @@
+#include <sys/types.h>
+#include <sys/wait.h>
+#include <unistd.h>
+#include <assert.h>
+#include <errno.h>
+#include <string.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <signal.h>
+
+int
+main(void)
+{
+ int wstatus;
+ pid_t p, wr;
+ int kill_r, killpg_r, r;
+ int kill_e, killpg_e;
+
+ p = fork();
+ assert(p != -1);
+
+ if (p == 0) {
+ r = setsid();
+ assert(r != -1);
+ _exit(EXIT_SUCCESS);
+ }
+
+ sleep(1);
+
+ errno = 0;
+ kill_r = kill(p, SIGTERM);
+ kill_e = errno;
+
+ errno = 0;
+ killpg_r = kill(-(p), SIGTERM);
+ killpg_e = errno;
+
+ if (kill_r != killpg_r) {
+ fprintf(stderr, "Bug. kill() is inconsistent.\n");
+ fprintf(stderr, "kill( p, SIGTERM) returned %d and errno == %d\n", kill_r, kill_e);
+ fprintf(stderr, "kill(-(p), SIGTERM) returned %d and errno == %d\n", killpg_r, killpg_e);
+ if (kill_e == EPERM || killpg_e == EPERM) {
+ fprintf(stderr, "The kernel lied. We should have the right to kill 'p' and it returned EPERM.\n");
+ }
+ if (kill_e == ESRCH || killpg_e == ESRCH) {
+ fprintf(stderr, "The kernel is confused. PID 'p' exists, but the kernel couldn't find it.\n");
+ }
+
+ exit(EXIT_FAILURE);
+ }
+
+ wr = waitpid(p, &wstatus, 0);
+ assert(wr == p);
+
+ exit(EXIT_SUCCESS);
+}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20071030/43ea45ba/attachment.html
More information about the launchd-changes
mailing list