ofproto: Fix potential leak during flow mods.
[sliver-openvswitch.git] / tests / ovsdb-server.at
index 63111d1..86179bd 100644 (file)
@@ -194,9 +194,8 @@ AT_CHECK([ovsdb-client list-tables unix:socket constraints], [0], [ignore], [ign
 AT_CHECK([ovsdb-client list-tables unix:socket ordinals], [0], [ignore], [ignore])
 
 # Add an already added database.
-AT_CHECK([ovs-appctl -t ovsdb-server ovsdb-server/add-db db2], 2, [], [stderr])
-AT_CHECK([sed 's/(.*)/(...)/' stderr], [0],
-  [I/O error: db2: failed to lock lockfile (...)
+AT_CHECK([ovs-appctl -t ovsdb-server ovsdb-server/add-db db2], 2, [],
+  [db2: already open
 ovs-appctl: ovsdb-server: server returned an error
 ])
 
@@ -676,7 +675,7 @@ if test -e /proc/sys/net/core/rmem_max; then
     # Linux
     rmem_max=`cat /proc/sys/net/core/rmem_max`
 elif rmem_max=`sysctl -n net.inet.tcp.recvbuf_max 2>/dev/null`; then
-    : # FreeBSD
+    : # FreeBSD, NetBSD
 else
     # Don't know how to get maximum socket receive buffer on this OS
     AT_SKIP_IF([:])
@@ -685,9 +684,12 @@ fi
 # Calculate the number of iterations we need to queue.  Each of the
 # iterations we execute, by itself, yields a monitor update of about
 # 25 kB, so fill up that much space plus a few for luck.
-n_iterations=`expr $rmem_max / 2500 + 5`
+n_iterations=`expr $rmem_max / 25000 + 5`
 echo rmem_max=$rmem_max n_iterations=$n_iterations
 
+# If there's too much queuing skip the test to avoid timing out.
+AT_SKIP_IF([test $rmem_max -gt 1048576])
+
 # Calculate the exact number of monitor updates expected for $n_iterations,
 # assuming no updates are combined.  The "extra" update is for the initial
 # contents of the database.
@@ -748,31 +750,6 @@ AT_CHECK([test $logged_updates -lt $n_updates])
 AT_CHECK_UNQUOTED([ovs-vsctl get open_vswitch . system_version], [0],
   ["xyzzy$counter"
 ])
-
-# Start an ovsdb-client monitoring all changes to the database,
-# without making it block, and then execute the same transactions that
-# we did before.
-AT_CHECK([ovsdb-client --detach --no-chdir --pidfile monitor ALL >ovsdb-client.out 2>ovsdb-client.err])
-for i in `seq 1 $n_iterations`; do
-    echo "unblocked update ($i of $n_iterations)"
-    trigger_big_update
-
-    # Make sure that ovsdb-client gets enough CPU time to process the updates.
-    ovs-appctl -t ovsdb-client version > /dev/null
-done
-OVS_WAIT_UNTIL([grep "\"xyzzy$counter\"" ovsdb-client.out])
-AT_CHECK([ovs-appctl -t ovsdb-client exit])
-OVS_WAIT_WHILE([test -e ovsdb-client.pid])
-
-# The ovsdb-client output should have exactly $n_updates updates.
-#
-# Also check that the counter is what we expect.
-logged_updates=`grep -c '^Open_vSwitch' ovsdb-client.out`
-echo "logged_updates=$logged_updates (expected $n_updates)"
-AT_CHECK([test $logged_updates -eq $n_updates])
-AT_CHECK_UNQUOTED([ovs-vsctl get open_vswitch . system_version], [0],
-  ["xyzzy$counter"
-])
 AT_CLEANUP
 \f
 AT_BANNER([OVSDB -- ovsdb-server transactions (SSL IPv4 sockets)])