Module Name: src
Committed By: pooka
Date: Wed Jan 12 11:37:45 UTC 2011
Modified Files:
src/tests/rump/rumpkern/h_client: h_stresscli.c
Log Message:
Give the stress queen two modes: one which nicely suggests an exit
and another one which keeps moet et chandon in her pretty cabinet.
To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 src/tests/rump/rumpkern/h_client/h_stresscli.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/tests/rump/rumpkern/h_client/h_stresscli.c
diff -u src/tests/rump/rumpkern/h_client/h_stresscli.c:1.6 src/tests/rump/rumpkern/h_client/h_stresscli.c:1.7
--- src/tests/rump/rumpkern/h_client/h_stresscli.c:1.6 Wed Jan 12 11:12:25 2011
+++ src/tests/rump/rumpkern/h_client/h_stresscli.c Wed Jan 12 11:37:45 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: h_stresscli.c,v 1.6 2011/01/12 11:12:25 pooka Exp $ */
+/* $NetBSD: h_stresscli.c,v 1.7 2011/01/12 11:37:45 pooka Exp $ */
#include <sys/types.h>
#include <sys/atomic.h>
@@ -69,12 +69,20 @@
pid_t apid;
int ncli = 0;
int i = 0, j;
- int status;
+ int status, thesig;
int rounds;
- if (argc != 2)
+ if (argc != 2 && argc != 3)
errx(1, "need roundcount");
+ if (argc == 3) {
+ if (strcmp(argv[2], "kill") != 0)
+ errx(1, "optional 3rd param must be kill");
+ thesig = SIGKILL;
+ } else {
+ thesig = SIGUSR1;
+ }
+
signal(SIGUSR1, signaali);
memset(clis, 0, sizeof(clis));
@@ -115,16 +123,25 @@
}
usleep(100000);
- kill(clis[i], SIGUSR1);
+ kill(clis[i], thesig);
apid = wait(&status);
if (apid != clis[i])
errx(1, "wanted pid %d, got %d\n", clis[i], apid);
clis[i] = 0;
ncli--;
- if (!WIFEXITED(status) || WEXITSTATUS(status) != 0) {
- fprintf(stderr, "child died with 0x%x\n", status);
- exit(1);
+ if (thesig == SIGUSR1) {
+ if (!WIFEXITED(status) || WEXITSTATUS(status) != 0) {
+ fprintf(stderr, "child died with 0x%x\n",
+ status);
+ exit(1);
+ }
+ } else {
+ if (!WIFSIGNALED(status) || WTERMSIG(status) != thesig){
+ fprintf(stderr, "child died with 0x%x\n",
+ status);
+ exit(1);
+ }
}
}