4af438d136
Change-Id: I5ea4232ca4fd6e03d5b5f72eb6704bee84d04ea5
131 lines
4.3 KiB
YAML
131 lines
4.3 KiB
YAML
- name: Run the fetch-subunit-output role
|
|
hosts: all
|
|
vars:
|
|
tests_data:
|
|
main:
|
|
directory: "{{ zuul_work_dir }}"
|
|
test_pattern: "WorkingTest.test_success"
|
|
secondary:
|
|
directory: "/var/tmp/extratests"
|
|
test_pattern: "FailingTest.test_failure"
|
|
pre_tasks:
|
|
- name: Ensure pip
|
|
include_role:
|
|
name: ensure-pip
|
|
# Required packages; install them into a .tox path
|
|
# to cover the find-*.sh scripts in the role a bit more.
|
|
- name: Install stestr and subunit-output
|
|
pip:
|
|
name:
|
|
- stestr>=2.0.0,<2.6.0
|
|
- python-subunit
|
|
virtualenv: "{{ zuul_work_dir }}/.tox/utests/"
|
|
virtualenv_command: '{{ ensure_pip_virtualenv_command }}'
|
|
|
|
- name: Ensure that the test directories exists
|
|
file:
|
|
name: "{{ item.value.directory }}"
|
|
state: directory
|
|
loop: "{{ tests_data|dict2items }}"
|
|
|
|
- name: Copy the test files on all directories
|
|
copy:
|
|
src: "subunit_tests"
|
|
dest: "{{ item.value.directory }}"
|
|
loop: "{{ tests_data|dict2items }}"
|
|
|
|
- name: Prepare the test results on all directories
|
|
shell: |
|
|
. {{ zuul_work_dir }}/.tox/utests/bin/activate
|
|
stestr init
|
|
stestr run --test-path subunit_tests {{ item.value.test_pattern }}
|
|
args:
|
|
chdir: "{{ item.value.directory }}"
|
|
ignore_errors: yes
|
|
loop: "{{ tests_data|dict2items }}"
|
|
roles:
|
|
- role: fetch-subunit-output
|
|
post_tasks:
|
|
- name: Check that the testrepository file has been pulled
|
|
delegate_to: localhost
|
|
file:
|
|
path: "{{ zuul.executor.log_root }}/testrepository.subunit"
|
|
state: file
|
|
register: local_subunit_file
|
|
|
|
- name: Check that HTML test result file has been pulled
|
|
delegate_to: localhost
|
|
file:
|
|
path: "{{ zuul.executor.log_root }}/testr_results.html"
|
|
state: file
|
|
register: local_html_test_results
|
|
|
|
- name: Validate that files were pulled correctly
|
|
assert:
|
|
that:
|
|
- local_subunit_file is not changed
|
|
- local_subunit_file is succeeded
|
|
- local_html_test_results is not changed
|
|
- local_html_test_results is succeeded
|
|
|
|
# only one subunit file; the failed result should be hidden
|
|
- name: Check the content of the HTML file
|
|
delegate_to: localhost
|
|
shell: |
|
|
GLOBAL_RESULT=1
|
|
zgrep -q -E 'subunit_tests.test_working.WorkingTest.test_success$' \
|
|
{{ zuul.executor.log_root }}/testr_results.html
|
|
T1=$?
|
|
zgrep -q -E 'subunit_tests.test_failing.FailingTest.test_failure.*_StringException:' \
|
|
{{ zuul.executor.log_root }}/testr_results.html
|
|
T2=$?
|
|
if [ ${T1} -eq 0 ] && [ ${T2} -ne 0 ]; then
|
|
GLOBAL_RESULT=0
|
|
fi
|
|
exit $GLOBAL_RESULT
|
|
|
|
# The following test(s) require(s) the previous playbook
|
|
- name: Run the fetch-subunit-output role with multiple subunits
|
|
hosts: all
|
|
roles:
|
|
- role: fetch-subunit-output
|
|
fetch_subunit_output_additional_dirs:
|
|
- "/var/tmp/extratests"
|
|
post_tasks:
|
|
- name: Check that the testrepository file has been pulled
|
|
delegate_to: localhost
|
|
file:
|
|
path: "{{ zuul.executor.log_root }}/testrepository.subunit"
|
|
state: file
|
|
register: local_subunit_file
|
|
|
|
- name: Check that HTML test result file has been pulled
|
|
delegate_to: localhost
|
|
file:
|
|
path: "{{ zuul.executor.log_root }}/testr_results.html"
|
|
state: file
|
|
register: local_html_test_results
|
|
|
|
- name: Validate that files were pulled correctly
|
|
assert:
|
|
that:
|
|
- local_subunit_file is not changed
|
|
- local_subunit_file is succeeded
|
|
- local_html_test_results is not changed
|
|
- local_html_test_results is succeeded
|
|
|
|
- name: Check the content of the HTML file
|
|
delegate_to: localhost
|
|
shell: |
|
|
GLOBAL_RESULT=1
|
|
zgrep -q -E 'subunit_tests.test_working.WorkingTest.test_success$' \
|
|
{{ zuul.executor.log_root }}/testr_results.html
|
|
T1=$?
|
|
zgrep -q -E 'subunit_tests.test_failing.FailingTest.test_failure.*_StringException:' \
|
|
{{ zuul.executor.log_root }}/testr_results.html
|
|
T2=$?
|
|
if [ ${T1} -eq 0 ] && [ ${T2} -eq 0 ]; then
|
|
GLOBAL_RESULT=0
|
|
fi
|
|
exit $GLOBAL_RESULT
|