diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fa78b8cd..3a593694 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 @@ -27,16 +28,17 @@ jobs: - 5.4 - 5.3 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php }} coverage: xdebug ini-file: development ini-values: disable_functions='' # do not disable PCNTL functions on PHP < 8.1 - extensions: sockets, pcntl ${{ matrix.php >= 5.6 && ', event' || '' }} ${{ matrix.php >= 5.4 && (matrix.php < 8.0 && ', ev-1.1.5' || ', ev') || '' }} + extensions: sockets, pcntl ${{ matrix.php >= 5.6 && ', event' || '' }} ${{ matrix.php >= 5.4 && (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 }} @@ -45,11 +47,12 @@ jobs: PHPUnit-Unstable: name: PHPUnit (Unstable PHP ${{ matrix.php }}) - runs-on: ubuntu-22.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 @@ -66,7 +69,7 @@ jobs: - 5.4 - 5.3 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php }} @@ -76,7 +79,7 @@ jobs: - name: Install ext-uv on PHP 7+ 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();')" if: ${{ matrix.php >= 7.0 }} - name: Install legacy ext-libevent on PHP < 7.0 @@ -89,7 +92,7 @@ jobs: make sudo make install popd - echo "extension=libevent.so" | sudo tee -a "$(php -r 'echo php_ini_loaded_file();')" + echo "extension=libevent.so" | sudo tee "$(php -r 'echo PHP_CONFIG_FILE_SCAN_DIR;')/99-libevent.ini" # load after ext-sockets if: ${{ matrix.php < 7.0 }} - name: Install legacy ext-libev on PHP < 7.0 run: | @@ -100,7 +103,7 @@ jobs: make sudo make install popd - echo "extension=libev.so" | sudo tee -a "$(php -r 'echo php_ini_loaded_file();')" + echo "extension=libev.so" | sudo tee "$(php -r 'echo PHP_CONFIG_FILE_SCAN_DIR;')/99-libev.ini" # load after ext-sockets if: ${{ matrix.php < 7.0 }} - run: composer install - run: vendor/bin/phpunit --coverage-text @@ -115,6 +118,7 @@ jobs: strategy: matrix: php: + - 8.6 - 8.5 - 8.4 - 8.3 @@ -126,7 +130,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 }} @@ -141,10 +145,10 @@ jobs: PHPUnit-hhvm: name: PHPUnit (HHVM) - runs-on: ubuntu-22.04 + runs-on: ubuntu-26.04 continue-on-error: true steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - run: cp "$(which composer)" composer.phar && ./composer.phar self-update --2.2 # downgrade Composer for HHVM - name: Run hhvm composer.phar install uses: docker://hhvm/hhvm:3.30-lts-latest diff --git a/tests/StreamSelectLoopTest.php b/tests/StreamSelectLoopTest.php index 7e2435a8..684dbabf 100644 --- a/tests/StreamSelectLoopTest.php +++ b/tests/StreamSelectLoopTest.php @@ -40,14 +40,13 @@ public function testStreamSelectTimeoutEmulation() $this->assertGreaterThan(0.04, $interval); } - public function testStreamSelectReportsWarningForStreamWithFilter() + public function testStreamSelectReportsWarningForMemoryStream() { if (defined('HHVM_VERSION')) { $this->markTestSkipped('Not supported on legacy HHVM'); } - $stream = tmpfile(); - stream_filter_append($stream, 'string.rot13'); + $stream = fopen('php://memory', 'r+'); $this->loop->addReadStream($stream, $this->expectCallableNever()); @@ -78,14 +77,13 @@ public function testStreamSelectReportsWarningForStreamWithFilter() $this->assertEquals($previous, $now); } - public function testStreamSelectThrowsWhenCustomErrorHandlerThrowsForStreamWithFilter() + public function testStreamSelectThrowsWhenCustomErrorHandlerThrowsForMemoryStream() { if (defined('HHVM_VERSION')) { $this->markTestSkipped('Not supported on legacy HHVM'); } - $stream = tmpfile(); - stream_filter_append($stream, 'string.rot13'); + $stream = fopen('php://memory', 'r+'); $this->loop->addReadStream($stream, $this->expectCallableNever());