From 2c86e1dccb5f52af80c9553f050a183391bb468e Mon Sep 17 00:00:00 2001 From: Anna Larch Date: Wed, 27 May 2026 09:52:15 +0200 Subject: [PATCH] test(ci): enforce PHPUnit time limits with sensible timeout values MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PHPUnit's enforceTimeLimit was disabled, meaning the timeoutForSmallTests, timeoutForMediumTests and timeoutForLargeTests config values had no effect. Enable enforcement and set realistic limits: 60s/300s/600s for small/medium/large, with a 300s default for unannotated tests. Also clear disable_functions in the PHP development ini preset across all PHPUnit workflows so pcntl_signal is available — without it the signal handler that drives timeout enforcement cannot be registered. Signed-off-by: Anna Larch AI-Assisted-By: Claude Sonnet 4.6 Signed-off-by: Anna Larch --- .github/workflows/files-external-s3.yml | 2 ++ .github/workflows/files-external-smb.yml | 1 + .github/workflows/files-external-webdav.yml | 1 + .github/workflows/files-external.yml | 1 + .github/workflows/object-storage-azure.yml | 1 + .github/workflows/object-storage-s3.yml | 1 + .github/workflows/object-storage-swift.yml | 1 + .github/workflows/phpunit-mariadb.yml | 1 + .github/workflows/phpunit-memcached.yml | 1 + .github/workflows/phpunit-mysql-sharding.yml | 1 + .github/workflows/phpunit-mysql.yml | 1 + .github/workflows/phpunit-oci.yml | 1 + .github/workflows/phpunit-pgsql.yml | 1 + .github/workflows/phpunit-sqlite.yml | 1 + tests/phpunit-autotest-external.xml | 8 +++++--- tests/phpunit-autotest.xml | 8 +++++--- 16 files changed, 25 insertions(+), 6 deletions(-) diff --git a/.github/workflows/files-external-s3.yml b/.github/workflows/files-external-s3.yml index b348f92b907..bd121a69904 100644 --- a/.github/workflows/files-external-s3.yml +++ b/.github/workflows/files-external-s3.yml @@ -88,6 +88,7 @@ jobs: extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite coverage: ${{ matrix.coverage && 'xdebug' || 'none' }} ini-file: development + ini-values: disable_functions="" env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -177,6 +178,7 @@ jobs: extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite coverage: ${{ matrix.coverage && 'xdebug' || 'none' }} ini-file: development + ini-values: disable_functions="" env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/files-external-smb.yml b/.github/workflows/files-external-smb.yml index b18f96f753f..7c0356c6204 100644 --- a/.github/workflows/files-external-smb.yml +++ b/.github/workflows/files-external-smb.yml @@ -89,6 +89,7 @@ jobs: extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, smbclient, sqlite, pdo_sqlite coverage: ${{ matrix.coverage && 'xdebug' || 'none' }} ini-file: development + ini-values: disable_functions="" env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/files-external-webdav.yml b/.github/workflows/files-external-webdav.yml index e77a9324be4..7927c306d75 100644 --- a/.github/workflows/files-external-webdav.yml +++ b/.github/workflows/files-external-webdav.yml @@ -84,6 +84,7 @@ jobs: extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite coverage: ${{ matrix.coverage && 'xdebug' || 'none' }} ini-file: development + ini-values: disable_functions="" env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/files-external.yml b/.github/workflows/files-external.yml index 3434ecc5c17..6b20d5f3275 100644 --- a/.github/workflows/files-external.yml +++ b/.github/workflows/files-external.yml @@ -78,6 +78,7 @@ jobs: extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite coverage: ${{ matrix.coverage && 'xdebug' || 'none' }} ini-file: development + ini-values: disable_functions="" env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/object-storage-azure.yml b/.github/workflows/object-storage-azure.yml index f771ed1ce6e..1cdfca45c38 100644 --- a/.github/workflows/object-storage-azure.yml +++ b/.github/workflows/object-storage-azure.yml @@ -93,6 +93,7 @@ jobs: extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite coverage: ${{ matrix.coverage && 'xdebug' || 'none' }} ini-file: development + ini-values: disable_functions="" env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/object-storage-s3.yml b/.github/workflows/object-storage-s3.yml index aefdc47762e..9fc71152058 100644 --- a/.github/workflows/object-storage-s3.yml +++ b/.github/workflows/object-storage-s3.yml @@ -94,6 +94,7 @@ jobs: extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite coverage: ${{ matrix.coverage && 'xdebug' || 'none' }} ini-file: development + ini-values: disable_functions="" env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/object-storage-swift.yml b/.github/workflows/object-storage-swift.yml index c7c5f065449..aed356a8831 100644 --- a/.github/workflows/object-storage-swift.yml +++ b/.github/workflows/object-storage-swift.yml @@ -91,6 +91,7 @@ jobs: extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite coverage: ${{ matrix.coverage && 'xdebug' || 'none' }} ini-file: development + ini-values: disable_functions="" env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/phpunit-mariadb.yml b/.github/workflows/phpunit-mariadb.yml index ad00336cdff..a1c6d3b1a80 100644 --- a/.github/workflows/phpunit-mariadb.yml +++ b/.github/workflows/phpunit-mariadb.yml @@ -106,6 +106,7 @@ jobs: extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, mysql, pdo_mysql coverage: ${{ matrix.coverage && 'xdebug' || 'none' }} ini-file: development + ini-values: disable_functions="" env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/phpunit-memcached.yml b/.github/workflows/phpunit-memcached.yml index f0f1090e355..29763ed8ed9 100644 --- a/.github/workflows/phpunit-memcached.yml +++ b/.github/workflows/phpunit-memcached.yml @@ -86,6 +86,7 @@ jobs: extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, memcached, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite coverage: ${{ matrix.coverage && 'xdebug' || 'none' }} ini-file: development + ini-values: disable_functions="" env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/phpunit-mysql-sharding.yml b/.github/workflows/phpunit-mysql-sharding.yml index 9b3aa86bfe5..261e8c13aff 100644 --- a/.github/workflows/phpunit-mysql-sharding.yml +++ b/.github/workflows/phpunit-mysql-sharding.yml @@ -135,6 +135,7 @@ jobs: extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, mysql, pdo_mysql coverage: ${{ matrix.coverage && 'xdebug' || 'none' }} ini-file: development + ini-values: disable_functions="" env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/phpunit-mysql.yml b/.github/workflows/phpunit-mysql.yml index 47be8c187be..2e07ac7bfd3 100644 --- a/.github/workflows/phpunit-mysql.yml +++ b/.github/workflows/phpunit-mysql.yml @@ -106,6 +106,7 @@ jobs: extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, mysql, pdo_mysql coverage: ${{ matrix.coverage && 'xdebug' || 'none' }} ini-file: development + ini-values: disable_functions="" env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/phpunit-oci.yml b/.github/workflows/phpunit-oci.yml index 0016bd3edb5..c3e56eb6915 100644 --- a/.github/workflows/phpunit-oci.yml +++ b/.github/workflows/phpunit-oci.yml @@ -113,6 +113,7 @@ jobs: extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, oci8 coverage: ${{ matrix.coverage && 'xdebug' || 'none' }} ini-file: development + ini-values: disable_functions="" env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/phpunit-pgsql.yml b/.github/workflows/phpunit-pgsql.yml index d5d3fe2319d..adb89c80c50 100644 --- a/.github/workflows/phpunit-pgsql.yml +++ b/.github/workflows/phpunit-pgsql.yml @@ -106,6 +106,7 @@ jobs: extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, pgsql, pdo_pgsql coverage: ${{ matrix.coverage && 'xdebug' || 'none' }} ini-file: development + ini-values: disable_functions="" env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/phpunit-sqlite.yml b/.github/workflows/phpunit-sqlite.yml index 3dbfec1ccbb..30e4f7bd805 100644 --- a/.github/workflows/phpunit-sqlite.yml +++ b/.github/workflows/phpunit-sqlite.yml @@ -89,6 +89,7 @@ jobs: extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, imagick, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite coverage: ${{ matrix.coverage && 'xdebug' || 'none' }} ini-file: development + ini-values: disable_functions="" env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/tests/phpunit-autotest-external.xml b/tests/phpunit-autotest-external.xml index d61d6839c2e..c1d73af6352 100644 --- a/tests/phpunit-autotest-external.xml +++ b/tests/phpunit-autotest-external.xml @@ -6,9 +6,11 @@ --> diff --git a/tests/phpunit-autotest.xml b/tests/phpunit-autotest.xml index dde07915e79..11dd78dc809 100644 --- a/tests/phpunit-autotest.xml +++ b/tests/phpunit-autotest.xml @@ -6,9 +6,11 @@ -->