- Tests are run using a test framework called Avocado. The version known to work with the existing tests is 52 69.3; if you yum install on Boro that should be the version you get.
- You need to install it on all the cluster nodes that are going to be used to run tests.
- Specifically:
- yum install python2-avocado.noarch
- yum install python2-avocado-plugins-output-html.noarch
- yum install python2-avocado-pluginsinstall python3-pip
- pip3 install --upgrade pip
- pip3 install "avocado-framework<70.0"
- pip3 install "avocado-framework-plugin-result-html<70.0"
- pip3 install "avocado-framework-plugin-varianter-yaml-to-mux.noarch
- yum install python2-aexpect.noarch
- yum install python2-pip mux<70.0"
- pip install gitpython (only needed for IOR build)
- pip install pathlib
- pip install python2-pip3 install clustershell OR clustershell
- DAOS can be installed using DAOS RPM package, also can be built locally following the instructions in the quickstart.md file.
- Tests are in $PREFIX/lib/daos/TESTING/ftest, in RPM env, $PREFIX=/usr; in local built env, $PREFIX=myrepo/install. At the top level is launch.py which simplifies running DAOS with avocado. Sub-directories contain categories of tests e.g. the pool directory contains tests relating to pools.
- A given group of tests is implemented as a combination of a python file (.py) and a yaml file (.yaml). So for example in the pool directory there is a SimpleCreateDeleteTest.py and SimplecreateDeleteTest.yaml. The python contains the test code that drives the test, and the yaml file contains the test parameters. A single function in the python file can execute a large number of test cases because its run for different combinations of inputs as found in the yaml file.
- Server will be launched with Control Plane API so not need to pass any environment arguments, But client side Control plane still to be developed so this Two parameter to be set prior running any Avocado test via launch script.
export CRT_PHY_ADDR_STR="ofi+sockets"
export OFI_INTERFACE=ib0
- For tests that run on multiple servers, these two files need to be accessible by remote server nodes:
- daos_avocado_test.yaml
- daos_server.attach_info_tmp
...