From 1b4db3377baf62a1fe491a40b6caa8cc83c0b2c7 Mon Sep 17 00:00:00 2001 From: Martin Sehnoutka Date: Wed, 4 Nov 2020 09:31:33 +0100 Subject: [PATCH] base_tests.sh: make the test self-contained We claim to have self-contained test cases, but the base_tests.sh script still requires the WORKSPACE environment variable to be set outside of the script, which is what Jenkins does. This patch replaces WORKSPACE with a temporary directory and modifies Jenkinsfile to use it when collecting logs. --- schutzbot/Jenkinsfile | 2 ++ test/cases/base_tests.sh | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/schutzbot/Jenkinsfile b/schutzbot/Jenkinsfile index b5206b0ce..313cd0e3b 100644 --- a/schutzbot/Jenkinsfile +++ b/schutzbot/Jenkinsfile @@ -351,6 +351,8 @@ void preserve_logs(test_slug) { // Make a directory for the log files and move the logs there. sh "mkdir ${test_slug} && mv *.log *.jpg ${test_slug}/ || true" + // The workspace directory is not used everywhere, tests use temporary directory under /tmp/logs. + sh "mkdir -p ${test_slug} && find /tmp/logs/ -name '*.log' -exec mv {} ${test_slug}/ \\; || true" // Artifact the logs. archiveArtifacts ( diff --git a/test/cases/base_tests.sh b/test/cases/base_tests.sh index 6e0f67e5d..11911fc2d 100755 --- a/test/cases/base_tests.sh +++ b/test/cases/base_tests.sh @@ -3,6 +3,8 @@ set -euo pipefail WORKING_DIRECTORY=/usr/libexec/osbuild-composer TESTS_PATH=/usr/libexec/osbuild-composer-test +mkdir --parents /tmp/logs +LOGS_DIRECTORY=$(mktemp --directory --tmpdir=/tmp/logs) PASSED_TESTS=() FAILED_TESTS=() @@ -27,7 +29,7 @@ run_test_case () { echo "🏃🏻 Running test: ${TEST_NAME}" test_divider - if sudo "${1}" -test.v | tee "${WORKSPACE}"/"${TEST_NAME}".log; then + if sudo "${1}" -test.v | tee "${LOGS_DIRECTORY}"/"${TEST_NAME}".log; then PASSED_TESTS+=("$TEST_NAME") else FAILED_TESTS+=("$TEST_NAME")