From 85eb1cf79a5847e9e783636c75363dc2090184e2 Mon Sep 17 00:00:00 2001 From: Jon Jagger Date: Sun, 26 Jan 2025 09:19:46 +0000 Subject: [PATCH] Print server startup warnings (#253) --- bin/lib.sh | 45 +++++++-------------------------------------- bin/run_tests.sh | 13 ++++++------- 2 files changed, 13 insertions(+), 45 deletions(-) diff --git a/bin/lib.sh b/bin/lib.sh index 0b3ba32..b543c85 100755 --- a/bin/lib.sh +++ b/bin/lib.sh @@ -109,49 +109,18 @@ copy_in_saver_test_data() | docker exec -i ${SAVER_CID} tar x -C ${DEST_PATH} } -exit_non_zero_unless_started_cleanly() +echo_warnings() { - local -r SERVICE_NAME=server + local -r SERVICE_NAME="${1}" # {client|server} + local -r DOCKER_LOG=$(docker logs "${CONTAINER_NAME}" 2>&1) # Handle known warnings (eg waiting on Gem upgrade) # local -r SHADOW_WARNING="server.rb:(.*): warning: shadowing outer local variable - filename" # DOCKER_LOG=$(strip_known_warning "${DOCKER_LOG}" "${SHADOW_WARNING}") - if [ "$(top_5)" != "$(clean_top_5)" ]; then - echo - echo "${SERVICE_NAME} did not start cleanly: docker log..." - echo 'expected------------------' - echo "$(clean_top_5)" - echo - echo 'actual--------------------' - echo "$(top_5)" - echo - echo 'diff--------------------' - grep -Fxvf <(clean_top_5) <(top_5) - echo - exit 42 - fi -} - -top_5() -{ - echo_docker_log | head -5 -} -clean_top_5() -{ - # 1st 5 lines on Puma - local -r L1="Puma starting in single mode..." - local -r L2='* Puma version: 6.5.0 ("Sky'"'"'s Version")' - local -r L3='* Ruby version: ruby 3.3.6 (2024-11-05 revision 75015d4c1f) [x86_64-linux-musl]' - local -r L4="* Min threads: 0" - local -r L5="* Max threads: 5" - # - local -r all5="$(printf "%s\n%s\n%s\n%s\n%s" "${L1}" "${L2}" "${L3}" "${L4}" "${L5}")" - echo "${all5}" -} - -echo_docker_log() -{ - docker logs "${CYBER_DOJO_DASHBOARD_SERVER_CONTAINER_NAME}" 2>&1 + if echo "${DOCKER_LOG}" | grep --quiet "warning" ; then + echo "Warnings in ${SERVICE_NAME} container" + echo "${DOCKER_LOG}" + fi } strip_known_warning() diff --git a/bin/run_tests.sh b/bin/run_tests.sh index 71dce3e..fe76512 100755 --- a/bin/run_tests.sh +++ b/bin/run_tests.sh @@ -59,19 +59,18 @@ check_args() run_tests() { check_args "$@" - exit_non_zero_unless_installed docker - export SERVICE_NAME="${1}" - # Don't do a build here, because in CI workflow, server image is built with GitHub Action - docker compose --progress=plain up --no-build --wait --wait-timeout=10 "${SERVICE_NAME}" - - exit_non_zero_unless_started_cleanly - copy_in_saver_test_data local -r TYPE="${1}" # {server|client} local -r TEST_LOG=test.log local -r CONTAINER_COVERAGE_DIR="/tmp/reports" local -r HOST_REPORTS_DIR="${ROOT_DIR}/reports/${TYPE}" + exit_non_zero_unless_installed docker + # Don't do a build here, because in CI workflow, server image is built with GitHub Action + docker compose --progress=plain up --no-build --wait --wait-timeout=10 "${TYPE}" + echo_warnings "${TYPE}" + copy_in_saver_test_data + echo '==================================' echo "Running ${TYPE} tests" echo '=================================='