From f1d83c4c71dce0edefc9a94b2dfa3ca1c343f837 Mon Sep 17 00:00:00 2001 From: Aliaksei Budavei <0x000c70@gmail.com> Date: Sat, 2 Nov 2024 15:51:14 +0100 Subject: [PATCH] patch 9.1.0827: CI: tests can be improved Problem: CI: tests can be improved Solution: collect failed indent tests, raise timeout for search() functions when using ASAN/Valgrind (Aliaksei Budavei) ASan-instrumented Vim builds tend to run slower (x2) than non-instrumented Vim builds and occasionally make indent tests fail when "search*()" functions time out and give up further execution. Reference: https://github.com/google/sanitizers/wiki/AddressSanitizer closes: #15974 Co-authored-by: Christian Brabandt Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com> Signed-off-by: Christian Brabandt --- .cirrus.yml | 3 ++- .github/actions/{screendump => test_artifacts}/action.yml | 5 +++-- .github/workflows/ci.yml | 6 +++--- Filelist | 2 +- src/testdir/runtest.vim | 5 +++++ src/testdir/shared.vim | 8 ++++++++ src/version.c | 2 ++ 7 files changed, 24 insertions(+), 7 deletions(-) rename .github/actions/{screendump => test_artifacts}/action.yml (86%) diff --git a/.cirrus.yml b/.cirrus.yml index ec897b809d..e81ed84d75 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -22,9 +22,10 @@ freebsd_task: - chown -R cirrus:cirrus . - sudo -u cirrus make test on_failure: - screendump_artifacts: + test_artifacts: name: "Cirrus-CI-freebsd-failed-tests" path: | + runtime/indent/testdir/*.fail runtime/syntax/testdir/failed/* src/testdir/failed/* type: application/octet-stream diff --git a/.github/actions/screendump/action.yml b/.github/actions/test_artifacts/action.yml similarity index 86% rename from .github/actions/screendump/action.yml rename to .github/actions/test_artifacts/action.yml index 5cbc8200c0..44738c505e 100644 --- a/.github/actions/screendump/action.yml +++ b/.github/actions/test_artifacts/action.yml @@ -1,5 +1,5 @@ -name: 'screendump' -description: "Upload failed screendump tests" +name: 'test_artifacts' +description: "Upload failed test artifacts" runs: using: "composite" steps: @@ -12,6 +12,7 @@ runs: # A file, directory or wildcard pattern that describes what # to upload. path: | + ${{ github.workspace }}/runtime/indent/testdir/*.fail ${{ github.workspace }}/runtime/syntax/testdir/failed/* ${{ github.workspace }}/src/testdir/failed/* # The desired behavior if no files are found using the diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index df1041851d..19edd13eac 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -272,7 +272,7 @@ jobs: do_test make ${SHADOWOPT} ${TEST} - if: ${{ !cancelled() }} - uses: ./.github/actions/screendump + uses: ./.github/actions/test_artifacts - name: Vim tags if: contains(matrix.extra, 'vimtags') @@ -394,7 +394,7 @@ jobs: make ${TEST} - if: ${{ !cancelled() }} - uses: ./.github/actions/screendump + uses: ./.github/actions/test_artifacts windows: runs-on: windows-2022 @@ -704,7 +704,7 @@ jobs: ) - if: ${{ !cancelled() }} - uses: ./.github/actions/screendump + uses: ./.github/actions/test_artifacts - name: Generate gcov files if: matrix.coverage diff --git a/Filelist b/Filelist index 803de2ae0e..9b06173811 100644 --- a/Filelist +++ b/Filelist @@ -10,8 +10,8 @@ SRC_ALL = \ .github/ISSUE_TEMPLATE/feature_request.md \ .github/workflows/ci.yml \ .github/workflows/codeql-analysis.yml \ - .github/actions/screendump/action.yml \ .github/workflows/coverity.yml \ + .github/actions/test_artifacts/action.yml \ .github/dependabot.yml \ .gitignore \ .hgignore \ diff --git a/src/testdir/runtest.vim b/src/testdir/runtest.vim index ded31975b8..9bb500e265 100644 --- a/src/testdir/runtest.vim +++ b/src/testdir/runtest.vim @@ -247,6 +247,11 @@ func RunTheTest(test) let g:timeout_start = localtime() endif + if ValgrindOrAsan() + let g:vim_indent = {"searchpair_timeout": 1024} + let g:python_indent = {"searchpair_timeout": 1024} + endif + " Avoid stopping at the "hit enter" prompt set nomore diff --git a/src/testdir/shared.vim b/src/testdir/shared.vim index 1edf65ac88..a9b422c30e 100644 --- a/src/testdir/shared.vim +++ b/src/testdir/shared.vim @@ -318,6 +318,14 @@ func RunningWithValgrind() return GetVimCommand() =~ '\' endfunc +func RunningAsan() + return exists("$ASAN_OPTIONS") +endfunc + +func ValgrindOrAsan() + return RunningWithValgrind() || RunningAsan() +endfun + " Get the command to run Vim, with --clean instead of "-u NONE". func GetVimCommandClean() let cmd = GetVimCommand() diff --git a/src/version.c b/src/version.c index 493de72f68..4aa4ab7ed2 100644 --- a/src/version.c +++ b/src/version.c @@ -704,6 +704,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 827, /**/ 826, /**/