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; +}