virtual-deployment/libvirt/regression
Bailey Henry a4e128d890 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>
2023-07-14 13:10:25 +00:00
..
README.rst libvirt: Regression tests for mad and default 2023-07-14 13:10:25 +00:00

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.