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 <cb@256bit.org>
Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
Aliaksei Budavei
2024-11-02 15:51:14 +01:00
committed by Christian Brabandt
parent a95d6a3d64
commit f1d83c4c71
7 changed files with 24 additions and 7 deletions

View File

@ -22,9 +22,10 @@ freebsd_task:
- chown -R cirrus:cirrus . - chown -R cirrus:cirrus .
- sudo -u cirrus make test - sudo -u cirrus make test
on_failure: on_failure:
screendump_artifacts: test_artifacts:
name: "Cirrus-CI-freebsd-failed-tests" name: "Cirrus-CI-freebsd-failed-tests"
path: | path: |
runtime/indent/testdir/*.fail
runtime/syntax/testdir/failed/* runtime/syntax/testdir/failed/*
src/testdir/failed/* src/testdir/failed/*
type: application/octet-stream type: application/octet-stream

View File

@ -1,5 +1,5 @@
name: 'screendump' name: 'test_artifacts'
description: "Upload failed screendump tests" description: "Upload failed test artifacts"
runs: runs:
using: "composite" using: "composite"
steps: steps:
@ -12,6 +12,7 @@ runs:
# A file, directory or wildcard pattern that describes what # A file, directory or wildcard pattern that describes what
# to upload. # to upload.
path: | path: |
${{ github.workspace }}/runtime/indent/testdir/*.fail
${{ github.workspace }}/runtime/syntax/testdir/failed/* ${{ github.workspace }}/runtime/syntax/testdir/failed/*
${{ github.workspace }}/src/testdir/failed/* ${{ github.workspace }}/src/testdir/failed/*
# The desired behavior if no files are found using the # The desired behavior if no files are found using the

View File

@ -272,7 +272,7 @@ jobs:
do_test make ${SHADOWOPT} ${TEST} do_test make ${SHADOWOPT} ${TEST}
- if: ${{ !cancelled() }} - if: ${{ !cancelled() }}
uses: ./.github/actions/screendump uses: ./.github/actions/test_artifacts
- name: Vim tags - name: Vim tags
if: contains(matrix.extra, 'vimtags') if: contains(matrix.extra, 'vimtags')
@ -394,7 +394,7 @@ jobs:
make ${TEST} make ${TEST}
- if: ${{ !cancelled() }} - if: ${{ !cancelled() }}
uses: ./.github/actions/screendump uses: ./.github/actions/test_artifacts
windows: windows:
runs-on: windows-2022 runs-on: windows-2022
@ -704,7 +704,7 @@ jobs:
) )
- if: ${{ !cancelled() }} - if: ${{ !cancelled() }}
uses: ./.github/actions/screendump uses: ./.github/actions/test_artifacts
- name: Generate gcov files - name: Generate gcov files
if: matrix.coverage if: matrix.coverage

View File

@ -10,8 +10,8 @@ SRC_ALL = \
.github/ISSUE_TEMPLATE/feature_request.md \ .github/ISSUE_TEMPLATE/feature_request.md \
.github/workflows/ci.yml \ .github/workflows/ci.yml \
.github/workflows/codeql-analysis.yml \ .github/workflows/codeql-analysis.yml \
.github/actions/screendump/action.yml \
.github/workflows/coverity.yml \ .github/workflows/coverity.yml \
.github/actions/test_artifacts/action.yml \
.github/dependabot.yml \ .github/dependabot.yml \
.gitignore \ .gitignore \
.hgignore \ .hgignore \

View File

@ -247,6 +247,11 @@ func RunTheTest(test)
let g:timeout_start = localtime() let g:timeout_start = localtime()
endif 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 " Avoid stopping at the "hit enter" prompt
set nomore set nomore

View File

@ -318,6 +318,14 @@ func RunningWithValgrind()
return GetVimCommand() =~ '\<valgrind\>' return GetVimCommand() =~ '\<valgrind\>'
endfunc 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". " Get the command to run Vim, with --clean instead of "-u NONE".
func GetVimCommandClean() func GetVimCommandClean()
let cmd = GetVimCommand() let cmd = GetVimCommand()

View File

@ -704,6 +704,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
827,
/**/ /**/
826, 826,
/**/ /**/