LTS - local testing server SUT - system under tests
Example SUT IP address: 192.168.244.7
Install Ansible
yum --enablerepo=epel install ansible
Add key
ssh-keygen -t rsa
Add a key to SUT, a comma after the IP address is required
ansible all -i 192.168.244.7, -m authorized_key -a "user=root key='{{ lookup('file', '/root/.ssh/id_rsa.pub') }}' path=/root/.ssh/authorized_keys manage_dir=no" --ask-pass
Check connection with SUT, comma after IP address is required
ansible all -i 192.168.244.7, -m ping -u root
Clone repository
cd ~ && git clone "https://LOGIN@gerrit.cloudlinux.com/a/hardware-certification"
Create your test directory in the ~/hardware-certification/tests
folder, for example example
.
Test directory structure for automated tests
|- tests/example
|-- roles
|--- main.yml - Ansible tasks
|-- README.md - instructions for working with the test when manually launched
|-- run_test.sh - script to run the test
Test directory structure for interactive tests
|- tests/example
|-- step1.yml - sub playbook with interactive prompts
|-- step2.yml - sub playbook with interactive prompts
|-- stepx.yml - sub playbook with interactive prompts
|-- README.md - instructions for working with the test when manually launched
Each automated test should store test results and utility output in a file name
.log in the root directory of the repository ~/hardware-certification/logs/
. You can get the folder path from a variable {{ lts_logs_dir }}
.
Add your automated tasks that perform the test to the ~/hardware-certification/automated.yml
file and interactive playbook to the ~/hardware-certification/interactive.yml
file located in the root of the repository.
Each test must be marked with a tag, for example tags: test_example
Add your test settings to the ~/hardware-certification/vars.yml
file if required
To run all automated tests:
Run tests on the LTS, comma after IP address is required
ansible-playbook -i 192.168.244.7, automated.yml
Run Phoronix tests on the LTS
ansible-playbook -i 192.168.244.7, automated.yml --tags phoronix
To run all interactive tests: Run tests on the LTS, comma after IP address is required
ansible-playbook -i 192.168.244.7, interactive.yml
Run command:
ansible-playbook -c local -i 127.0.0.1, automated.yml
Tests can be configured via ~/hardware-certification/vars.yml
file.
You can run automated tests by tag.
For example:
ansible-playbook -i 192.168.244.7, automated.yml --tags cpu
Available tags:
~/hardware-certification/tests
folder from LTS to SUTInteractive tests can't be run separately.
The ansible output will display information about each test. If there are errors, the tests will be colored red.
Summary information will display the test result. Notice the ignored=0 value. If it is > 0, the test has failed.
The value of failed is always 0, due to skipping failed tests for further sequential execution.
Example: 127.0.0.1 : ok=9 changed=7 unreachable=0 failed=0 skipped=0 rescued=0 ignored=1
local_action
.Run command on the LTS: local_action
Run command on the SUT: command, sh, etc.
screen -L -S hctest
/root
folder, to change the section, you need to change the test_phoronix['folder']
in the vars.yml
file.