diff options
author | Andres Freund <andres@anarazel.de> | 2022-02-02 17:31:54 -0800 |
---|---|---|
committer | Andres Freund <andres@anarazel.de> | 2022-02-02 17:31:54 -0800 |
commit | 6dcc18526673ec6cfa2fa286d2039ae85fb8eb9e (patch) | |
tree | be66b90881d0a3d6d3cd1d8d12fd831700f3fc8d | |
parent | d33a81203e95d31e62157c4ae0e00e2198841208 (diff) | |
download | postgresql-6dcc18526673ec6cfa2fa286d2039ae85fb8eb9e.tar.gz postgresql-6dcc18526673ec6cfa2fa286d2039ae85fb8eb9e.zip |
ci: windows: run tests under timeout.
On windows ci/cfbot currently regularly hangs / times out. Presumably this is due
to the issues discussed in
https://postgr.es/m/CA%2BhUKG%2BG5DUNJfdE-qusq5pcj6omYTuWmmFuxCvs%3Dq1jNjkKKA%40mail.gmail.com
which lead to reverting 75674c7ec1b everywhere but master.
But it's hard to tell - because the entire test task times out, we don't get
to see debugging information.
This commit adds a timeout (using git's timeout binary) to all vcregress
invocations, which should address the problem for now. It might also be a good
idea to add timeouts to the other operating systems at a later time.
The diff is a bit larger than one might think necessary: Yaml doesn't like % -
from the windows command variable syntax - at the start of an unquoted
string...
Discussion: https://postgr.es/m/20220110005704.es4el6i2nxlxzwof@alap3.anarazel.de
-rw-r--r-- | .cirrus.yml | 81 |
1 files changed, 45 insertions, 36 deletions
diff --git a/.cirrus.yml b/.cirrus.yml index 677bdf0e65e..8e0ae69beea 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -366,6 +366,14 @@ task: # build MSBFLAGS: -m -verbosity:minimal "-consoleLoggerParameters:Summary;ForceNoAlign" /p:TrackFileAccess=false -nologo + # If tests hang forever, cirrus eventually times out. In that case log + # output etc is not uploaded, making the problem hard to debug. Of course + # tests internally should have shorter timeouts, but that's proven to not + # be sufficient. 15min currently is fast enough to finish individual test + # "suites". + T_C: "\"C:/Program Files/Git/usr/bin/timeout.exe\" -v -k60s 15m" + + only_if: $CIRRUS_CHANGE_MESSAGE !=~ '.*\nci-os-only:.*' || $CIRRUS_CHANGE_MESSAGE =~ '.*\nci-os-only:[^\n]*windows.*' windows_container: @@ -391,42 +399,43 @@ task: # Installation on windows currently only completely works from src/tools/msvc - cd src/tools/msvc && perl install.pl %CIRRUS_WORKING_DIR%/tmp_install - test_regress_parallel_script: - - perl src/tools/msvc/vcregress.pl check parallel - startcreate_script: - # paths to binaries need backslashes - - tmp_install\bin\pg_ctl.exe initdb -D tmp_check/db -l tmp_check/initdb.log --options=--no-sync - - echo include '%TEMP_CONFIG%' >> tmp_check/db/postgresql.conf - - tmp_install\bin\pg_ctl.exe start -D tmp_check/db -l tmp_check/postmaster.log - test_pl_script: - - perl src/tools/msvc/vcregress.pl plcheck - test_isolation_script: - - perl src/tools/msvc/vcregress.pl isolationcheck - test_modules_script: - - perl src/tools/msvc/vcregress.pl modulescheck - test_contrib_script: - - perl src/tools/msvc/vcregress.pl contribcheck - stop_script: - - tmp_install\bin\pg_ctl.exe stop -D tmp_check/db -l tmp_check/postmaster.log - test_ssl_script: - - set with_ssl=openssl - - perl src/tools/msvc/vcregress.pl taptest ./src/test/ssl/ - test_subscription_script: - - perl src/tools/msvc/vcregress.pl taptest ./src/test/subscription/ - test_authentication_script: - - perl src/tools/msvc/vcregress.pl taptest ./src/test/authentication/ - test_recovery_script: - - perl src/tools/msvc/vcregress.pl recoverycheck - test_bin_script: - - perl src/tools/msvc/vcregress.pl bincheck - test_pg_upgrade_script: - - perl src/tools/msvc/vcregress.pl upgradecheck - test_ecpg_script: - # tries to build additional stuff - - vcvarsall x64 - # References ecpg_regression.proj in the current dir - - cd src/tools/msvc - - perl vcregress.pl ecpgcheck + test_regress_parallel_script: | + %T_C% perl src/tools/msvc/vcregress.pl check parallel + startcreate_script: | + rem paths to binaries need backslashes + tmp_install\bin\pg_ctl.exe initdb -D tmp_check/db -l tmp_check/initdb.log --options=--no-sync + echo include '%TEMP_CONFIG%' >> tmp_check/db/postgresql.conf + tmp_install\bin\pg_ctl.exe start -D tmp_check/db -l tmp_check/postmaster.log + + test_pl_script: | + %T_C% perl src/tools/msvc/vcregress.pl plcheck + test_isolation_script: | + %T_C% perl src/tools/msvc/vcregress.pl isolationcheck + test_modules_script: | + %T_C% perl src/tools/msvc/vcregress.pl modulescheck + test_contrib_script: | + %T_C% perl src/tools/msvc/vcregress.pl contribcheck + stop_script: | + tmp_install\bin\pg_ctl.exe stop -D tmp_check/db -l tmp_check/postmaster.log + test_ssl_script: | + set with_ssl=openssl + %T_C% perl src/tools/msvc/vcregress.pl taptest ./src/test/ssl/ + test_subscription_script: | + %T_C% perl src/tools/msvc/vcregress.pl taptest ./src/test/subscription/ + test_authentication_script: | + %T_C% perl src/tools/msvc/vcregress.pl taptest ./src/test/authentication/ + test_recovery_script: | + %T_C% perl src/tools/msvc/vcregress.pl recoverycheck + test_bin_script: | + %T_C% perl src/tools/msvc/vcregress.pl bincheck + test_pg_upgrade_script: | + %T_C% perl src/tools/msvc/vcregress.pl upgradecheck + test_ecpg_script: | + rem tries to build additional stuff + vcvarsall x64 + rem References ecpg_regression.proj in the current dir + cd src/tools/msvc + %T_C% perl vcregress.pl ecpgcheck on_failure: *on_failure |