ofproto-macros: Fail a test that logs a WARN or higher level message.
authorBen Pfaff <blp@nicira.com>
Fri, 1 Feb 2013 18:25:25 +0000 (10:25 -0800)
committerBen Pfaff <blp@nicira.com>
Mon, 11 Feb 2013 21:22:34 +0000 (13:22 -0800)
It is necessary to whitelist a couple of tests that appear to legitimately
have WARN messages.

Signed-off-by: Ben Pfaff <blp@nicira.com>
Acked-by: Ethan Jackson <ethan@nicira.com>
tests/ofproto-macros.at
tests/tunnel.at

index b9356d3..9a6d5ab 100644 (file)
@@ -64,8 +64,26 @@ m4_define([OVS_VSWITCHD_START],
    AT_CHECK([ovs-vsctl -- add-br br0 -- set bridge br0 datapath-type=dummy other-config:datapath-id=fedcba9876543210 other-config:hwaddr=aa:55:aa:55:00:00 protocols=[[OpenFlow10,OpenFlow12,OpenFlow13]] fail-mode=secure -- $1 m4_if([$2], [], [], [| perl $srcdir/uuidfilt.pl])], [0], [$2])
 ])
 
+m4_divert_push([PREPARE_TESTS])
+check_logs () {
+    sed -n "$1
+/|WARN|/p
+/|ERR|/p
+/|EMER|/p" ovs-vswitchd.log ovsdb-server.log
+}
+m4_divert_pop([PREPARE_TESTS])
+
+# OVS_VSWITCHD_STOP([WHITELIST])
+#
+# Gracefully stops ovs-vswitchd and ovsdb-server, checking their log files
+# for messages with severity WARN or higher and signaling an error if any
+# is present.  The optional WHITELIST may contain shell-quoted "sed"
+# commands to delete any warnings that are actually expected, e.g.:
+#
+#   OVS_VSWITCHD_STOP(["/expected error/d"])
 m4_define([OVS_VSWITCHD_STOP],
-  [AT_CHECK([ovs-appctl -t ovs-vswitchd exit])
+  [AT_CHECK([check_logs $1])
+   AT_CHECK([ovs-appctl -t ovs-vswitchd exit])
    AT_CHECK([ovs-appctl -t ovsdb-server exit])])
 
 # ADD_OF_PORTS(BRIDGE, OF_PORT[, OF_PORT...])
index c708b30..55fd5b3 100644 (file)
@@ -64,7 +64,7 @@ Invalid flow
 ovs-appctl: ovs-vswitchd: server returned an error
 ])
 
-OVS_VSWITCHD_STOP
+OVS_VSWITCHD_STOP(["/receive tunnel port not found/d"])
 AT_CLEANUP
 
 AT_SETUP([tunnel - ECN decapsulation])
@@ -256,7 +256,7 @@ AT_CHECK([ovs-appctl ofproto/trace br0 'tunnel(tun_id=0xf,src=1.1.1.1,dst=2.2.2.
 Invalid flow
 ovs-appctl: ovs-vswitchd: server returned an error
 ])
-OVS_VSWITCHD_STOP
+OVS_VSWITCHD_STOP(["/receive tunnel port not found/d"])
 AT_CLEANUP
 
 AT_SETUP([tunnel - key match])