Skip to content

Commit 6dcc185

Browse files
committed
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 75674c7 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/[email protected]
1 parent d33a812 commit 6dcc185

File tree

1 file changed

+45
-36
lines changed

1 file changed

+45
-36
lines changed

.cirrus.yml

+45-36
Original file line numberDiff line numberDiff line change
@@ -366,6 +366,14 @@ task:
366366
# build
367367
MSBFLAGS: -m -verbosity:minimal "-consoleLoggerParameters:Summary;ForceNoAlign" /p:TrackFileAccess=false -nologo
368368

369+
# If tests hang forever, cirrus eventually times out. In that case log
370+
# output etc is not uploaded, making the problem hard to debug. Of course
371+
# tests internally should have shorter timeouts, but that's proven to not
372+
# be sufficient. 15min currently is fast enough to finish individual test
373+
# "suites".
374+
T_C: "\"C:/Program Files/Git/usr/bin/timeout.exe\" -v -k60s 15m"
375+
376+
369377
only_if: $CIRRUS_CHANGE_MESSAGE !=~ '.*\nci-os-only:.*' || $CIRRUS_CHANGE_MESSAGE =~ '.*\nci-os-only:[^\n]*windows.*'
370378

371379
windows_container:
@@ -391,42 +399,43 @@ task:
391399
# Installation on windows currently only completely works from src/tools/msvc
392400
- cd src/tools/msvc && perl install.pl %CIRRUS_WORKING_DIR%/tmp_install
393401

394-
test_regress_parallel_script:
395-
- perl src/tools/msvc/vcregress.pl check parallel
396-
startcreate_script:
397-
# paths to binaries need backslashes
398-
- tmp_install\bin\pg_ctl.exe initdb -D tmp_check/db -l tmp_check/initdb.log --options=--no-sync
399-
- echo include '%TEMP_CONFIG%' >> tmp_check/db/postgresql.conf
400-
- tmp_install\bin\pg_ctl.exe start -D tmp_check/db -l tmp_check/postmaster.log
401-
test_pl_script:
402-
- perl src/tools/msvc/vcregress.pl plcheck
403-
test_isolation_script:
404-
- perl src/tools/msvc/vcregress.pl isolationcheck
405-
test_modules_script:
406-
- perl src/tools/msvc/vcregress.pl modulescheck
407-
test_contrib_script:
408-
- perl src/tools/msvc/vcregress.pl contribcheck
409-
stop_script:
410-
- tmp_install\bin\pg_ctl.exe stop -D tmp_check/db -l tmp_check/postmaster.log
411-
test_ssl_script:
412-
- set with_ssl=openssl
413-
- perl src/tools/msvc/vcregress.pl taptest ./src/test/ssl/
414-
test_subscription_script:
415-
- perl src/tools/msvc/vcregress.pl taptest ./src/test/subscription/
416-
test_authentication_script:
417-
- perl src/tools/msvc/vcregress.pl taptest ./src/test/authentication/
418-
test_recovery_script:
419-
- perl src/tools/msvc/vcregress.pl recoverycheck
420-
test_bin_script:
421-
- perl src/tools/msvc/vcregress.pl bincheck
422-
test_pg_upgrade_script:
423-
- perl src/tools/msvc/vcregress.pl upgradecheck
424-
test_ecpg_script:
425-
# tries to build additional stuff
426-
- vcvarsall x64
427-
# References ecpg_regression.proj in the current dir
428-
- cd src/tools/msvc
429-
- perl vcregress.pl ecpgcheck
402+
test_regress_parallel_script: |
403+
%T_C% perl src/tools/msvc/vcregress.pl check parallel
404+
startcreate_script: |
405+
rem paths to binaries need backslashes
406+
tmp_install\bin\pg_ctl.exe initdb -D tmp_check/db -l tmp_check/initdb.log --options=--no-sync
407+
echo include '%TEMP_CONFIG%' >> tmp_check/db/postgresql.conf
408+
tmp_install\bin\pg_ctl.exe start -D tmp_check/db -l tmp_check/postmaster.log
409+
410+
test_pl_script: |
411+
%T_C% perl src/tools/msvc/vcregress.pl plcheck
412+
test_isolation_script: |
413+
%T_C% perl src/tools/msvc/vcregress.pl isolationcheck
414+
test_modules_script: |
415+
%T_C% perl src/tools/msvc/vcregress.pl modulescheck
416+
test_contrib_script: |
417+
%T_C% perl src/tools/msvc/vcregress.pl contribcheck
418+
stop_script: |
419+
tmp_install\bin\pg_ctl.exe stop -D tmp_check/db -l tmp_check/postmaster.log
420+
test_ssl_script: |
421+
set with_ssl=openssl
422+
%T_C% perl src/tools/msvc/vcregress.pl taptest ./src/test/ssl/
423+
test_subscription_script: |
424+
%T_C% perl src/tools/msvc/vcregress.pl taptest ./src/test/subscription/
425+
test_authentication_script: |
426+
%T_C% perl src/tools/msvc/vcregress.pl taptest ./src/test/authentication/
427+
test_recovery_script: |
428+
%T_C% perl src/tools/msvc/vcregress.pl recoverycheck
429+
test_bin_script: |
430+
%T_C% perl src/tools/msvc/vcregress.pl bincheck
431+
test_pg_upgrade_script: |
432+
%T_C% perl src/tools/msvc/vcregress.pl upgradecheck
433+
test_ecpg_script: |
434+
rem tries to build additional stuff
435+
vcvarsall x64
436+
rem References ecpg_regression.proj in the current dir
437+
cd src/tools/msvc
438+
%T_C% perl vcregress.pl ecpgcheck
430439
431440
on_failure: *on_failure
432441

0 commit comments

Comments
 (0)