From 6a39c5320f92ce396180ae448354ba93cd17e7a3 Mon Sep 17 00:00:00 2001 From: Andrei Stepanov Date: Jul 24 2019 13:53:05 +0000 Subject: Merge #370 `add support to archive logs using beakerlib functions` --- diff --git a/roles/standard-test-beakerlib/files/run-beakerlib-test b/roles/standard-test-beakerlib/files/run-beakerlib-test index 6a538b0..30d6680 100755 --- a/roles/standard-test-beakerlib/files/run-beakerlib-test +++ b/roles/standard-test-beakerlib/files/run-beakerlib-test @@ -44,7 +44,7 @@ eval set -- "$opt" while [[ $# -gt 0 ]]; do case "$1" in -t|--test) - STR_BKR_TEST="$2" + export STR_BKR_TEST="$2" shift 2 ;; -w|--workdir) @@ -52,7 +52,7 @@ while [[ $# -gt 0 ]]; do shift 2 ;; -a|--artifactsdir) - STR_ARTIFACTS_DIR="$2" + export STR_ARTIFACTS_DIR="$2" shift 2 ;; --timeout) diff --git a/roles/standard-test-beakerlib/files/str-beakerlib-submit-log b/roles/standard-test-beakerlib/files/str-beakerlib-submit-log new file mode 100644 index 0000000..f055315 --- /dev/null +++ b/roles/standard-test-beakerlib/files/str-beakerlib-submit-log @@ -0,0 +1,23 @@ +#!/usr/bin/bash -e + +# Purpose: Script used by beakerlib role to save a file to standard-test-roles artifacts +# the file is saved under test case name +# +# The script expects $STR_BKR_TEST and $STR_ARTIFACTS_DIR variables to be set +# This script should be called passing the file as parameter: str-beakerlib-submit-log <$file> +# File path could be full path or relative path to where beakerlib functions (rlFileSubmit and rlBundleLogs) are called + +source /usr/share/beakerlib/beakerlib.sh + +if [ -z "$STR_BKR_TEST" ] || [ -z "$STR_ARTIFACTS_DIR" ]; then + rlLogError "STR_BKR_TEST and STR_ARTIFACTS_DIR are required by $0" + exit 1 +fi + +rlLogInfo "Copying $2 to ${STR_ARTIFACTS_DIR}/${STR_BKR_TEST}" + +if [[ ! -d ${STR_ARTIFACTS_DIR}/${STR_BKR_TEST} ]];then + mkdir -p ${STR_ARTIFACTS_DIR}/${STR_BKR_TEST} +fi + +cp -f "${2}" ${STR_ARTIFACTS_DIR}/${STR_BKR_TEST}/ diff --git a/roles/standard-test-beakerlib/tasks/main.yml b/roles/standard-test-beakerlib/tasks/main.yml index 7d99091..5b60a25 100644 --- a/roles/standard-test-beakerlib/tasks/main.yml +++ b/roles/standard-test-beakerlib/tasks/main.yml @@ -49,6 +49,7 @@ with_fileglob: - "rhts-environment.sh" - "rhts-run-simple-test" + - "str-beakerlib-submit-log" - block: - name: Run beakerlib tests @@ -60,7 +61,10 @@ - "{{ tests }}" - "{{ filter_tests }}" environment: - BEAKERLIB_LIBRARY_PATH: "{{ beakerlib_libraries_path }}" + - BEAKERLIB_LIBRARY_PATH: "{{ beakerlib_libraries_path }}" + # BEAKERLIB_COMMAND_SUBMIT_LOG is a variable used to redefine the script used to store files + # when rlFileSubmit or rlBundleLogs are called + - BEAKERLIB_COMMAND_SUBMIT_LOG: str-beakerlib-submit-log always: # Can't go in block. See diff --git a/tests/beakerlib.yml b/tests/beakerlib.yml index 84c2d91..1ace566 100644 --- a/tests/beakerlib.yml +++ b/tests/beakerlib.yml @@ -66,3 +66,23 @@ - import_tasks: shared-tasks/verify_error_test.yml - import_tasks: shared-tasks/artifacts_test_env.yml - import_tasks: shared-tasks/artifacts_test_runner.yml + +# Make sure the beakerlib functions to save logs work well +- hosts: localhost + tags: + - atomic + - classic + - container + roles: + - role: standard-test-beakerlib + tests: + - test-beakerlib-submit-log + tasks: + - name: "Check if {{artifacts}}/test-beakerlib-submit-log/test1.log was created properly on test runner" + shell: "ls {{artifacts}}/test-beakerlib-submit-log/test1.log" + delegate_to: localhost + - name: "Check if {{artifacts}}/test-beakerlib-submit-log/tmp-tests.tar.gz was created properly on test runner" + shell: "ls {{artifacts}}/test-beakerlib-submit-log/tmp-tests.tar.gz" + delegate_to: localhost + - import_tasks: shared-tasks/artifacts_test_env.yml + - import_tasks: shared-tasks/artifacts_test_runner.yml diff --git a/tests/test-beakerlib-submit-log/runtest.sh b/tests/test-beakerlib-submit-log/runtest.sh new file mode 100644 index 0000000..a3fe5b1 --- /dev/null +++ b/tests/test-beakerlib-submit-log/runtest.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +# Include Beaker environment +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +PACKAGE="beakerlib" + +rlJournalStart + rlPhaseStartTest "beakerlbi submit logs test" + # Create some files and then store them on artifacts + rlRun "echo test1 > test1.log" + rlRun "echo test2 > test2.log" + rlFileSubmit test1.log + rlBundleLogs tests test1.log test2.log + rlPhaseEnd +rlJournalPrintText +rlJournalEnd