We arrange for the test configuration to look for the daemons on a different host and port, and we provide a convenient way to run such a pair of daemons.
Signed-off-by: Ian Jackson <ian.jack...@eu.citrix.com> --- mg-schema-test-database | 57 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 56 insertions(+), 1 deletion(-) diff --git a/mg-schema-test-database b/mg-schema-test-database index fec7f20..73d92f3 100755 --- a/mg-schema-test-database +++ b/mg-schema-test-database @@ -4,7 +4,8 @@ # # # ./mg-schema-test-database create [_SUFFIX] [TASK...] \ -# [-fMINFLIGHT | -f-NUMFLIGHTS] +# [-fMINFLIGHT | -f-NUMFLIGHTS] \ +# [-hCTRL_DAEMONS_HOST] [-fOWNER_D_PORT[,QUEUE_D_PORT]] # # does `drop' and then creates # - the database osstestdb_test_SUFFIX @@ -16,12 +17,24 @@ # TASKs become idle in the test copy. Others become allocated to # a specially-created `owned by someone in real db' task. # +# Default for CTRL_DAEMONS_HOST is localhost; if no port is supplied, +# we use the corresponding production port + 2; if only one port is +# supplied we use that and the next port number. +# # # ./mg-schema-test-database drop [_SUFFIX] # # deletes your test database and removes the local-config file # # +# ./mg-schema-test-database daemons [_SUFFIX] +# +# synchronously runs owner and queue daemons for your test database +# +# NB that you can't drop a test database with these daemons running, +# because Postgres will refuse to drop a database that anyone is +# connected to. + set -e -o posix ${OSSTEST_DEBUG:+-x} @@ -114,6 +127,9 @@ END } withtest () { + if ! [ -e "$tcfg" ]; then + fail "test $dbname not set up ($tcfg does not exist)" + fi OSSTEST_CONFIG="$test_cfg_setting" "$@" } @@ -194,6 +210,10 @@ create) ;; -f*) minflight="${arg#-f}" ;; + -h*) ctrlhost="${arg#-h}" + ;; + -p*) ctrlports="${arg#-p}" + ;; *) fail "bad arg to create" ;; esac @@ -224,6 +244,18 @@ END ;; esac + if [ "x$ctrlhost" = x ]; then + ctrlhost=localhost + fi + case "$ctrlports" in + *,*) ;; + ?*) ctrlports+=,$(( $ctrlports + 1 )) ;; + '') + ctrlports=$(( $(getconfig OwnerDaemonPort) + 2)),$(( + $(getconfig QueueDaemonPort) + 2)) + ;; + esac + #---------- preparation and data-gathering ---------- bad=$( psql_query <<END @@ -244,6 +276,8 @@ END printf "Setting up %s (minflight=%d, tasks=%s)...\n" \ $dbname "$minflight" "${tasks# }" + printf "Configuring for any daemons to be on %s:%s.\n" \ + $ctrlhost $ctrlports # create the config overlay perl >$tcfg.tmp -we ' @@ -450,6 +484,27 @@ END ;; +#========== DAEMONS ========== + +daemons) + parse_only_suffix "$@" + + dbname + + printf "Running daemons for %s....\n" "$dbname" + + withtest \ + exec_resetting_sigint ./ms-ownerdaemon & + + sleep 1 + + withtest \ + exec_resetting_sigint ./ms-queuedaemon & + + wait + + ;; + #========== EPILOGUE ========== *) -- 1.7.10.4 _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel