Skip to content
Snippets Groups Projects
user avatar
Michael Boniface authored
2a86f21c
History

FLAME Cross Layer Management and Control

Version: 1.0.0

About this document

Authors

Authors Organisation
Michael Boniface University of Southampton, IT Innovation Centre
Simon Crowle University of Southampton, IT Innovation Centre

Contents

Documentation

Implementation documentation and discussion can be found in the docs directory.

Testing

Testing is implemented using pytest using the following convention:

  • The testing environment is Vagrant/Virtualbox for a base VM with LXC is installed for specific containers.
  • Tests are written in python using pytest
  • Related tests are stored in a python module src/test/clmctest/<testmodule> to create a suite of tests. All tests are stored in files test_*.py, there can be many tests per file, and many files per module
  • Tests are executed against a set of LXC containers described in src/test/clmctest/rspec.json.
  • Tests are executed from the test-runner container on the VM using install python modules

Here's the instructions

vagrant up

This will create a single VM with LXC installed and configured with lxcbr0 configured for the network 172.40.231.0/24

SSH into the VM

vagrant ssh

The containers are controlled using a script called /vagrant/scripts/test/fixtures.sh

Usage: fixturs.sh create|start|stop|destroy [-f config_file] [-r repo_root] [-c service_name]"

To create all the services needed for integration tests

sudo su
/vagrant/scripts/test/fixtures.sh create -f /vagrant/src/test/clmctest/rspec.json

The containers created are defined an rspec.json file, there's an example here /vagrant/src/test/clmctest/rspec.json

The fixtures.sh script defaults to look for a rspec.json in the current directory, you can specify a specific rspec.json file using the -f option

To create|start|stop|destroy specific services use the -c option e.g.

/vagrant/scripts/test/fixtures.sh create -f /vagrant/src/test/clmctest/rspec.json -c clmc-service

Attach to the test-runner to run the tests

lxc-attach -n test-runner

Here we need to define a make file but for now the commands are manual

cd /vagrant/src/test
python setup.py sdist --dist-dir=../../build
cd ../../src/service
python setup.py sdist --dist-dir=../../build
pip3 install /vagrant/build/clmctest-SNAPSHOT.tar.gz
pip3 install /vagrant/build/clmcservice-SNAPSHOT.tar.gz   

The following modules are unit tests

pytest -s --pyargs clmctest.scripts
pytest -s --pyargs clmcservice.tests  

The following modules are integration tests

pytest -s --pyargs clmctest.inputs
pytest -s --pyargs clmctest.monitoring