The tests were randomly failing as there is no guarentee that 15 nc will reach different load balancers. Also, running 15 nc made the test quite slow. Fixed by running loops of 5 nc, and then checking results. Test duration decreased by 15 to 20 seconds.
Signed-off-by: Xavier Simonart <[email protected]> --- tests/system-ovn-kmod.at | 112 +++++++++++++++++++-------------------- 1 file changed, 56 insertions(+), 56 deletions(-) diff --git a/tests/system-ovn-kmod.at b/tests/system-ovn-kmod.at index 981cc598c..e54b458fb 100644 --- a/tests/system-ovn-kmod.at +++ b/tests/system-ovn-kmod.at @@ -332,14 +332,14 @@ OVS_WAIT_UNTIL([ovs-ofctl -O OpenFlow13 dump-groups br-int | \ grep 'nat(dst=192.168.2.2:80)']) dnl Should work with the virtual IP address through NAT -for i in $(seq 1 15); do - echo Request $i - NS_CHECK_EXEC([alice1], [nc -z 172.16.1.100 8080]) -done - -dnl Each server should have at least one connection. -AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(172.16.1.100) | -sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl +OVS_WAIT_FOR_OUTPUT([ + for i in $(seq 1 5); do + NS_EXEC([alice1], [nc -z 172.16.1.100 8080]) + done + + dnl Each server should have at least one connection. + ovs-appctl dpctl/dump-conntrack | FORMAT_CT(172.16.1.100) | \ + sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl tcp,orig=(src=172.16.1.2,dst=172.16.1.100,sport=<cleared>,dport=<cleared>),reply=(src=192.168.1.2,dst=172.16.1.2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) tcp,orig=(src=172.16.1.2,dst=172.16.1.100,sport=<cleared>,dport=<cleared>),reply=(src=192.168.2.2,dst=172.16.1.2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) ]) @@ -390,15 +390,15 @@ ovn-nbctl lr-lb-add R2 lb1-no-aff ovn-nbctl lr-lb-add R2 lb11-no-aff # check we use both backends -for i in $(seq 1 15); do - echo Request $i - NS_CHECK_EXEC([alice1], [nc -z 172.16.1.101 8080]) - ovs-ofctl del-flows br-int table=78 -done - -dnl Each server should have at least one connection. -AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(172.16.1.101) | -sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl +OVS_WAIT_FOR_OUTPUT([ + for i in $(seq 1 5); do + NS_EXEC([alice1], [nc -z 172.16.1.101 8080]) + ovs-ofctl del-flows br-int table=78 + done + + dnl Each server should have at least one connection. + ovs-appctl dpctl/dump-conntrack | FORMAT_CT(172.16.1.101) | \ + sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl tcp,orig=(src=172.16.1.2,dst=172.16.1.101,sport=<cleared>,dport=<cleared>),reply=(src=192.168.1.2,dst=172.16.1.2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) tcp,orig=(src=172.16.1.2,dst=172.16.1.101,sport=<cleared>,dport=<cleared>),reply=(src=192.168.2.2,dst=172.16.1.2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) ]) @@ -447,15 +447,15 @@ ovn-nbctl ls-lb-add foo lb30-no-aff # Flush conntrack entries for easier output parsing of next test. AT_CHECK([ovs-appctl dpctl/flush-conntrack]) -for i in $(seq 1 15); do - echo Request $i - NS_CHECK_EXEC([foo1], [nc -z 192.168.2.101 8080]) - ovs-ofctl del-flows br-int table=78 -done +OVS_WAIT_FOR_OUTPUT([ + for i in $(seq 1 5); do + NS_EXEC([foo1], [nc -z 192.168.2.101 8080]) + ovs-ofctl del-flows br-int table=78 + done -dnl Each server should have at least one connection. -AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(192.168.2.101) | -sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl + dnl Each server should have at least one connection. + ovs-appctl dpctl/dump-conntrack | FORMAT_CT(192.168.2.101) | \ + sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl tcp,orig=(src=192.168.1.2,dst=192.168.2.101,sport=<cleared>,dport=<cleared>),reply=(src=192.168.2.2,dst=192.168.1.2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) tcp,orig=(src=192.168.1.2,dst=192.168.2.101,sport=<cleared>,dport=<cleared>),reply=(src=192.168.2.3,dst=192.168.1.2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) ]) @@ -631,14 +631,14 @@ NETNS_DAEMONIZE([foo1], [nc -l -k fd11::2 80], [nc-foo1.pid]) NETNS_DAEMONIZE([bar1], [nc -l -k fd12::2 80], [nc-bar1.pid]) dnl Should work with the virtual IP address through NAT -for i in $(seq 1 15); do - echo Request $i - NS_CHECK_EXEC([alice1], [nc -z fd30::1 8080]) -done - -dnl Each server should have at least one connection. -AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(fd30::1) | grep -v fe80 | -sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl +OVS_WAIT_FOR_OUTPUT([ + for i in $(seq 1 5); do + NS_EXEC([alice1], [nc -z fd30::1 8080]) + done + + dnl Each server should have at least one connection. + ovs-appctl dpctl/dump-conntrack | FORMAT_CT(fd30::1) | grep -v fe80 | \ + sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl tcp,orig=(src=fd72::2,dst=fd30::1,sport=<cleared>,dport=<cleared>),reply=(src=fd11::2,dst=fd72::2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) tcp,orig=(src=fd72::2,dst=fd30::1,sport=<cleared>,dport=<cleared>),reply=(src=fd12::2,dst=fd72::2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) ]) @@ -690,15 +690,15 @@ ovn-nbctl lr-lb-add R2 lb1-no-aff ovn-nbctl lr-lb-add R2 lb11-no-aff # check we use both backends -for i in $(seq 1 15); do - echo Request $i - NS_CHECK_EXEC([alice1], [nc -z fd30::2 8080]) - ovs-ofctl del-flows br-int table=78 -done - -dnl Each server should have at least one connection. -AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(fd30::2) | grep -v fe80 | -sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl +OVS_WAIT_FOR_OUTPUT([ + for i in $(seq 1 5); do + NS_EXEC([alice1], [nc -z fd30::2 8080]) + ovs-ofctl del-flows br-int table=78 + done + + dnl Each server should have at least one connection. + ovs-appctl dpctl/dump-conntrack | FORMAT_CT(fd30::2) | grep -v fe80 | \ + sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl tcp,orig=(src=fd72::2,dst=fd30::2,sport=<cleared>,dport=<cleared>),reply=(src=fd11::2,dst=fd72::2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) tcp,orig=(src=fd72::2,dst=fd30::2,sport=<cleared>,dport=<cleared>),reply=(src=fd12::2,dst=fd72::2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) ]) @@ -745,14 +745,14 @@ ovn-nbctl ls-lb-add foo lb30 ovn-nbctl ls-lb-add foo lb3-no-aff ovn-nbctl ls-lb-add foo lb30-no-aff -for i in $(seq 1 15); do - echo Request $i - NS_CHECK_EXEC([foo1], [nc -z fd12::b 8080]) - ovs-ofctl del-flows br-int table=78 -done +OVS_WAIT_FOR_OUTPUT([ + for i in $(seq 1 5); do + NS_EXEC([foo1], [nc -z fd12::b 8080]) + ovs-ofctl del-flows br-int table=78 + done -AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(fd12::b) | grep -v fe80 | -sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl + ovs-appctl dpctl/dump-conntrack | FORMAT_CT(fd12::b) | grep -v fe80 | \ + sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl tcp,orig=(src=fd11::2,dst=fd12::b,sport=<cleared>,dport=<cleared>),reply=(src=fd12::2,dst=fd11::2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) tcp,orig=(src=fd11::2,dst=fd12::b,sport=<cleared>,dport=<cleared>),reply=(src=fd12::3,dst=fd11::2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) ]) @@ -777,14 +777,14 @@ ovn-nbctl lr-lb-add R1 lb40-no-aff # Flush conntrack entries for easier output parsing of next test. AT_CHECK([ovs-appctl dpctl/flush-conntrack]) -for i in $(seq 1 15); do - echo Request $i - NS_CHECK_EXEC([foo1], [nc -z fd11::a 8080]) -done +OVS_WAIT_FOR_OUTPUT([ + for i in $(seq 1 5); do + NS_EXEC([foo1], [nc -z fd11::a 8080]) + done -dnl Each server should have at least one connection. -AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(fd11::2) | grep -v fe80 | -sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl + dnl Each server should have at least one connection. + ovs-appctl dpctl/dump-conntrack | FORMAT_CT(fd11::2) | grep -v fe80 | \ + sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl tcp,orig=(src=fd11::2,dst=fd11::2,sport=<cleared>,dport=<cleared>),reply=(src=fd11::2,dst=fd11::b,sport=<cleared>,dport=<cleared>),zone=<cleared>,protoinfo=(state=<cleared>) tcp,orig=(src=fd11::2,dst=fd11::a,sport=<cleared>,dport=<cleared>),reply=(src=fd11::2,dst=fd11::2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) tcp,orig=(src=fd11::b,dst=fd11::2,sport=<cleared>,dport=<cleared>),reply=(src=fd11::2,dst=fd11::b,sport=<cleared>,dport=<cleared>),zone=<cleared>,protoinfo=(state=<cleared>) -- 2.31.1 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
