Module Name: src
Committed By: pooka
Date: Fri Jan 14 13:23:16 UTC 2011
Modified Files:
src/tests/rump/rumpkern: Makefile t_sp.sh
src/tests/rump/rumpkern/h_client: h_simplecli.c
Added Files:
src/tests/rump/rumpkern/h_server: Makefile h_simpleserver.c
Log Message:
test remove signal delivery
To generate a diff of this commit:
cvs rdiff -u -r1.13 -r1.14 src/tests/rump/rumpkern/Makefile
cvs rdiff -u -r1.8 -r1.9 src/tests/rump/rumpkern/t_sp.sh
cvs rdiff -u -r1.1 -r1.2 src/tests/rump/rumpkern/h_client/h_simplecli.c
cvs rdiff -u -r0 -r1.3 src/tests/rump/rumpkern/h_server/Makefile \
src/tests/rump/rumpkern/h_server/h_simpleserver.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/Makefile
diff -u src/tests/rump/rumpkern/Makefile:1.13 src/tests/rump/rumpkern/Makefile:1.14
--- src/tests/rump/rumpkern/Makefile:1.13 Fri Jan 14 13:08:00 2011
+++ src/tests/rump/rumpkern/Makefile Fri Jan 14 13:23:15 2011
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.13 2011/01/14 13:08:00 pooka Exp $
+# $NetBSD: Makefile,v 1.14 2011/01/14 13:23:15 pooka Exp $
.include <bsd.own.mk>
@@ -16,7 +16,7 @@
TESTS_SH= t_sp
-SUBDIR+= h_client
+SUBDIR+= h_client h_server
ADD_TO_LD= -lrumpvfs -lrump -lrumpuser -lpthread
LDADD.t_modlinkset+= -lukfs -lrumpdev_disk -lrumpdev -lrumpfs_msdos
Index: src/tests/rump/rumpkern/t_sp.sh
diff -u src/tests/rump/rumpkern/t_sp.sh:1.8 src/tests/rump/rumpkern/t_sp.sh:1.9
--- src/tests/rump/rumpkern/t_sp.sh:1.8 Wed Jan 12 12:32:53 2011
+++ src/tests/rump/rumpkern/t_sp.sh Fri Jan 14 13:23:15 2011
@@ -1,4 +1,4 @@
-# $NetBSD: t_sp.sh,v 1.8 2011/01/12 12:32:53 pooka Exp $
+# $NetBSD: t_sp.sh,v 1.9 2011/01/14 13:23:15 pooka Exp $
#
# Copyright (c) 2010 The NetBSD Foundation, Inc.
# All rights reserved.
@@ -48,6 +48,7 @@
test_case fork_pipecomm fork pipecomm
test_case fork_fakeauth fork fakeauth
test_case sigsafe sigsafe sigsafe
+test_case signal signal
basic()
{
@@ -79,6 +80,16 @@
export RUMP_SERVER=unix://commsock
atf_check -s exit:0 rump_server ${RUMP_SERVER}
atf_check -s exit:0 $(atf_get_srcdir)/h_client/h_sigcli
+
+}
+
+signal()
+{
+
+ export RUMP_SERVER=unix://commsock
+ atf_check -s exit:0 $(atf_get_srcdir)/h_server/h_simpleserver \
+ ${RUMP_SERVER} sendsig 27
+ atf_check -s signal:27 $(atf_get_srcdir)/h_client/h_simplecli block
}
atf_init_test_cases()
@@ -92,4 +103,5 @@
atf_add_test_case fork_pipecomm
atf_add_test_case fork_fakeauth
atf_add_test_case sigsafe
+ atf_add_test_case signal
}
Index: src/tests/rump/rumpkern/h_client/h_simplecli.c
diff -u src/tests/rump/rumpkern/h_client/h_simplecli.c:1.1 src/tests/rump/rumpkern/h_client/h_simplecli.c:1.2
--- src/tests/rump/rumpkern/h_client/h_simplecli.c:1.1 Tue Nov 30 22:09:15 2010
+++ src/tests/rump/rumpkern/h_client/h_simplecli.c Fri Jan 14 13:23:15 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: h_simplecli.c,v 1.1 2010/11/30 22:09:15 pooka Exp $ */
+/* $NetBSD: h_simplecli.c,v 1.2 2011/01/14 13:23:15 pooka Exp $ */
#include <sys/types.h>
@@ -11,13 +11,20 @@
#include <rump/rumpclient.h>
int
-main(void)
+main(int argc, char *argv[])
{
if (rumpclient_init() == -1)
err(1, "rumpclient init");
- if (rump_sys_getpid() > 0)
- exit(0);
- err(1, "getpid");
+ if (argc > 1) {
+ for (;;) {
+ rump_sys_getpid();
+ usleep(10000);
+ }
+ } else {
+ if (rump_sys_getpid() > 0)
+ exit(0);
+ err(1, "getpid");
+ }
}
Added files:
Index: src/tests/rump/rumpkern/h_server/Makefile
diff -u /dev/null src/tests/rump/rumpkern/h_server/Makefile:1.3
--- /dev/null Fri Jan 14 13:23:16 2011
+++ src/tests/rump/rumpkern/h_server/Makefile Fri Jan 14 13:23:15 2011
@@ -0,0 +1,20 @@
+# $NetBSD: Makefile,v 1.3 2011/01/14 13:23:15 pooka Exp $
+#
+
+.include <bsd.own.mk>
+
+TESTSDIR= ${TESTSBASE}/rump/rumpkern/h_server
+
+TESTS_C= h_simpleserver
+
+ATFFILE= no
+
+LDADD+= -lrump -lrumpuser -lpthread
+
+WARNS= 4
+NOMAN=
+
+KERNSPACE != cd ${.CURDIR}/../../kernspace && ${PRINTOBJDIR}
+LDADD+= -L${KERNSPACE} -lkernspace
+
+.include <bsd.test.mk>
Index: src/tests/rump/rumpkern/h_server/h_simpleserver.c
diff -u /dev/null src/tests/rump/rumpkern/h_server/h_simpleserver.c:1.3
--- /dev/null Fri Jan 14 13:23:16 2011
+++ src/tests/rump/rumpkern/h_server/h_simpleserver.c Fri Jan 14 13:23:15 2011
@@ -0,0 +1,63 @@
+/* $NetBSD: h_simpleserver.c,v 1.3 2011/01/14 13:23:15 pooka Exp $ */
+
+#include <sys/types.h>
+
+#include <rump/rump.h>
+
+#include <err.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include "../../kernspace/kernspace.h"
+
+#define NOFAIL(e) do { int rv = e; if (rv) err(1, #e); } while (/*CONSTCOND*/0)
+
+struct {
+ const char *str;
+ void (*dofun)(char *);
+} actions[] = {
+ { "sendsig", rumptest_sendsig },
+};
+
+int
+main(int argc, char *argv[])
+{
+ unsigned i;
+ bool match;
+
+ if (argc < 2)
+ exit(1);
+
+ NOFAIL(rump_daemonize_begin());
+ NOFAIL(rump_init());
+ NOFAIL(rump_init_server(argv[1]));
+ NOFAIL(rump_daemonize_done(RUMP_DAEMONIZE_SUCCESS));
+
+ if (argc > 2) {
+ char *arg = NULL;
+
+ if (argc == 4)
+ arg = argv[3];
+
+ for (i = 0; i < __arraycount(actions); i++) {
+ if (strcmp(actions[i].str, argv[2]) == 0) {
+ rump_schedule();
+ actions[i].dofun(arg);
+ rump_unschedule();
+ match = true;
+ }
+ }
+
+ if (!match) {
+ exit(1);
+ }
+ pause();
+ } else {
+ for (;;)
+ pause();
+ }
+
+ return 0;
+}