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 <Henry.Bailey@windriver.com>
This commit is contained in:
Bailey Henry 2023-07-10 15:00:18 -04:00 committed by Michel Thebeau
parent 708c2c1676
commit a4e128d890

98
libvirt/regression/README.rst Executable file
View File

@ -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.