# HG changeset patch
# User cl349@xxxxxxxxxxxxxxxxxxxx
# Node ID f1bb1316b26ffc7ad01391719b72fce9d496b38e
# Parent 1cb7adaa33555ac81d79c3f3cc868bc981557220
Fix up testsuite from recent changes.
(1) Make TESTDIR relative (my directory exceeded 108 chars, breaking sockets)
(2) Make TESTDIR if it doesn't exist
(3) Add dummy xc_domain_getinfo and xc_evtchn_bind_virq for fake libxc
(4) Fix tests broken by b594bb976a743d509f1ffabb5bc698874ab90d8f
(5) domain_cleanup() can be static, as it's not used elsewhere.
(6) With -Werror, "use" unused variable in domain_init() if TESTING
(7) Remove debugging printf on watch without perms.
(8) Loosen timeout in xs_test (valgrind + slow machine == bogus timeouts)
Signed-off-by: Rusty Russell <rusty@xxxxxxxxxxxxxxx> (authored)
Signed-off-by: Christian Limpach <Christian.Limpach@xxxxxxxxxxxx>
diff -r 1cb7adaa3355 -r f1bb1316b26f tools/xenstore/Makefile
--- a/tools/xenstore/Makefile Tue Sep 13 08:35:41 2005
+++ b/tools/xenstore/Makefile Tue Sep 13 09:09:13 2005
@@ -20,7 +20,7 @@
CFLAGS += $(BASECFLAGS)
LDFLAGS += $(PROFILE) -L$(XEN_LIBXC)
-TESTDIR = `pwd`/testsuite/tmp
+TESTDIR = testsuite/tmp
TESTFLAGS= -DTESTING
TESTENV = XENSTORED_ROOTDIR=$(TESTDIR) XENSTORED_RUNDIR=$(TESTDIR)
@@ -80,10 +80,13 @@
fullcheck: testsuite-run randomcheck stresstest
-testsuite-run: xenstored_test xs_test
+$(TESTDIR):
+ mkdir $@
+
+testsuite-run: xenstored_test xs_test $(TESTDIR)
$(TESTENV) testsuite/test.sh && echo
-testsuite-fast: xenstored_test xs_test
+testsuite-fast: xenstored_test xs_test $(TESTDIR)
@$(TESTENV) testsuite/test.sh --fast
testsuite-clean:
@@ -92,21 +95,21 @@
# Make this visible so they can see repeat tests without --fast if they
# fail.
RANDSEED=$(shell date +%s)
-randomcheck: xs_random xenstored_test
+randomcheck: xs_random xenstored_test $(TESTDIR)
$(TESTENV) ./xs_random --simple --fast /tmp/xs_random 200000
$(RANDSEED) && echo
$(TESTENV) ./xs_random --fast /tmp/xs_random 100000 $(RANDSEED) && echo
$(TESTENV) ./xs_random --fail /tmp/xs_random 10000 $(RANDSEED)
-crashme: xs_crashme xenstored_test
+crashme: xs_crashme xenstored_test $(TESTDIR)
rm -rf $(TESTDIR)/store $(TESTDIR)/transactions /tmp/xs_crashme.vglog*
/tmp/trace
export $(TESTENV); ./xs_crashme 5000 $(RANDSEED) 2>/dev/null
if [ -n "`cat /tmp/xs_crashme.vglog*`" ]; then echo Valgrind
complained; cat /tmp/xs_crashme.vglog*; exit 1; fi
rm -rf $(TESTDIR)/store $(TESTDIR)/transactions /tmp/xs_crashme.vglog*
/tmp/trace
-randomcheck-fast: xs_random xenstored_test
+randomcheck-fast: xs_random xenstored_test $(TESTDIR)
@$(TESTENV) ./xs_random --fast /tmp/xs_random 2000 $(RANDSEED)
-stresstest: xs_stress xenstored_test
+stresstest: xs_stress xenstored_test $(TESTDIR)
rm -rf $(TESTDIR)/store $(TESTDIR)/transactions
export $(TESTENV); PID=`./xenstored_test --output-pid
--trace-file=/tmp/trace`; ./xs_stress 5000; ret=$$?; kill $$PID; exit $$ret
diff -r 1cb7adaa3355 -r f1bb1316b26f tools/xenstore/fake_libxc.c
--- a/tools/xenstore/fake_libxc.c Tue Sep 13 08:35:41 2005
+++ b/tools/xenstore/fake_libxc.c Tue Sep 13 09:09:13 2005
@@ -83,6 +83,39 @@
return 0;
}
+int xc_domain_getinfo(int xc_handle __attribute__((unused)),
+ u32 first_domid, unsigned int max_doms,
+ xc_dominfo_t *info)
+{
+ assert(max_doms == 1);
+ info->domid = first_domid;
+
+ info->dying = 0;
+ info->shutdown = 0;
+ info->paused = 0;
+ info->blocked = 0;
+ info->running = 1;
+
+ info->shutdown_reason = 0;
+
+ if ( info->shutdown && (info->shutdown_reason == SHUTDOWN_crash) )
+ {
+ info->shutdown = 0;
+ info->crashed = 1;
+ }
+
+ return 1;
+}
+
+int xc_evtchn_bind_virq(int xc_handle __attribute__((unused)),
+ int virq __attribute__((unused)),
+ int *port)
+{
+ if (port)
+ *port = 0;
+ return 0;
+}
+
static void send_to_fd(int signo __attribute__((unused)))
{
int saved_errno = errno;
diff -r 1cb7adaa3355 -r f1bb1316b26f tools/xenstore/testsuite/07watch.test
--- a/tools/xenstore/testsuite/07watch.test Tue Sep 13 08:35:41 2005
+++ b/tools/xenstore/testsuite/07watch.test Tue Sep 13 09:09:13 2005
@@ -34,12 +34,13 @@
1 close
2 close
-# We don't get a watch from our own commands.
-watch /dir token
-mkdir /dir/newdir
-expect waitwatch failed: Connection timed out
-waitwatch
-close
+# Changed in b594bb976a743d509f1ffabb5bc698874ab90d8f
+## We don't get a watch from our own commands.
+#watch /dir token
+#mkdir /dir/newdir
+#expect waitwatch failed: Connection timed out
+#waitwatch
+#close
# ignore watches while doing commands, should work.
watch /dir token
diff -r 1cb7adaa3355 -r f1bb1316b26f
tools/xenstore/testsuite/14complexperms.test
--- a/tools/xenstore/testsuite/14complexperms.test Tue Sep 13 08:35:41 2005
+++ b/tools/xenstore/testsuite/14complexperms.test Tue Sep 13 09:09:13 2005
@@ -30,10 +30,8 @@
expect *Permission denied
setperm /dir/file 0 NONE
watch /dir/file token
-setid 0
-write /dir/file create contents
-rm /dir/file
-setid 1
+1 write /dir/file create contents
+1 rm /dir/file
expect waitwatch failed: Connection timed out
waitwatch
unwatch /dir/file token
@@ -78,10 +76,8 @@
expect *Permission denied
setperm /dir/file 0 NONE
watch /dir/file token
-setid 0
-write /dir/file create contents
-rm /dir/file
-setid 1
+1 write /dir/file create contents
+1 rm /dir/file
expect waitwatch failed: Connection timed out
waitwatch
unwatch /dir/file token
diff -r 1cb7adaa3355 -r f1bb1316b26f tools/xenstore/xenstored_core.c
--- a/tools/xenstore/xenstored_core.c Tue Sep 13 08:35:41 2005
+++ b/tools/xenstore/xenstored_core.c Tue Sep 13 09:09:13 2005
@@ -1640,8 +1640,10 @@
/* Session leader so ^C doesn't whack us. */
setsid();
+#ifndef TESTING /* Relative paths for socket names */
/* Move off any mount points we might be in. */
chdir("/");
+#endif
/* Discard our parent's old-fashioned umask prejudices. */
umask(0);
}
diff -r 1cb7adaa3355 -r f1bb1316b26f tools/xenstore/xenstored_domain.c
--- a/tools/xenstore/xenstored_domain.c Tue Sep 13 08:35:41 2005
+++ b/tools/xenstore/xenstored_domain.c Tue Sep 13 09:09:13 2005
@@ -216,6 +216,26 @@
munmap(domain->page, getpagesize());
return 0;
+}
+
+static void domain_cleanup(void)
+{
+ xc_dominfo_t dominfo;
+ struct domain *domain, *tmp;
+ int released = 0;
+
+ list_for_each_entry_safe(domain, tmp, &domains, list) {
+ if (xc_domain_getinfo(*xc_handle, domain->domid, 1,
+ &dominfo) == 1 &&
+ dominfo.domid == domain->domid &&
+ !dominfo.dying && !dominfo.crashed && !dominfo.shutdown)
+ continue;
+ talloc_free(domain->conn);
+ released++;
+ }
+
+ if (released)
+ fire_watches(NULL, "@releaseDomain", false);
}
/* We scan all domains rather than use the information given here. */
@@ -371,26 +391,6 @@
send_ack(conn, XS_RELEASE);
}
-void domain_cleanup(void)
-{
- xc_dominfo_t dominfo;
- struct domain *domain, *tmp;
- int released = 0;
-
- list_for_each_entry_safe(domain, tmp, &domains, list) {
- if (xc_domain_getinfo(*xc_handle, domain->domid, 1,
- &dominfo) == 1 &&
- dominfo.domid == domain->domid &&
- !dominfo.dying && !dominfo.crashed && !dominfo.shutdown)
- continue;
- talloc_free(domain->conn);
- released++;
- }
-
- if (released)
- fire_watches(NULL, "@releaseDomain", false);
-}
-
void do_get_domain_path(struct connection *conn, const char *domid_str)
{
struct domain *domain;
@@ -457,6 +457,7 @@
#ifdef TESTING
eventchn_fd = fake_open_eventchn();
+ (void)&st;
#else
/* Make sure any existing device file links to correct device. */
if ((lstat(EVTCHN_DEV_NAME, &st) != 0) || !S_ISCHR(st.st_mode) ||
diff -r 1cb7adaa3355 -r f1bb1316b26f tools/xenstore/xenstored_domain.h
--- a/tools/xenstore/xenstored_domain.h Tue Sep 13 08:35:41 2005
+++ b/tools/xenstore/xenstored_domain.h Tue Sep 13 09:09:13 2005
@@ -28,10 +28,6 @@
/* domid */
void do_release(struct connection *conn, const char *domid_str);
-/* Enumerate domains and release connections for non-existant or dying
- * domains. */
-void domain_cleanup(void);
-
/* domid */
void do_get_domain_path(struct connection *conn, const char *domid_str);
diff -r 1cb7adaa3355 -r f1bb1316b26f tools/xenstore/xenstored_watch.c
--- a/tools/xenstore/xenstored_watch.c Tue Sep 13 08:35:41 2005
+++ b/tools/xenstore/xenstored_watch.c Tue Sep 13 09:09:13 2005
@@ -105,7 +105,6 @@
*/
if (!check_node_perms(conn, node, XS_PERM_READ|XS_PERM_ENOENT_OK) &&
!check_event_node(node)) {
- fprintf(stderr, "No permission for %s\n", node);
return;
}
diff -r 1cb7adaa3355 -r f1bb1316b26f tools/xenstore/xs_test.c
--- a/tools/xenstore/xs_test.c Tue Sep 13 08:35:41 2005
+++ b/tools/xenstore/xs_test.c Tue Sep 13 09:09:13 2005
@@ -43,7 +43,7 @@
static struct xs_handle *handles[10] = { NULL };
-static unsigned int timeout_ms = 200;
+static unsigned int timeout_ms = 500;
static bool timeout_suppressed = true;
static bool readonly = false;
static bool print_input = false;
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|