From a4e128d890cf214d2e7b57d6e5eb243b727f104f Mon Sep 17 00:00:00 2001 From: Bailey Henry Date: Mon, 10 Jul 2023 15:00:18 -0400 Subject: [PATCH] libvirt: Regression tests for mad and default README with instructions for regression test Test plan: All information necessary is documented All information necessary described accurately All information is formatted correctly (.rst syntax) Story: 2010816 Task: 48345 Change-Id: Ibc543debb235a2865242a07c2c0e08b49a36b2fb Signed-off-by: Bailey Henry --- libvirt/regression/README.rst | 98 +++++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100755 libvirt/regression/README.rst diff --git a/libvirt/regression/README.rst b/libvirt/regression/README.rst new file mode 100755 index 0000000..22a1e83 --- /dev/null +++ b/libvirt/regression/README.rst @@ -0,0 +1,98 @@ +Overview +======== +This regression test ensures that a change does not impact +the generation of XML for default and 'madcloud' configuration examples. + +Before starting make sure you have cloned the starlingx/virtual-deployment git +and installed any required packages as presented in ``libvirt/install_packages.sh``. + +The regression method sets attributes for a lab, runs the deployment +method's scripts and dumps XML using the virsh command. +These attributes are the overridable environment variables including: +``CONTROLLER, WORKER, BRIDGE_INTERFACE, EXTERNAL_NETWORK, EXTERNAL_IP`` + +Step 1 export attributes: +--------------------------- +The ATTRIBUTE variable is used to name the xml file, and should be +defined for ease of use. + +Start with a new bash shell to reset the environment to use default +attributes. + +Default values: + + | export ATTRIBUTE=default + | export CONTROLLER=${CONTROLLER:-controller} + | export WORKER=${WORKER:-worker} + | export BRIDGE_INTERFACE=${BRIDGE_INTERFACE:-stxbr} + | export EXTERNAL_NETWORK=${EXTERNAL_NETWORK:-10.10.10.0/24} + | export EXTERNAL_IP=${EXTERNAL_IP:-10.10.10.1/24} + +Madcloud values: + + | export ATTRIBUTE=madcloud + | export CONTROLLER=madcloud + | export WORKER=madnode + | export BRIDGE_INTERFACE=madbr + | export EXTERNAL_NETWORK=172.30.20.0/24 + | export EXTERNAL_IP=172.30.20.1/24 + +Step 2 choose configuration: +------------------------------ + + export CONFIGURATION=(simplex, duplex, etc.) + +Options are: simplex, duplex, controllerstorage or dedicatedstorage +Along with the attributes this forms a 2x4 matrix: + + | default, simplex + | default, duplex + | default, controllerstorage + | default, dedicatedstorage + +And: + + | Madcloud, simplex + | Madcloud, duplex + | Madcloud, controllerstorage + | Madcloud, dedicatedstorage + +Step 3 start VM: +------------------ + + | ./setup_network.sh + | ./setup_configuration.sh -c $CONFIGURATION -i $iso + +Remember to use a path to a valid iso - it doesn't matter if it +actually boots or etc + +Step 4 create dump xml: +------------------------- + + mkdir -p regression + +Each configuration has 1 or more domains. For each DOMAIN in virsh list: + + | DOMAIN="simplex-controller-0" + | outf="regression/${ATTRIBUTE}_${CONFIGURATION}_${DOMAIN}.xml" + | virsh dumpxml $DOMAIN > "${outf}_${x}" + +It is recommended to use either numbers or tags to signify what +iteration you are setting, in this case x represents that + +Step 5 reset parameters and workspace: +-------------------------------------------- +Teardown configuration and network settings + + | ./destroy_configuration.sh -c $CONFIGURATION + | ./destroy_network.sh + +Step 6 compare files: +----------------------- + + diff -usU9999 "${outf}_${x}.xml" "${outf}_${y}.xml" + +In this case x and y represent different iterations. +Details to ignore are changes to: ``UUID, domain ID, mac_addresses, +mounted cdrom, serial/dev/pts``. If there are no changes ignoring those above, +the test is considered a pass.