From 3a5dddf24f9d4d8959194b0cd3c6a7dd0cbd73ae Mon Sep 17 00:00:00 2001 From: dundargoc <33953936+dundargoc@users.noreply.github.com> Date: Sat, 11 Feb 2023 18:16:04 +0100 Subject: [PATCH] ci: show all logs at the end of a run (#22226) * ci: show all logs at the end of a run The current CI won't show the logs on error due to early exit. This will at least show the logs, although for all tests at once. --- .github/workflows/ci.yml | 10 +++++--- ci/run_tests.sh | 52 ---------------------------------------- 2 files changed, 7 insertions(+), 55 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 205a8e1615..082d0babb3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -211,6 +211,9 @@ jobs: - name: Setup common environment variables run: ./.github/workflows/env.sh ${{ matrix.flavor }} + - name: Create log dir + run: mkdir -p "${LOG_DIR}" + - name: Install apt packages if: matrix.os == 'linux' run: ./.github/scripts/install_deps_ubuntu.sh @@ -242,9 +245,6 @@ jobs: cmake -B build -G Ninja ${CMAKE_FLAGS} cmake --build build - - name: Prepare sanitizer - run: ./ci/run_tests.sh prepare_sanitizer - - if: "!cancelled()" name: Determine if run should be aborted id: abort_job @@ -272,6 +272,10 @@ jobs: name: Installtests run: ./ci/run_tests.sh installtests + - if: success() || failure() && steps.abort_job.outputs.status == 'success' + name: Show logs + run: cat $(find "$LOG_DIR" -type f) + old_cmake: name: Test oldest supported cmake runs-on: ubuntu-22.04 diff --git a/ci/run_tests.sh b/ci/run_tests.sh index 6899054e15..8bdc164295 100755 --- a/ci/run_tests.sh +++ b/ci/run_tests.sh @@ -19,10 +19,8 @@ check_core_dumps() { local cores if test "${CI_OS_NAME}" = osx; then cores="$(find /cores/ -type f -print)" - local _sudo='sudo' else cores="$(find ./ -type f \( -name 'core.*' -o -name core -o -name nvim.core \) -print)" - local _sudo= fi if test -z "${cores}"; then @@ -36,40 +34,6 @@ check_core_dumps() { exit 1 } -check_logs() { - # Iterate through each log to remove an useless warning. - # shellcheck disable=SC2044 - for log in $(find "${1}" -type f -name "${2}"); do - sed -i "${log}" \ - -e '/Warning: noted but unhandled ioctl/d' \ - -e '/could cause spurious value errors to appear/d' \ - -e '/See README_MISSING_SYSCALL_OR_IOCTL for guidance/d' - done - - # Now do it again, but only consider files with size > 0. - local err="" - # shellcheck disable=SC2044 - for log in $(find "${1}" -type f -name "${2}" -size +0); do - cat "${log}" - err=1 - rm "${log}" - done - if test -n "${err}"; then - echo 'Runtime errors detected.' - exit 1 - fi -} - -valgrind_check() { - check_logs "${1}" "valgrind-*" -} - -check_sanitizer() { - if test -n "${CLANG_SANITIZER}"; then - check_logs "${1}" "*san.*" | cat - fi -} - unittests() {( ulimit -c unlimited || true ninja -C "${BUILD_DIR}" unittest || exit @@ -79,8 +43,6 @@ unittests() {( functionaltests() {( ulimit -c unlimited || true ninja -C "${BUILD_DIR}" "${FUNCTIONALTEST}" || exit - check_sanitizer "${LOG_DIR}" - valgrind_check "${LOG_DIR}" check_core_dumps )} @@ -90,8 +52,6 @@ oldtests() {( reset exit 1 fi - check_sanitizer "${LOG_DIR}" - valgrind_check "${LOG_DIR}" check_core_dumps )} @@ -144,16 +104,4 @@ installtests() {( fi )} -prepare_sanitizer() { - # Invoke nvim to trigger *San early. - if ! ("${BUILD_DIR}"/bin/nvim --version && "${BUILD_DIR}"/bin/nvim -u NONE -e -cq | cat -vet); then - check_sanitizer "${LOG_DIR}" - exit 1 - fi - check_sanitizer "${LOG_DIR}" -} - -rm -rf "${LOG_DIR}" -mkdir -p "${LOG_DIR}" - eval "$*" || exit