Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/tests/rump/rumpkern test remove signal delivery
details: https://anonhg.NetBSD.org/src/rev/afd85a050770
branches: trunk
changeset: 760860:afd85a050770
user: pooka <pooka%NetBSD.org@localhost>
date: Fri Jan 14 13:23:15 2011 +0000
description:
test remove signal delivery
diffstat:
tests/rump/rumpkern/Makefile | 4 +-
tests/rump/rumpkern/h_client/h_simplecli.c | 17 +++++--
tests/rump/rumpkern/h_server/Makefile | 20 ++++++++
tests/rump/rumpkern/h_server/h_simpleserver.c | 63 +++++++++++++++++++++++++++
tests/rump/rumpkern/t_sp.sh | 14 +++++-
5 files changed, 110 insertions(+), 8 deletions(-)
diffs (183 lines):
diff -r faa0c5a6a138 -r afd85a050770 tests/rump/rumpkern/Makefile
--- a/tests/rump/rumpkern/Makefile Fri Jan 14 13:12:14 2011 +0000
+++ b/tests/rump/rumpkern/Makefile Fri Jan 14 13:23:15 2011 +0000
@@ -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
diff -r faa0c5a6a138 -r afd85a050770 tests/rump/rumpkern/h_client/h_simplecli.c
--- a/tests/rump/rumpkern/h_client/h_simplecli.c Fri Jan 14 13:12:14 2011 +0000
+++ b/tests/rump/rumpkern/h_client/h_simplecli.c Fri Jan 14 13:23:15 2011 +0000
@@ -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");
+ }
}
diff -r faa0c5a6a138 -r afd85a050770 tests/rump/rumpkern/h_server/Makefile
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/rump/rumpkern/h_server/Makefile Fri Jan 14 13:23:15 2011 +0000
@@ -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>
diff -r faa0c5a6a138 -r afd85a050770 tests/rump/rumpkern/h_server/h_simpleserver.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/rump/rumpkern/h_server/h_simpleserver.c Fri Jan 14 13:23:15 2011 +0000
@@ -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;
+}
diff -r faa0c5a6a138 -r afd85a050770 tests/rump/rumpkern/t_sp.sh
--- a/tests/rump/rumpkern/t_sp.sh Fri Jan 14 13:12:14 2011 +0000
+++ b/tests/rump/rumpkern/t_sp.sh Fri Jan 14 13:23:15 2011 +0000
@@ -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
}
Home |
Main Index |
Thread Index |
Old Index