From 0a7c3e1732b0647445d5b49085ee604984c08969 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20L=C3=BCck?= Date: Tue, 10 Nov 2026 13:26:35 +0100 Subject: [PATCH] Run tests on PHP 8.6 and update test environment --- .github/workflows/ci.yml | 18 +++++++++++------- tests/StreamSelectLoopTest.php | 10 ++++------ 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7bde850f..b909775c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -7,10 +7,11 @@ on: jobs: PHPUnit: name: PHPUnit (PHP ${{ matrix.php }}) - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 strategy: matrix: php: + - 8.6 - 8.5 - 8.4 - 8.3 @@ -22,16 +23,17 @@ jobs: - 7.2 - 7.1 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php }} coverage: ${{ matrix.php < 8.0 && 'xdebug' || 'pcov' }} ini-file: development ini-values: disable_functions='' # do not disable PCNTL functions on PHP < 8.1 - extensions: sockets, pcntl, event, ${{ matrix.php < 8.0 && 'ev-1.1.5' || 'ev' }} + extensions: sockets, pcntl, event, ${{ matrix.php < 8.0 && 'ev-1.1.5' || 'ev-rosmanov/pecl-ev@1.2.4' }} env: fail-fast: true # fail step if any extension can not be installed + EV_PATH: . # needed to build ext-ev from git on Ubuntu 26.04, see https://github.com/shivammathur/setup-php/issues/1146 - run: composer install - run: vendor/bin/phpunit --coverage-text if: ${{ matrix.php >= 7.3 }} @@ -40,11 +42,12 @@ jobs: PHPUnit-Unstable: name: PHPUnit (Unstable PHP ${{ matrix.php }}) - runs-on: ubuntu-24.04 + runs-on: ${{ matrix.php >= 8.0 && 'ubuntu-26.04' || 'ubuntu-24.04' }} # legacy extensions do not build on 26.04 continue-on-error: true strategy: matrix: php: + - 8.6 - 8.5 - 8.4 - 8.3 @@ -56,7 +59,7 @@ jobs: - 7.2 - 7.1 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php }} @@ -66,7 +69,7 @@ jobs: - name: Install ext-uv run: | sudo apt-get update -q && sudo apt-get install libuv1-dev - echo "yes" | sudo pecl install ${{ matrix.php >= 8.0 && 'uv-0.3.0' || 'uv-0.2.4' }} + echo "yes" | sudo pecl install ${{ matrix.php >= 8.0 && 'uv-0.3.1' || 'uv-0.2.4' }} php -m | grep -q uv || echo "extension=uv.so" >> "$(php -r 'echo php_ini_loaded_file();')" - run: composer install - run: vendor/bin/phpunit --coverage-text @@ -81,6 +84,7 @@ jobs: strategy: matrix: php: + - 8.6 - 8.5 - 8.4 - 8.3 @@ -92,7 +96,7 @@ jobs: - 7.2 - 7.1 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php }} diff --git a/tests/StreamSelectLoopTest.php b/tests/StreamSelectLoopTest.php index b2672d4e..599274d1 100644 --- a/tests/StreamSelectLoopTest.php +++ b/tests/StreamSelectLoopTest.php @@ -40,10 +40,9 @@ public function testStreamSelectTimeoutEmulation() $this->assertGreaterThan(0.04, $interval); } - public function testStreamSelectReportsWarningForStreamWithFilter() + public function testStreamSelectReportsWarningForMemoryStream() { - $stream = tmpfile(); - stream_filter_append($stream, 'string.rot13'); + $stream = fopen('php://memory', 'r+'); $this->loop->addReadStream($stream, $this->expectCallableNever()); @@ -73,10 +72,9 @@ public function testStreamSelectReportsWarningForStreamWithFilter() $this->assertEquals($previous, $now); } - public function testStreamSelectThrowsWhenCustomErrorHandlerThrowsForStreamWithFilter() + public function testStreamSelectThrowsWhenCustomErrorHandlerThrowsForMemoryStream() { - $stream = tmpfile(); - stream_filter_append($stream, 'string.rot13'); + $stream = fopen('php://memory', 'r+'); $this->loop->addReadStream($stream, $this->expectCallableNever());