From: Ben Pfaff Date: Thu, 11 Apr 2013 21:08:01 +0000 (-0700) Subject: tests: Add test for ovs-vswitchd regression with empty db. X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=b789803140afa5756ea2181455dcb601ab29cb8f;p=sliver-openvswitch.git tests: Add test for ovs-vswitchd regression with empty db. Signed-off-by: Ben Pfaff --- diff --git a/tests/automake.mk b/tests/automake.mk index 275ff53fd..b9dbf3bd7 100644 --- a/tests/automake.mk +++ b/tests/automake.mk @@ -35,6 +35,7 @@ TESTSUITE_AT = \ tests/tunnel.at \ tests/lockfile.at \ tests/reconnect.at \ + tests/ovs-vswitchd.at \ tests/ofproto-dpif.at \ tests/ofproto-macros.at \ tests/ofproto.at \ diff --git a/tests/ovs-vswitchd.at b/tests/ovs-vswitchd.at new file mode 100644 index 000000000..c55274164 --- /dev/null +++ b/tests/ovs-vswitchd.at @@ -0,0 +1,27 @@ +AT_BANNER([ovs-vswitchd]) + +dnl The OVS initscripts never make an empty database (one without even an +dnl Open_vSwitch record) visible to ovs-vswitchd, but hand-rolled scripts +dnl sometimes do. At one point, "ovs-vswitchd --detach" would never detach +dnl and use 100% CPU if this happened, so this test checks for regression. +AT_SETUP([ovs-vswitchd detaches correctly with empty db]) +OVS_RUNDIR=`pwd`; export OVS_RUNDIR +OVS_LOGDIR=`pwd`; export OVS_LOGDIR +OVS_DBDIR=`pwd`; export OVS_DBDIR +OVS_SYSCONFDIR=`pwd`; export OVS_SYSCONFDIR +ON_EXIT([kill `cat ovsdb-server.pid ovs-vswitchd.pid`]) + +dnl Create database. +touch .conf.db.~lock~ +AT_CHECK([ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema]) + +dnl Start ovsdb-server. *Don't* initialize database. +AT_CHECK([ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock], [0], [ignore], [ignore]) +AT_CAPTURE_FILE([ovsdb-server.log]) + +dnl Start ovs-vswitchd. +AT_CHECK([ovs-vswitchd --detach --no-chdir --pidfile --enable-dummy --disable-system --log-file], [0], [], [stderr]) +AT_CAPTURE_FILE([ovs-vswitchd.log]) + +dnl ovs-vswitchd detached OK or we wouldn't have made it this far. Success. +AT_CLEANUP diff --git a/tests/testsuite.at b/tests/testsuite.at index 97bc24746..da5259386 100644 --- a/tests/testsuite.at +++ b/tests/testsuite.at @@ -1,6 +1,6 @@ AT_INIT -AT_COPYRIGHT([Copyright (c) 2009, 2010, 2011, 2012 Nicira, Inc. +AT_COPYRIGHT([Copyright (c) 2009, 2010, 2011, 2012, 2013 Nicira, Inc. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -95,6 +95,7 @@ m4_include([tests/timeval.at]) m4_include([tests/tunnel.at]) m4_include([tests/lockfile.at]) m4_include([tests/reconnect.at]) +m4_include([tests/ovs-vswitchd.at]) m4_include([tests/ofproto.at]) m4_include([tests/ofproto-dpif.at]) m4_include([tests/ovsdb.at])