>> On Mon, Mar 31, 2014 at 03:24:31PM +0900, YAMAMOTO Takashi wrote: >>> These tests invokes ovs-ofctl monitor twice or more. >>> Because "ovs-appctl -t ofctl exit" does not wait for the target >>> process exit, there are chances to see the pid file from the previous >>> incarnation. >>> >>> Signed-off-by: YAMAMOTO Takashi <yamam...@valinux.co.jp> >> >> Good catch. >> >> As an alternative, one could OVS_WAIT_UNTIL the pidfile disappears. > > it sounds like a better solution. i'll take a look. > > YAMAMOTO Takashi
here's a patch. i guess someone familiar with m4 can create OVS_APP_EXIT_AND_WAIT(appname) macro. YAMAMOTO Takashi commit 7427b8bf4f2402fe132522ce8142a7d896a371c6 Author: YAMAMOTO Takashi <yamam...@valinux.co.jp> Date: Mon Mar 31 15:11:19 2014 +0900 ofproto-dpif.at: Wait for the monitor's pidfile disappears where necessary These tests invokes ovs-ofctl monitor twice or more. Because "ovs-appctl -t ofctl exit" does not wait for the target process exit, there are chances to see the pid file from the previous incarnation. The way to wait for the completion of the previous incarnation was suggested by Ben Pfaff. Signed-off-by: YAMAMOTO Takashi <yamam...@valinux.co.jp> Acked-by: Ben Pfaff <b...@nicira.com> diff --git a/tests/ofproto-dpif.at b/tests/ofproto-dpif.at index d2234e9..b020cf6 100644 --- a/tests/ofproto-dpif.at +++ b/tests/ofproto-dpif.at @@ -619,6 +619,7 @@ for i in 1 2 3 ; do done OVS_WAIT_UNTIL([test `wc -l < ofctl_monitor.log` -ge 6]) OVS_WAIT_UNTIL([ovs-appctl -t ovs-ofctl exit]) +OVS_WAIT_WHILE([test -e ovs-ofctl.pid]) AT_CHECK([cat ofctl_monitor.log], [0], [dnl NXT_PACKET_IN (xid=0x0): table_id=2 cookie=0x0 total_len=60 in_port=1 (via action) data_len=60 (unbuffered) @@ -682,6 +683,7 @@ for i in 1 2 3 ; do ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=10:11:11:11:11:11,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=9),tcp_flags(0x010)' done OVS_WAIT_UNTIL([ovs-appctl -t ovs-ofctl exit]) +OVS_WAIT_WHILE([test -e ovs-ofctl.pid]) AT_CHECK([cat ofctl_monitor.log], [0], [dnl ]) @@ -840,6 +842,7 @@ for i in 1 2 3 ; do done OVS_WAIT_UNTIL([test `wc -l < ofctl_monitor.log` -ge 6]) ovs-appctl -t ovs-ofctl exit +OVS_WAIT_WHILE([test -e ovs-ofctl.pid]) AT_CHECK([cat ofctl_monitor.log], [0], [dnl OFPT_PACKET_IN (xid=0x0): total_len=60 in_port=1 (via no_match) data_len=60 (unbuffered) @@ -860,6 +863,7 @@ for i in 1 2 3 ; do done OVS_WAIT_UNTIL([test `wc -l < ofctl_monitor.log` -ge 6]) ovs-appctl -t ovs-ofctl exit +OVS_WAIT_WHILE([test -e ovs-ofctl.pid]) AT_CHECK([cat ofctl_monitor.log], [0], [dnl OFPT_PACKET_IN (xid=0x0): total_len=60 in_port=1 (via action) data_len=60 (unbuffered) @@ -880,6 +884,7 @@ for i in 1 2 3 ; do done OVS_WAIT_UNTIL([test `wc -l < ofctl_monitor.log` -ge 6]) ovs-appctl -t ovs-ofctl exit +OVS_WAIT_WHILE([test -e ovs-ofctl.pid]) AT_CHECK([cat ofctl_monitor.log], [0], [dnl OFPT_PACKET_IN (xid=0x0): total_len=64 in_port=1 (via action) data_len=64 (unbuffered) @@ -900,6 +905,7 @@ for i in 1 2 3; do done OVS_WAIT_UNTIL([test `wc -l < ofctl_monitor.log` -ge 6]) ovs-appctl -t ovs-ofctl exit +OVS_WAIT_WHILE([test -e ovs-ofctl.pid]) AT_CHECK([cat ofctl_monitor.log], [0], [dnl NXT_PACKET_IN (xid=0x0): cookie=0xa total_len=64 in_port=1 (via action) data_len=64 (unbuffered) @@ -920,6 +926,7 @@ for i in 1 2 3; do done OVS_WAIT_UNTIL([test `wc -l < ofctl_monitor.log` -ge 6]) ovs-appctl -t ovs-ofctl exit +OVS_WAIT_WHILE([test -e ovs-ofctl.pid]) AT_CHECK([cat ofctl_monitor.log], [0], [dnl NXT_PACKET_IN (xid=0x0): cookie=0xa total_len=64 in_port=1 (via action) data_len=64 (unbuffered) @@ -940,6 +947,7 @@ for i in 1 2 3; do done OVS_WAIT_UNTIL([test `wc -l < ofctl_monitor.log` -ge 6]) ovs-appctl -t ovs-ofctl exit +OVS_WAIT_WHILE([test -e ovs-ofctl.pid]) AT_CHECK([cat ofctl_monitor.log], [0], [dnl NXT_PACKET_IN (xid=0x0): cookie=0xa total_len=60 in_port=1 (via action) data_len=60 (unbuffered) @@ -962,6 +970,7 @@ for i in 1 2 3; do done OVS_WAIT_UNTIL([ovs-appctl -t ovs-ofctl exit]) +OVS_WAIT_WHILE([test -e ovs-ofctl.pid]) AT_CHECK([cat ofctl_monitor.log], [0], [dnl NXT_PACKET_IN (xid=0x0): cookie=0xa total_len=64 in_port=1 (via action) data_len=64 (unbuffered) mpls,metadata=0,in_port=0,vlan_tci=0x0000,dl_src=40:44:44:44:44:43,dl_dst=50:54:00:00:00:07,mpls_label=10,mpls_tc=3,mpls_ttl=64,mpls_bos=0,mpls_lse1=46912 @@ -981,6 +990,7 @@ for i in 1 2 3; do done OVS_WAIT_UNTIL([test `wc -l < ofctl_monitor.log` -ge 6]) ovs-appctl -t ovs-ofctl exit +OVS_WAIT_WHILE([test -e ovs-ofctl.pid]) AT_CHECK([cat ofctl_monitor.log], [0], [dnl NXT_PACKET_IN (xid=0x0): cookie=0xa total_len=64 in_port=1 (via action) data_len=64 (unbuffered) @@ -1001,6 +1011,7 @@ for i in 1 2 3; do done OVS_WAIT_UNTIL([test `wc -l < ofctl_monitor.log` -ge 6]) ovs-appctl -t ovs-ofctl exit +OVS_WAIT_WHILE([test -e ovs-ofctl.pid]) AT_CHECK([cat ofctl_monitor.log], [0], [dnl NXT_PACKET_IN (xid=0x0): cookie=0xa total_len=64 in_port=1 (via action) data_len=64 (unbuffered) @@ -1021,6 +1032,7 @@ for i in 1 2 3; do done OVS_WAIT_UNTIL([test `wc -l < ofctl_monitor.log` -ge 6]) ovs-appctl -t ovs-ofctl exit +OVS_WAIT_WHILE([test -e ovs-ofctl.pid]) AT_CHECK([cat ofctl_monitor.log], [0], [dnl NXT_PACKET_IN (xid=0x0): cookie=0xa total_len=64 in_port=1 (via action) data_len=64 (unbuffered) @@ -1041,6 +1053,7 @@ for i in 1 2 3; do done OVS_WAIT_UNTIL([test `wc -l < ofctl_monitor.log` -ge 6]) ovs-appctl -t ovs-ofctl exit +OVS_WAIT_WHILE([test -e ovs-ofctl.pid]) AT_CHECK([cat ofctl_monitor.log], [0], [dnl NXT_PACKET_IN (xid=0x0): cookie=0xa total_len=64 in_port=1 (via action) data_len=64 (unbuffered) @@ -1061,6 +1074,7 @@ for i in 1 2 3; do done OVS_WAIT_UNTIL([test `wc -l < ofctl_monitor.log` -ge 6]) ovs-appctl -t ovs-ofctl exit +OVS_WAIT_WHILE([test -e ovs-ofctl.pid]) AT_CHECK([cat ofctl_monitor.log], [0], [dnl NXT_PACKET_IN (xid=0x0): cookie=0xa total_len=64 in_port=1 (via action) data_len=64 (unbuffered) @@ -1081,6 +1095,7 @@ for i in 1 2 3; do done OVS_WAIT_UNTIL([test `wc -l < ofctl_monitor.log` -ge 6]) ovs-appctl -t ovs-ofctl exit +OVS_WAIT_WHILE([test -e ovs-ofctl.pid]) AT_CHECK([cat ofctl_monitor.log], [0], [dnl NXT_PACKET_IN (xid=0x0): cookie=0xb total_len=60 in_port=1 (via action) data_len=60 (unbuffered) @@ -1101,6 +1116,7 @@ for i in 1 2 3; do done OVS_WAIT_UNTIL([test `wc -l < ofctl_monitor.log` -ge 6]) ovs-appctl -t ovs-ofctl exit +OVS_WAIT_WHILE([test -e ovs-ofctl.pid]) AT_CHECK([cat ofctl_monitor.log], [0], [dnl NXT_PACKET_IN (xid=0x0): cookie=0xc total_len=64 in_port=1 (via action) data_len=64 (unbuffered) @@ -1129,6 +1145,7 @@ done #done OVS_WAIT_UNTIL([test `wc -l < ofctl_monitor.log` -ge 6]) ovs-appctl -t ovs-ofctl exit +OVS_WAIT_WHILE([test -e ovs-ofctl.pid]) AT_CHECK([cat ofctl_monitor.log], [0], [dnl NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=58 in_port=1 (via action) data_len=58 (unbuffered) @@ -1149,6 +1166,7 @@ for i in 1 ; do done OVS_WAIT_UNTIL([test `wc -l < ofctl_monitor.log` -ge 18]) ovs-appctl -t ovs-ofctl exit +OVS_WAIT_WHILE([test -e ovs-ofctl.pid]) AT_CHECK([cat ofctl_monitor.log], [0], [dnl NXT_PACKET_IN (xid=0x0): cookie=0x1 total_len=60 in_port=1 (via action) data_len=60 (unbuffered) @@ -1187,6 +1205,7 @@ for i in 1 ; do done OVS_WAIT_UNTIL([test `wc -l < ofctl_monitor.log` -ge 18]) ovs-appctl -t ovs-ofctl exit +OVS_WAIT_WHILE([test -e ovs-ofctl.pid]) AT_CHECK([cat ofctl_monitor.log], [0], [dnl NXT_PACKET_IN (xid=0x0): cookie=0x1 total_len=60 in_port=1 (via action) data_len=60 (unbuffered) @@ -1226,6 +1245,7 @@ done OVS_WAIT_UNTIL([test `wc -l < ofctl_monitor.log` -ge 9]) OVS_WAIT_UNTIL([ovs-appctl -t ovs-ofctl exit]) +OVS_WAIT_WHILE([test -e ovs-ofctl.pid]) AT_CHECK([cat ofctl_monitor.log], [0], [dnl NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=60 in_port=1 (via action) data_len=60 (unbuffered) arp,metadata=0,in_port=0,vlan_tci=0x0000,dl_src=80:88:88:88:88:88,dl_dst=ff:ff:ff:ff:ff:ff,arp_spa=192.168.0.1,arp_tpa=192.168.0.2,arp_op=2,arp_sha=50:54:00:00:00:05,arp_tha=00:00:00:00:00:00 @@ -1586,6 +1606,7 @@ for i in 1 2 3; do done OVS_WAIT_UNTIL([test `grep OFPT_PACKET_IN ofctl_monitor.log | wc -l` -ge 3]) OVS_WAIT_UNTIL([ovs-appctl -t ovs-ofctl exit]) +OVS_WAIT_WHILE([test -e ovs-ofctl.pid]) AT_CHECK([cat ofctl_monitor.log | ofctl_strip], [0], [dnl OFPT_PACKET_IN (OF1.2): total_len=64 in_port=1 (via action) data_len=64 (unbuffered) @@ -1619,6 +1640,7 @@ for i in 1 2 3; do done OVS_WAIT_UNTIL([test `grep OFPT_PACKET_IN ofctl_monitor.log | wc -l` -ge 3]) OVS_WAIT_UNTIL([ovs-appctl -t ovs-ofctl exit]) +OVS_WAIT_WHILE([test -e ovs-ofctl.pid]) AT_CHECK([cat ofctl_monitor.log | ofctl_strip], [0], [dnl OFPT_PACKET_IN (OF1.2): total_len=64 in_port=1 (via action) data_len=64 (unbuffered) @@ -1712,6 +1734,7 @@ for i in 1 2 3; do done OVS_WAIT_UNTIL([test `grep OFPT_PACKET_IN ofctl_monitor.log | wc -l` -ge 3]) OVS_WAIT_UNTIL([ovs-appctl -t ovs-ofctl exit]) +OVS_WAIT_WHILE([test -e ovs-ofctl.pid]) AT_CHECK([cat ofctl_monitor.log | ofctl_strip], [0], [dnl OFPT_PACKET_IN (OF1.2): total_len=68 in_port=1 (via action) data_len=68 (unbuffered) @@ -1749,6 +1772,7 @@ for i in 1 2 3; do done OVS_WAIT_UNTIL([test `grep OFPT_PACKET_IN ofctl_monitor.log | wc -l` -ge 3]) ovs-appctl -t ovs-ofctl exit +OVS_WAIT_WHILE([test -e ovs-ofctl.pid]) AT_CHECK([cat ofctl_monitor.log | ofctl_strip], [0], [dnl OFPT_PACKET_IN (OF1.2): total_len=64 in_port=1 (via action) data_len=64 (unbuffered) @@ -1783,6 +1807,7 @@ for i in 1 2 3; do done OVS_WAIT_UNTIL([test `grep OFPT_PACKET_IN ofctl_monitor.log | wc -l` -ge 3]) OVS_WAIT_UNTIL([ovs-appctl -t ovs-ofctl exit]) +OVS_WAIT_WHILE([test -e ovs-ofctl.pid]) AT_CHECK([cat ofctl_monitor.log | ofctl_strip], [0], [dnl OFPT_PACKET_IN (OF1.2): total_len=68 in_port=1 (via action) data_len=68 (unbuffered) @@ -1820,6 +1845,7 @@ for i in 1 2 3; do done OVS_WAIT_UNTIL([test `grep OFPT_PACKET_IN ofctl_monitor.log | wc -l` -ge 3]) ovs-appctl -t ovs-ofctl exit +OVS_WAIT_WHILE([test -e ovs-ofctl.pid]) AT_CHECK([cat ofctl_monitor.log | ofctl_strip], [0], [dnl OFPT_PACKET_IN (OF1.2): total_len=64 in_port=1 (via action) data_len=64 (unbuffered) @@ -1854,6 +1880,7 @@ for i in 1 2 3; do done OVS_WAIT_UNTIL([test `grep OFPT_PACKET_IN ofctl_monitor.log | wc -l` -ge 3]) ovs-appctl -t ovs-ofctl exit +OVS_WAIT_WHILE([test -e ovs-ofctl.pid]) AT_CHECK([cat ofctl_monitor.log | ofctl_strip], [0], [dnl OFPT_PACKET_IN (OF1.2): total_len=68 in_port=1 (via action) data_len=68 (unbuffered) @@ -1925,6 +1952,7 @@ for i in 1 2 3; do done OVS_WAIT_UNTIL([test `grep OFPT_PACKET_IN ofctl_monitor.log | wc -l` -ge 3]) ovs-appctl -t ovs-ofctl exit +OVS_WAIT_WHILE([test -e ovs-ofctl.pid]) AT_CHECK([cat ofctl_monitor.log | ofctl_strip], [0], [dnl OFPT_PACKET_IN (OF1.2): total_len=68 in_port=1 (via action) data_len=68 (unbuffered) @@ -1962,6 +1990,7 @@ for i in 1 2 3; do done OVS_WAIT_UNTIL([test `grep OFPT_PACKET_IN ofctl_monitor.log | wc -l` -ge 3]) ovs-appctl -t ovs-ofctl exit +OVS_WAIT_WHILE([test -e ovs-ofctl.pid]) AT_CHECK([cat ofctl_monitor.log | ofctl_strip], [0], [dnl OFPT_PACKET_IN (OF1.2): total_len=64 in_port=1 (via action) data_len=64 (unbuffered) @@ -1996,6 +2025,7 @@ for i in 1 2 3; do done OVS_WAIT_UNTIL([test `grep OFPT_PACKET_IN ofctl_monitor.log | wc -l` -ge 3]) ovs-appctl -t ovs-ofctl exit +OVS_WAIT_WHILE([test -e ovs-ofctl.pid]) AT_CHECK([cat ofctl_monitor.log | ofctl_strip], [0], [dnl OFPT_PACKET_IN (OF1.2): total_len=64 in_port=1 (via action) data_len=64 (unbuffered) _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev