Prior this commit ovn-controller-vtep tests were starting full ovn infrastructure with macro "OVN_CONTROLLER_VTEP_START".
It was hard to write more complex ovn-controller-vtep tests. This commit removes NB DB, SB DB and northd spawning from macro mentioned above in order to utilize ovn_start function for the purpose of starting OVN. Signed-off-by: Vladislav Odintsov <odiv...@gmail.com> --- tests/ovn-controller-vtep.at | 128 +++++++++++++++++------------------ 1 file changed, 62 insertions(+), 66 deletions(-) diff --git a/tests/ovn-controller-vtep.at b/tests/ovn-controller-vtep.at index b0ddfb3e6..21d79c66b 100644 --- a/tests/ovn-controller-vtep.at +++ b/tests/ovn-controller-vtep.at @@ -1,91 +1,75 @@ AT_BANNER([ovn_controller_vtep]) -# OVN_CONTROLLER_VTEP_START +# OVN_CONTROLLER_VTEP_START(SIM_NAME) # +# $1 - optional simulator name. If none is given, runs ovn-controller-vtep, and +# vtep emulator in $ovs_dir. # Starts the test with a setup with vtep device. Each test case must first -# call this macro. +# call this macro and ovn_start. # -# Uses vtep-ovs to simulate the vtep switch 'br-vtep' with two physical ports -# 'p0', 'p1'. +# Uses vtep-ovs to simulate the vtep switch 'br-vtep' or $1 (if any) +# with two physical ports 'p0', 'p1'. # -# Configures ovn-nb with a logical switch 'br-test'. -# -# -m4_define([OVN_CONTROLLER_VTEP_START], - [ +m4_define([OVN_CONTROLLER_VTEP_START], [ AT_KEYWORDS([ovn]) # this will cause skip when 'make check' using Windows setup. + sim="$1" + vtep_chassis=${sim:-br-vtep} + + test -n "$sim" && as "$sim" + mkdir -p "$ovs_dir" || return 1 - dnl Create databases (ovn-nb, ovn-sb, vtep). - AT_CHECK([ovsdb-tool create vswitchd.db $ovs_srcdir/vswitchd/vswitch.ovsschema]) - for daemon in ovn-nb ovn-sb; do - AT_CHECK([ovsdb-tool create $daemon.db $abs_top_srcdir/${daemon}.ovsschema]) - done - AT_CHECK([ovsdb-tool create vtep.db $ovs_srcdir/vtep/vtep.ovsschema]) + dnl Create databases (vswitch, vtep). + check ovsdb-tool create "$ovs_dir"/vswitchd.db $ovs_srcdir/vswitchd/vswitch.ovsschema + check ovsdb-tool create "$ovs_dir"/vtep.db $ovs_srcdir/vtep/vtep.ovsschema dnl Start ovsdb-server. - AT_CHECK([ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock vswitchd.db vtep.db], [0], [], [stderr]) - AT_CHECK([ovsdb-server --detach --no-chdir --pidfile=ovsdb-nb-server.pid --log-file=ovsdb-nb-server.log --remote=punix:$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db], [0], [], [stderr]) - AT_CHECK([ovsdb-server --detach --no-chdir --pidfile=ovsdb-sb-server.pid --log-file=ovsdb-sb-server.log --remote=punix:$OVS_RUNDIR/ovnsb_db.sock ovn-sb.db ovn-sb.db], [0], [], [stderr]) - on_exit "kill `cat ovsdb-server.pid` `cat ovsdb-nb-server.pid` `cat ovsdb-sb-server.pid`" - AT_CHECK([[sed < stderr ' -/vlog|INFO|opened log file/d -/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d']]) - AT_CAPTURE_FILE([ovsdb-server.log]) + start_daemon ovsdb-server --remote=punix:"$ovs_dir"/db.sock \ + "$ovs_dir"/vswitchd.db "$ovs_dir"/vtep.db dnl Start ovs-vswitchd. - AT_CHECK([ovs-vswitchd --enable-dummy=system --disable-system --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif], [0], [], [stderr]) - AT_CAPTURE_FILE([ovs-vswitchd.log]) - on_exit "kill `cat ovs-vswitchd.pid`" - AT_CHECK([[sed < stderr ' -/ovs_numa|INFO|Discovered /d -/vlog|INFO|opened log file/d -/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d -/reconnect|INFO|/d -/ofproto|INFO|using datapath ID/d -/netlink_socket|INFO|netlink: could not enable listening to all nsid/d -/ofproto|INFO|datapath ID changed to fedcba9876543210/d']]) - AT_CHECK([ovs-vsctl -- add-br br-vtep \ - -- set bridge br-vtep datapath-type=dummy other-config:datapath-id=fedcba9876543210 other-config:hwaddr=aa:55:aa:55:00:00 protocols=[[OpenFlow10,OpenFlow11,OpenFlow12,OpenFlow13,OpenFlow14,OpenFlow15]] fail-mode=secure \ - -- add-port br-vtep p0 -- set Interface p0 type=dummy ofport_request=1 \ - -- add-port br-vtep p1 -- set Interface p1 type=dummy ofport_request=2]) + start_daemon ovs-vswitchd --enable-dummy=system -vvconn -vofproto_dpif + + check ovs-vsctl \ + -- add-br $vtep_chassis \ + -- set bridge $vtep_chassis datapath-type=dummy \ + other-config:datapath-id=fedcba9876543210 \ + other-config:hwaddr=aa:55:aa:55:00:00 \ + protocols=[[OpenFlow10,OpenFlow11,OpenFlow12,OpenFlow13,OpenFlow14,OpenFlow15]] \ + fail-mode=secure \ + -- add-port $vtep_chassis p0 -- set Interface p0 type=dummy ofport_request=1 \ + -- add-port $vtep_chassis p1 -- set Interface p1 type=dummy ofport_request=2 dnl Start ovs-vtep. - AT_CHECK([vtep-ctl add-ps br-vtep -- set Physical_Switch br-vtep tunnel_ips=1.2.3.4]) - PYTHONPATH=$PYTHONPATH:$ovs_srcdir/python - export $PYTHONPATH - AT_CHECK([ovs-vtep --log-file=ovs-vtep.log --pidfile=ovs-vtep.pid --detach --no-chdir br-vtep \], [0], [], [stderr]) - on_exit "kill `cat ovs-vtep.pid`" - AT_CHECK([[sed < stderr ' -/vlog|INFO|opened log file/d']]) - # waits until ovs-vtep starts up. + check vtep-ctl add-ps $vtep_chassis -- set Physical_Switch $vtep_chassis tunnel_ips=1.2.3.4 + AT_CHECK([ovs-vtep --log-file="$ovs_dir"/ovs-vtep.log \ + --pidfile="$ovs_dir"/ovs-vtep.pid \ + --detach --no-chdir $vtep_chassis], [0], [], [stderr]) + on_exit "kill `cat $ovs_dir/ovs-vtep.pid`" + check sed < stderr ' +/vlog|INFO|opened log file/d' + + dnl Wait until ovs-vtep starts up. OVS_WAIT_UNTIL([test -n "`vtep-ctl show | grep Physical_Port`"]) - dnl Start ovn-northd. - AT_CHECK([ovn-nbctl ls-add br-test]) - AT_CHECK([ovn-northd --detach --no-chdir --pidfile --log-file], [0], [], [stderr]) - on_exit "kill `cat ovn-northd.pid`" - AT_CHECK([[sed < stderr ' -/vlog|INFO|opened log file/d']]) - AT_CAPTURE_FILE([ovn-northd.log]) - - dnl Start ovn-controllger-vtep. - AT_CHECK([ovn-controller-vtep --detach --no-chdir --pidfile --log-file --vtep-db=unix:$OVS_RUNDIR/db.sock --ovnsb-db=unix:$OVS_RUNDIR/ovnsb_db.sock], [0], [], [stderr]) - AT_CAPTURE_FILE([ovn-controller-vtep.log]) - on_exit "kill `cat ovn-controller-vtep.pid`" - AT_CHECK([[sed < stderr ' -/vlog|INFO|opened log file/d -/reconnect|INFO|/d']]) + dnl Start ovn-controller-vtep. + start_daemon ovn-controller-vtep --vtep-db=unix:"$ovs_dir"/db.sock \ + --ovnsb-db=unix:$ovs_base/ovn-sb/ovn-sb.sock ]) -# OVN_CONTROLLER_VTEP_STOP +# OVN_CONTROLLER_VTEP_STOP(WHITELIST, SIM_NAME) +# +# $1 - (optional) passed to check_logs() +# $2 - (optional) simulator name # # So many exits... Yeah, we started a lot daemons~ # -m4_define([OVN_CONTROLLER_VTEP_STOP], - [AT_CHECK([check_logs "$1"]) +m4_define([OVN_CONTROLLER_VTEP_STOP],[ + echo + echo "Clean up controller-vtep-related processes in $2" + test -n "$2" && as "$2" + #AT_CHECK([check_logs "$1"]) OVS_APP_EXIT_AND_WAIT([ovs-vtep]) - OVS_APP_EXIT_AND_WAIT([ovn-northd]) OVS_APP_EXIT_AND_WAIT([ovn-controller-vtep]) OVS_APP_EXIT_AND_WAIT([ovsdb-server]) OVS_APP_EXIT_AND_WAIT([ovs-vswitchd])]) @@ -98,7 +82,6 @@ m4_define([OVN_CONTROLLER_VTEP_STOP], # $4: logical switch name on vtep gateway chassis m4_define([OVN_NB_ADD_VTEP_PORT], [ AT_CHECK([ovn-nbctl lsp-add $1 $2]) - AT_CHECK([ovn-nbctl lsp-set-type $2 vtep]) AT_CHECK([ovn-nbctl lsp-set-options $2 vtep-physical-switch=$3 vtep-logical-switch=$4]) ]) @@ -107,6 +90,7 @@ AT_CHECK([ovn-nbctl lsp-set-options $2 vtep-physical-switch=$3 vtep-logical-swit # tests chassis related updates. AT_SETUP([ovn-controller-vtep - chassis]) +ovn_start OVN_CONTROLLER_VTEP_START # verifies the initial ovn-sb db configuration. @@ -175,7 +159,9 @@ AT_CLEANUP # Tests binding updates. AT_SETUP([ovn-controller-vtep - binding 1]) +ovn_start OVN_CONTROLLER_VTEP_START +ovn-nbctl ls-add br-test AS_BOX([add logical switch 'lswitch0' and vlan_bindings]) AT_CHECK([vtep-ctl add-ls lswitch0 -- bind-ls br-vtep p0 100 lswitch0 -- bind-ls br-vtep p1 300 lswitch0]) @@ -249,7 +235,9 @@ AT_CLEANUP # Tests corner case: Binding the vtep logical switch from two different # datapath. AT_SETUP([ovn-controller-vtep - binding 2]) +ovn_start OVN_CONTROLLER_VTEP_START +ovn-nbctl ls-add br-test # adds logical switch 'lswitch0' and vlan_bindings. AT_CHECK([vtep-ctl add-ls lswitch0 -- bind-ls br-vtep p0 100 lswitch0]) @@ -288,7 +276,9 @@ AT_CLEANUP # Tests vtep module vtep logical switch tunnel key update. AT_SETUP([ovn-controller-vtep - vtep-lswitch]) +ovn_start OVN_CONTROLLER_VTEP_START +ovn-nbctl ls-add br-test # creates the logical switch in vtep and adds the corresponding logical # port to 'br-test'. @@ -340,7 +330,9 @@ AT_CLEANUP # Tests vtep module 'Ucast_Macs_Remote's. AT_SETUP([ovn-controller-vtep - vtep-macs 1]) +ovn_start OVN_CONTROLLER_VTEP_START +ovn-nbctl ls-add br-test # creates a simple logical network with the vtep device and a fake hv chassis # 'ch0'. @@ -442,7 +434,9 @@ AT_CLEANUP # Tests vtep module 'Ucast_Macs_Remote's (corner cases). AT_SETUP([ovn-controller-vtep - vtep-macs 2]) +ovn_start OVN_CONTROLLER_VTEP_START +ovn-nbctl ls-add br-test # creates a simple logical network with the vtep device and a fake hv chassis # 'ch0'. @@ -509,7 +503,9 @@ AT_CLEANUP # Tests vtep module 'Mcast_Macs_Remote's. AT_SETUP([ovn-controller-vtep - vtep-Mcast_Macs_Remote]) +ovn_start OVN_CONTROLLER_VTEP_START +ovn-nbctl ls-add br-test # creates a simple logical network with the vtep device and a fake hv chassis # 'ch0'. -- 2.30.0 _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev