From: Joe Stringer Date: Mon, 7 Mar 2016 23:36:38 +0000 (-0800) Subject: tests: Expand 'bundle with many ports' test. X-Git-Url: http://git.cascardo.eti.br/?p=cascardo%2Fovs.git;a=commitdiff_plain;h=8a8b8fbdcc11ca81c81c2aedbd3330b5ee38a377 tests: Expand 'bundle with many ports' test. Explain what this test is doing, and check that the decoded action can be re-encoded and dumped back out of OVS. Suggested-by: Ben Pfaff Signed-off-by: Joe Stringer Acked-by: Ben Pfaff --- diff --git a/tests/bundle.at b/tests/bundle.at index 298e683b0..0bc179f97 100644 --- a/tests/bundle.at +++ b/tests/bundle.at @@ -193,8 +193,18 @@ AT_CHECK([ovs-ofctl parse-flow 'actions=bundle(symmetric_l4,60,hrw,ofport,robot: ]) AT_CLEANUP +dnl Bundle actions with <= 2 ports typically align nicely within ofpbuf memory +dnl allocation, so will not trigger reallocation codepaths. This test was +dnl introduced to ensure that when bundle actions with a larger number of ports +dnl are used, the encode/decode still works correctly. By placing the bundle +dnl action deep within a list of actions, this test was able to trigger +dnl Valgrind warnings for use-after-free bugs. AT_SETUP([bundle action with many ports]) OVS_VSWITCHD_START AT_CHECK([ovs-ofctl add-flow br0 'actions=set_field:0x1->metadata,set_field:0x2->metadata,set_field:0x3->metadata,set_field:0x4->metadata,bundle(symmetric_l4,0,hrw,ofport,slaves:[[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40]])']) +AT_CHECK([ovs-ofctl dump-flows br0 | ofctl_strip | sort], [0], [dnl + actions=load:0x1->OXM_OF_METADATA[[]],load:0x2->OXM_OF_METADATA[[]],load:0x3->OXM_OF_METADATA[[]],load:0x4->OXM_OF_METADATA[[]],bundle(symmetric_l4,0,hrw,ofport,slaves:1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40) +NXST_FLOW reply: +]) OVS_VSWITCHD_STOP AT_CLEANUP