Testing

Continous Integration is an integral part of Node. The fact that there is also an Engine appliance is very beneficial.

Overview

  • Engine and Node appliances are spawned in distinct, but connected, (user-session) VMs
  • virt-install is used to setup the VMs
  • cloud-init is used to do the basic OS configuration (passwords, ssh, and IP configuration) Note: cloud-init is not built into the squashfs, it will be installed on-demand by the testing infrastructure.
  • Python's unittest infrastructure is used to provide the testing framework

A reference implementation is part of the ovirt-appliance repository.

This setup is very convenient because it provides the following:

  • Environment setup during testsuite creation (includes VM creation, configuration and initial snapshot)
  • Resetting to the initial snapshot for each testcase
  • SSH to perform in VM operations
  • virsh to control VM lifecycle (reboot, shutdown)