-
Notifications
You must be signed in to change notification settings - Fork 296
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
tests: Merge installed/ and fedora-str/ directories
Let's be opinionated now, and our installed/ test story *is* Ansible/STR. Merge `tests/fedora-str` into `tests/installed/`. Rework the nondestructive tests into a separate playbook run, and parallelize them for more efficiency. The destructive tests are also changed to use Ansible more. Add a higher level `run.sh` entrypoint and update the `README.md` with some useful tips.
- Loading branch information
Showing
24 changed files
with
149 additions
and
66 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,12 @@ | ||
This suite of tests is currently run from redhat-ci; | ||
they're intended to run as root. | ||
This directory holds tests that use the | ||
[Fedora Standard Test Interface](https://fedoraproject.org/wiki/CI/Standard_Test_Interface). | ||
|
||
The high level structure is that we take a qcow2 file, inject | ||
built RPMs into it, and then use Ansible to run tests. | ||
|
||
See `papr.yml` for canonical usage. | ||
|
||
For local development, you should cache the qcow2 somewhere | ||
stable (outside of this git repo). Also note that `../ci/build-rpms.sh` | ||
does *not* pick up uncommitted changes! Stated more strongly, you | ||
currently need to run `build-rpms.sh` after every change. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
# This entrypoint right now just runs the sysinstalled-tests. | ||
--- | ||
- hosts: localhost | ||
tags: | ||
- atomic | ||
remote_user: root | ||
vars: | ||
use_git_build: True | ||
tests: "." | ||
tasks: | ||
- import_tasks: overlay-git.yml | ||
when: use_git_build | ||
# Next copy all of the tests/ directory | ||
- name: Copy test data | ||
synchronize: src=../../ dest=/root/tests/ archive=yes | ||
- find: | ||
paths: /root/tests/installed/destructive | ||
patterns: "itest-*.sh" | ||
register: all_tests | ||
- set_fact: | ||
selected_tests: "{{ all_tests.files|map(attribute='path') | select('match', tests) | list }}" | ||
- assert: | ||
that: | ||
- "{{ selected_tests|length }} != 0" | ||
- file: path=/root/logs state=directory | ||
- block: | ||
- name: Run destructive tests | ||
shell: "{{ item }} &> /root/logs/$(basename {{ item }}).log" | ||
with_items: | ||
- "{{ selected_tests }}" | ||
always: | ||
- synchronize: | ||
src: /root/logs/ | ||
dest: artifacts/installed-destructive | ||
mode: pull |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
This suite of tests is run from PAPR. Everything in here is destructive; it's | ||
recommended to only run them in disposable virtual machines. This is done | ||
in `tests/fedora-str/sysinstalled-tests.yml`, which currently uses a single VM | ||
and runs the tests serially. It's likely in the future this will be changed | ||
to do one VM per test. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -5,7 +5,7 @@ | |
set -xeuo pipefail | ||
|
||
dn=$(dirname $0) | ||
. ${dn}/libinsttest.sh | ||
. ${dn}/../libinsttest.sh | ||
|
||
echo "1..2" | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
##################### | ||
# execute_batch.yml | ||
##################### | ||
- name: Begin async command execution | ||
shell: "{{ async_item }} &> {{ logdir }}/{{ async_item|basename }}.log" | ||
# 10 minutes; the PAPR tester generally times out before that | ||
async: 600 | ||
poll: 0 | ||
with_items: "{{ async_commands }}" | ||
loop_control: | ||
loop_var: "async_item" | ||
register: async_results | ||
|
||
- name: Check async command status | ||
async_status: | ||
jid: "{{ async_result_item.ansible_job_id }}" | ||
with_items: "{{ async_results.results }}" | ||
loop_control: | ||
loop_var: "async_result_item" | ||
register: async_poll_results | ||
until: async_poll_results.finished | ||
retries: 240 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
# Nondestructive sysinstalled tests, run in parallel. | ||
--- | ||
- hosts: localhost | ||
tags: | ||
- atomic | ||
remote_user: root | ||
vars: | ||
use_git_build: True | ||
tests: "." | ||
# Arbitrary...we want some parallelism | ||
batching_factor: 4 | ||
tasks: | ||
- import_tasks: overlay-git.yml | ||
when: use_git_build | ||
# Next copy all of the tests/ directory | ||
- name: Copy test data | ||
synchronize: src=../../ dest=/root/tests/ archive=yes | ||
- find: | ||
paths: /root/tests/installed/nondestructive | ||
patterns: "itest-*.sh" | ||
register: all_tests | ||
- set_fact: | ||
selected_tests: "{{ all_tests.files|map(attribute='path') | select('match', tests) | list }}" | ||
- assert: | ||
that: | ||
- "{{ selected_tests|length }} != 0" | ||
- file: path=/root/logs state=directory | ||
- block: | ||
- name: Run nondestructive tests | ||
vars: | ||
logdir: /root/logs | ||
async_commands: "{{ item }}" | ||
include_tasks: execute_batch.yml | ||
with_items: | ||
- "{{ selected_tests | batch('{{ batching_factor }}') | list }}" | ||
always: | ||
- synchronize: | ||
src: /root/logs | ||
dest: artifacts/installed-nondestructive | ||
mode: pull |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -5,7 +5,7 @@ | |
set -xeuo pipefail | ||
|
||
dn=$(dirname $0) | ||
. ${dn}/libinsttest.sh | ||
. ${dn}/../libinsttest.sh | ||
|
||
echo "1..1" | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -22,7 +22,7 @@ | |
set -xeuo pipefail | ||
|
||
dn=$(dirname $0) | ||
. ${dn}/libinsttest.sh | ||
. ${dn}/../libinsttest.sh | ||
|
||
echo "1..1" | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
../libtest-core.sh |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,17 +1,17 @@ | ||
#!/bin/bash | ||
|
||
#!/usr/bin/bash | ||
# Run all installed tests; see README.md in this directory for more | ||
# information. | ||
set -xeuo pipefail | ||
|
||
dn=$(dirname $0) | ||
for tn in ${dn}/itest-*.sh; do | ||
if [ -n "${TESTS:-}" ]; then | ||
tbn=$(basename "$tn" .sh) | ||
tbn=" ${tbn#itest-} " | ||
if [[ " $TESTS " != *$tbn* ]]; then | ||
echo "Skipping: ${tn}" | ||
continue | ||
fi | ||
fi | ||
echo Executing: ${tn} | ||
${tn} | ||
dn=$(cd $(dirname $0) && pwd) | ||
|
||
if ! test -d build; then | ||
mkdir -p build | ||
(cd build && ${dn}/../../ci/build-rpm.sh) | ||
fi | ||
|
||
# TODO: parallelize this | ||
PLAYBOOKS=${PLAYBOOKS:-destructive.yml nondestructive.yml} | ||
for playbook in $PLAYBOOKS; do | ||
${dn}/playbook-run.sh ${playbook} | ||
done |