diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 5d556db324e..30b988edb4f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -4,7 +4,7 @@ on: [push, pull_request] env: DEFAULT_COMPOSER_FLAGS: "--prefer-dist --no-interaction --no-progress --optimize-autoloader --ansi" - PHPUNIT_EXCLUDE_GROUP: mssql,oci,wincache,xcache,zenddata,cubrid + PHPUNIT_EXCLUDE_GROUP: db,wincache,xcache,zenddata XDEBUG_MODE: coverage, develop concurrency: @@ -14,89 +14,94 @@ concurrency: jobs: phpunit: name: PHP ${{ matrix.php }} on ${{ matrix.os }} + runs-on: ${{ matrix.os }} - services: - mysql: - image: mysql:5.7 - env: - MYSQL_ROOT_PASSWORD: root - MYSQL_DATABASE: yiitest - ports: - - 3306:3306 - options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 - postgres: - image: postgres:9.6 - env: - POSTGRES_USER: postgres - POSTGRES_PASSWORD: postgres - POSTGRES_DB: yiitest - ports: - - 5432:5432 - options: --name=postgres --health-cmd="pg_isready" --health-interval=10s --health-timeout=5s --health-retries=3 + strategy: fail-fast: false matrix: - os: [ubuntu-latest] - php: [5.4, 5.5, 5.6, 7.0, 7.1, 7.2, 7.3, 7.4, 8.0, 8.1, 8.2] + include: + - php: 5.4 + coverage: none + extensions: apc, curl, dom, imagick, intl, mbstring, mcrypt, memcached + os: ubuntu-latest + - php: 5.5 + coverage: none + extensions: apc, curl, dom, imagick, intl, mbstring, mcrypt, memcached + os: ubuntu-latest + - php: 5.6 + coverage: none + extensions: apc, curl, dom, imagick, intl, mbstring, mcrypt, memcached + os: ubuntu-latest + - php: 7.0 + coverage: none + extensions: apc, curl, dom, imagick, intl, mbstring, mcrypt, memcached + os: ubuntu-latest + - php: 7.1 + coverage: none + extensions: apc, curl, dom, imagick, intl, mbstring, mcrypt, memcached + os: ubuntu-latest + - php: 7.2 + coverage: none + extensions: apc, curl, dom, imagick, intl, mbstring, mcrypt, memcached + os: ubuntu-latest + - php: 7.3 + coverage: none + extensions: apc, curl, dom, imagick, intl, mbstring, mcrypt, memcached + os: ubuntu-latest + - php: 7.4 + coverage: xdebug + extensions: apc, curl, dom, imagick, intl, mbstring, mcrypt, memcached + os: ubuntu-latest + - php: 8.0 + coverage: none + extensions: apcu, curl, dom, imagick, intl, mbstring, mcrypt, memcached + os: ubuntu-latest + - php: 8.1 + coverage: none + extensions: apcu, curl, dom, imagick, intl, mbstring, mcrypt, memcached + os: ubuntu-latest + - php: 8.2 + extensions: apcu, curl, dom, imagick, intl, mbstring, mcrypt, memcached + coverage: none + os: ubuntu-latest steps: - - name: Generate french locale + - name: Generate french locale. run: sudo locale-gen fr_FR.UTF-8 - - name: Checkout + + - name: Checkout. uses: actions/checkout@v3 - - name: Install PHP + + - name: Install PHP. uses: shivammathur/setup-php@v2 with: + coverage: ${{ matrix.coverage }} + extensions: ${{ matrix.extensions }} + ini-values: apc.enabled=1,apc.shm_size=32M,apc.enable_cli=1, date.timezone='UTC', session.save_path="${{ runner.temp }}" php-version: ${{ matrix.php }} tools: pecl - extensions: apc, curl, dom, imagick, intl, mbstring, mcrypt, memcached, mysql, pdo, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, sqlite - ini-values: date.timezone='UTC', session.save_path="${{ runner.temp }}" - - name: Install Memcached + + - name: Install Memcached. uses: niden/actions-memcached@v7 - - name: Get composer cache directory - id: composer-cache - run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT - - name: Cache composer dependencies - uses: actions/cache@v3 - with: - path: ${{ steps.composer-cache.outputs.dir }} - key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} - restore-keys: ${{ runner.os }}-composer- - - name: Install dependencies + + - name: Install dependencies. run: composer update $DEFAULT_COMPOSER_FLAGS - - name: PHP Unit tests + + - name: Run tests with PHPUnit. + if: matrix.php < '7.4' || matrix.php >= '8.1' run: vendor/bin/phpunit --verbose --exclude-group $PHPUNIT_EXCLUDE_GROUP --colors=always - npm: - name: NPM 6 on ubuntu-latest - runs-on: ubuntu-latest + - name: Run tests with PHPUnit. + if: matrix.php == '8.0' + run: vendor/bin/phpunit --verbose --exclude-group $PHPUNIT_EXCLUDE_GROUP --colors=always - steps: - - name: Checkout - uses: actions/checkout@v3 - - name: Install PHP - uses: shivammathur/setup-php@v2 - with: - php-version: 7.2 - ini-values: session.save_path=${{ runner.temp }} - - name: Get composer cache directory - id: composer-cache - run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT - - name: Cache composer dependencies - uses: actions/cache@v3 - with: - path: ${{ steps.composer-cache.outputs.dir }} - key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} - restore-keys: ${{ runner.os }}-composer- - - name: Install dependencies - run: composer update $DEFAULT_COMPOSER_FLAGS - - name: Install node.js - uses: actions/setup-node@v1 + - name: Run tests with PHPUnit and generate coverage. + if: matrix.php == '7.4' + run: vendor/bin/phpunit --verbose --exclude-group $PHPUNIT_EXCLUDE_GROUP --coverage-clover=coverage.xml --colors=always + + - name: Upload coverage to Codecov. + if: matrix.php == '7.4' + uses: codecov/codecov-action@v3 with: - node-version: 6 - - name: Tests - run: | - npm install - npm test -# env: -# CI: true + file: ./coverage.xml diff --git a/.github/workflows/ci-mssql.yml b/.github/workflows/ci-mssql.yml index c206b77ea85..94255d93ebe 100644 --- a/.github/workflows/ci-mssql.yml +++ b/.github/workflows/ci-mssql.yml @@ -3,6 +3,7 @@ on: - push name: ci-mssql + concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true @@ -12,37 +13,22 @@ jobs: name: PHP ${{ matrix.php }}-mssql-${{ matrix.mssql }} env: - key: cache + EXTENSIONS: pdo, pdo_sqlsrv + XDEBUG_MODE: coverage, develop runs-on: ubuntu-latest strategy: matrix: include: - - php: 7.0 - extensions: pdo, pdo_sqlsrv-5.8.1 - mssql: server:2017-latest - - php: 7.1 - extensions: pdo, pdo_sqlsrv-5.8.1 - mssql: server:2017-latest - - php: 7.2 - extensions: pdo, pdo_sqlsrv-5.8.1 - mssql: server:2017-latest - - php: 7.3 - extensions: pdo, pdo_sqlsrv-5.8.1 - mssql: server:2017-latest - php: 7.4 - extensions: pdo, pdo_sqlsrv - mssql: server:2017-latest - - php: 7.4 - extensions: pdo, pdo_sqlsrv - mssql: server:2019-latest - - php: 8.0 - extensions: pdo, pdo_sqlsrv mssql: server:2017-latest - php: 8.0 - extensions: pdo, pdo_sqlsrv mssql: server:2019-latest + - php: 8.1 + mssql: server:2019-latest + - php: 8.2 + mssql: server:2022-latest services: mssql: @@ -65,42 +51,28 @@ jobs: - name: Install PHP with extensions uses: shivammathur/setup-php@v2 with: - php-version: ${{ matrix.php }} - extensions: ${{ matrix.extensions }} + coverage: xdebug + extensions: ${{ env.EXTENSIONS }} ini-values: date.timezone='UTC' + php-version: ${{ matrix.php }} tools: composer:v2, pecl - - name: Determine composer cache directory on Linux - run: echo "COMPOSER_CACHE_DIR=$(composer config cache-dir)" >> $GITHUB_ENV - - - name: Cache dependencies installed with composer - uses: actions/cache@v3 - with: - path: ${{ env.COMPOSER_CACHE_DIR }} - key: php${{ matrix.php }}-composer-${{ hashFiles('**/composer.json') }} - restore-keys: | - php${{ matrix.php }}-composer- - - name: Update composer run: composer self-update - name: Install dependencies with composer run: composer update --prefer-dist --no-interaction --no-progress --optimize-autoloader --ansi - - name: Install dependencies with composer php 8.0 - if: matrix.php == '8.0' - run: composer update --ignore-platform-reqs --prefer-dist --no-interaction --no-progress --optimize-autoloader --ansi + - name: Run MSSQL tests with PHPUnit and generate coverage. + if: matrix.php == '7.4' + run: vendor/bin/phpunit --group mssql --coverage-clover=coverage.xml --colors=always - - name: PHP Unit tests for PHP 7.1 - run: vendor/bin/phpunit --coverage-clover=coverage.clover --group mssql --colors=always - if: matrix.php == '7.1' - - - name: Run tests with phpunit without coverage + - name: Run MSSQL tests with PHPUnit. + if: matrix.php > '7.4' run: vendor/bin/phpunit --group mssql --colors=always - - name: Code coverage - run: | - wget https://scrutinizer-ci.com/ocular.phar - php ocular.phar code-coverage:upload --format=php-clover coverage.clover - if: matrix.php == '7.1' - continue-on-error: true # if is fork + - name: Upload coverage to Codecov. + if: matrix.php == '7.4' + uses: codecov/codecov-action@v3 + with: + file: ./coverage.xml diff --git a/.github/workflows/ci-mysql.yml b/.github/workflows/ci-mysql.yml index c45340e394f..a948a9e4cae 100644 --- a/.github/workflows/ci-mysql.yml +++ b/.github/workflows/ci-mysql.yml @@ -3,16 +3,17 @@ on: - push name: ci-mysql + concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: tests: - name: PHP ${{ matrix.php-version }}-mysql-${{ matrix.mysql-version }} + name: PHP ${{ matrix.php }}-mysql-${{ matrix.mysql }} env: extensions: curl, intl, pdo, pdo_mysql - key: cache-v1 + XDEBUG_MODE: coverage, develop runs-on: ${{ matrix.os }} @@ -21,15 +22,19 @@ jobs: os: - ubuntu-latest - php-version: + php: - 7.4 + - 8.0 + - 8.1 + - 8.2 - mysql-version: + mysql: + - 5.7 - latest services: mysql: - image: mysql:${{ matrix.mysql-version }} + image: mysql:${{ matrix.mysql }} env: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: yiitest @@ -38,46 +43,31 @@ jobs: options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 steps: - - name: Checkout + - name: Checkout. uses: actions/checkout@v3 - - name: Setup cache environment - id: cache-env - uses: shivammathur/cache-extensions@v1 - with: - php-version: ${{ matrix.php-version }} - extensions: ${{ env.extensions }} - key: ${{ env.key }} - - - name: Cache extensions - uses: actions/cache@v3 - with: - path: ${{ steps.cache-env.outputs.dir }} - key: ${{ steps.cache-env.outputs.key }} - restore-keys: ${{ steps.cache-env.outputs.key }} - - - name: Install PHP with extensions + - name: Install PHP with extensions. uses: shivammathur/setup-php@v2 with: - php-version: ${{ matrix.php-version }} - extensions: ${{ env.extensions }} + coverage: xdebug + extensions: ${{ env.EXTENSIONS }} ini-values: date.timezone='UTC' - coverage: pcov - - - name: Determine composer cache directory - if: matrix.os == 'ubuntu-latest' - run: echo "COMPOSER_CACHE_DIR=$(composer config cache-dir)" >> $GITHUB_ENV + php-version: ${{ matrix.php }} + tools: composer:v2, pecl - - name: Cache dependencies installed with composer - uses: actions/cache@v1 - with: - path: ${{ env.COMPOSER_CACHE_DIR }} - key: php${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('**/composer.json') }} - restore-keys: | - php${{ matrix.php-version }}-composer-${{ matrix.dependencies }}- - - - name: Install dependencies with composer + - name: Install dependencies with composer. run: composer update --prefer-dist --no-interaction --no-progress --optimize-autoloader --ansi - - name: Run mysql tests with phpunit + - name: Run MySQL tests with PHPUnit and generate coverage. + if: matrix.php == '7.4' + run: vendor/bin/phpunit --group mysql --coverage-clover=coverage.xml --colors=always + + - name: Run MySQL tests with PHPUnit. + if: matrix.php > '7.4' run: vendor/bin/phpunit --group mysql --colors=always + + - name: Upload coverage to Codecov. + if: matrix.php == '7.4' + uses: codecov/codecov-action@v3 + with: + file: ./coverage.xml diff --git a/.github/workflows/ci-node.yml b/.github/workflows/ci-node.yml new file mode 100644 index 00000000000..0d937733554 --- /dev/null +++ b/.github/workflows/ci-node.yml @@ -0,0 +1,36 @@ +name: build-node + +on: [push, pull_request] + +env: + DEFAULT_COMPOSER_FLAGS: "--prefer-dist --no-interaction --no-progress --optimize-autoloader --ansi" + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + test: + name: NPM 6 on ubuntu-latest + + runs-on: ubuntu-latest + + steps: + - name: Checkout. + uses: actions/checkout@v3 + + - name: Install dependencies. + run: composer update $DEFAULT_COMPOSER_FLAGS + + - name: Install JQuery `3.6.*@stable` for tests. + run: composer require "bower-asset/jquery:3.6.*@stable" + + - name: Install node.js. + uses: actions/setup-node@v1 + with: + node-version: 6 + + - name: Tests. + run: | + npm install + npm test diff --git a/.github/workflows/ci-oracle.yml b/.github/workflows/ci-oracle.yml index 424e431c416..21520a1045b 100644 --- a/.github/workflows/ci-oracle.yml +++ b/.github/workflows/ci-oracle.yml @@ -3,6 +3,7 @@ on: - push name: ci-oracle + concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true @@ -13,7 +14,7 @@ jobs: env: extensions: oci8, pdo, pdo_oci - key: cache-v1 + XDEBUG_MODE: coverage, develop runs-on: ${{ matrix.os }} @@ -33,52 +34,28 @@ jobs: options: --name=oci steps: - - name: Checkout + - name: Checkout. uses: actions/checkout@v3 - - name: Setup cache environment - id: cache-env - uses: shivammathur/cache-extensions@v1 - with: - php-version: ${{ matrix.php }} - extensions: ${{ env.extensions }} - key: ${{ env.key }} - - - name: Cache extensions - uses: actions/cache@v1 - with: - path: ${{ steps.cache-env.outputs.dir }} - key: ${{ steps.cache-env.outputs.key }} - restore-keys: ${{ steps.cache-env.outputs.key }} - - - name: Install PHP with extensions + - name: Install PHP with extensions. uses: shivammathur/setup-php@v2 with: - php-version: ${{ matrix.php }} - extensions: ${{ env.extensions }} + coverage: xdebug + extensions: ${{ env.EXTENSIONS }} ini-values: date.timezone='UTC' - coverage: pcov + php-version: ${{ matrix.php }} tools: composer:v2, pecl - - name: Determine composer cache directory - run: echo "COMPOSER_CACHE_DIR=$(composer config cache-dir)" >> $GITHUB_ENV + - name: Update composer. + run: composer self-update - - name: Cache dependencies installed with composer - uses: actions/cache@v3 - with: - path: ${{ env.COMPOSER_CACHE_DIR }} - key: php${{ matrix.php }}-composer-${{ hashFiles('**/composer.json') }} - restore-keys: | - php${{ matrix.php }}-composer- - - - name: Install dependencies with composer + - name: Install dependencies with composer. run: composer update --prefer-dist --no-interaction --no-progress --optimize-autoloader --ansi - - name: PHP Unit tests - run: vendor/bin/phpunit --coverage-clover=coverage.clover --group oci --colors=always + - name: Run Oracle tests with PHPUnit and generate coverage. + run: vendor/bin/phpunit --group oci --coverage-clover=coverage.xml --colors=always - - name: Code coverage - run: | - wget https://scrutinizer-ci.com/ocular.phar - php ocular.phar code-coverage:upload --format=php-clover coverage.clover - continue-on-error: true # if is fork + - name: Upload coverage to Codecov. + uses: codecov/codecov-action@v3 + with: + file: ./coverage.xml diff --git a/.github/workflows/ci-pgsql.yml b/.github/workflows/ci-pgsql.yml index 74bc20d48b3..edaf4a5df5d 100644 --- a/.github/workflows/ci-pgsql.yml +++ b/.github/workflows/ci-pgsql.yml @@ -3,16 +3,17 @@ on: - push name: ci-pgsql + concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: tests: - name: PHP ${{ matrix.php-version }}-pgsql-${{ matrix.pgsql-version }} + name: PHP ${{ matrix.php }}-pgsql-${{ matrix.pgsql }} env: extensions: curl, intl, pdo, pdo_pgsql - key: cache-v1 + XDEBUG_MODE: coverage, develop runs-on: ${{ matrix.os }} @@ -21,19 +22,22 @@ jobs: os: - ubuntu-latest - php-version: + php: - 7.4 + - 8.0 + - 8.1 - pgsql-version: + pgsql: - 10 - 11 - 12 - 13 - 14 + - 15 services: postgres: - image: postgres:${{ matrix.pgsql-version }} + image: postgres:${{ matrix.pgsql }} env: POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres @@ -43,46 +47,34 @@ jobs: options: --name=postgres --health-cmd="pg_isready" --health-interval=10s --health-timeout=5s --health-retries=3 steps: - - name: Checkout + - name: Checkout. uses: actions/checkout@v3 - - name: Setup cache environment - id: cache-env - uses: shivammathur/cache-extensions@v1 - with: - php-version: ${{ matrix.php-version }} - extensions: ${{ env.extensions }} - key: ${{ env.key }} - - - name: Cache extensions - uses: actions/cache@v1 - with: - path: ${{ steps.cache-env.outputs.dir }} - key: ${{ steps.cache-env.outputs.key }} - restore-keys: ${{ steps.cache-env.outputs.key }} - - name: Install PHP with extensions uses: shivammathur/setup-php@v2 with: - php-version: ${{ matrix.php-version }} - extensions: ${{ env.extensions }} + coverage: xdebug + extensions: ${{ env.EXTENSIONS }} ini-values: date.timezone='UTC' - coverage: pcov + php-version: ${{ matrix.php }} + tools: composer:v2, pecl - - name: Determine composer cache directory - if: matrix.os == 'ubuntu-latest' - run: echo "COMPOSER_CACHE_DIR=$(composer config cache-dir)" >> $GITHUB_ENV + - name: Update composer. + run: composer self-update - - name: Cache dependencies installed with composer - uses: actions/cache@v3 - with: - path: ${{ env.COMPOSER_CACHE_DIR }} - key: php${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('**/composer.json') }} - restore-keys: | - php${{ matrix.php-version }}-composer-${{ matrix.dependencies }}- - - - name: Install dependencies with composer + - name: Install dependencies with composer. run: composer update --prefer-dist --no-interaction --no-progress --optimize-autoloader --ansi - - name: Run pgsql tests with phpunit + - name: Run Pgsql tests with PHPUnit and generate coverage. + if: matrix.php == '7.4' + run: vendor/bin/phpunit --group pgsql --coverage-clover=coverage.xml --colors=always + + - name: Run Pgsql tests with PHPUnit. + if: matrix.php > '7.4' run: vendor/bin/phpunit --group pgsql --colors=always + + - name: Upload coverage to Codecov. + if: matrix.php == '7.4' + uses: codecov/codecov-action@v3 + with: + file: ./coverage.xml diff --git a/.github/workflows/ci-sqlite.yml b/.github/workflows/ci-sqlite.yml new file mode 100644 index 00000000000..b82d187ef9a --- /dev/null +++ b/.github/workflows/ci-sqlite.yml @@ -0,0 +1,63 @@ +on: + - pull_request + - push + +name: ci-sqlite + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + tests: + name: PHP ${{ matrix.php }}-sqlite + + env: + EXTENSIONS: pdo, pdo_sqlite, sqlite3 + XDEBUG_MODE: coverage, develop + + runs-on: ubuntu-latest + + strategy: + matrix: + os: + - ubuntu-latest + + php: + - 7.4 + - 8.0 + - 8.1 + - 8.2 + + steps: + - name: Checkout. + uses: actions/checkout@v3 + + - name: Install PHP with extensions. + uses: shivammathur/setup-php@v2 + with: + coverage: xdebug + extensions: ${{ env.EXTENSIONS }} + ini-values: date.timezone='UTC' + php-version: ${{ matrix.php }} + tools: composer:v2, pecl + + - name: Update composer. + run: composer self-update + + - name: Install dependencies with composer. + run: composer update --prefer-dist --no-interaction --no-progress --optimize-autoloader --ansi + + - name: Run SQLite tests with PHPUnit and generate coverage. + if: matrix.php == '7.4' + run: vendor/bin/phpunit --group sqlite --coverage-clover=coverage.xml --colors=always + + - name: Run SQLite tests with PHPUnit. + if: matrix.php > '7.4' + run: vendor/bin/phpunit --group sqlite --colors=always + + - name: Upload coverage to Codecov. + if: matrix.php == '7.4' + uses: codecov/codecov-action@v3 + with: + file: ./coverage.xml diff --git a/phpunit.xml.dist b/phpunit.xml.dist index 34e150ef8ed..2b9f7c6df55 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -21,7 +21,6 @@ framework/web/ResponseFormatterInterface.php framework/.phpstorm.meta.php framework/base - framework/db/mssql framework/bootstrap diff --git a/tests/framework/caching/ApcCacheTest.php b/tests/framework/caching/ApcCacheTest.php index 809286bbd89..7f3311b7702 100644 --- a/tests/framework/caching/ApcCacheTest.php +++ b/tests/framework/caching/ApcCacheTest.php @@ -23,7 +23,7 @@ class ApcCacheTest extends CacheTestCase */ protected function getCacheInstance() { - if (!extension_loaded('apc')) { + if (!extension_loaded('apc') && !extension_loaded('apcu')) { $this->markTestSkipped('APC not installed. Skipping.'); } elseif ('cli' === PHP_SAPI && !ini_get('apc.enable_cli')) { $this->markTestSkipped('APC cli is not enabled. Skipping.'); @@ -33,7 +33,9 @@ protected function getCacheInstance() $this->markTestSkipped('APC is installed but not enabled. Skipping.'); } - if ($this->_cacheInstance === null) { + if ($this->_cacheInstance === null && PHP_VERSION_ID >= 70400) { + $this->_cacheInstance = new ApcCache(['useApcu' => true]); + } elseif ($this->_cacheInstance === null) { $this->_cacheInstance = new ApcCache(); } diff --git a/tests/framework/db/mysql/connection/DeadLockTest.php b/tests/framework/db/mysql/connection/DeadLockTest.php index 40f6d573f87..6e3da047eea 100644 --- a/tests/framework/db/mysql/connection/DeadLockTest.php +++ b/tests/framework/db/mysql/connection/DeadLockTest.php @@ -119,7 +119,12 @@ public function testDeadlockException() . ($logContent ? ". Shared children log:\n$logContent" : '') ); } - $this->assertEquals(1, $deadlockHitCount, "exactly one child must hit deadlock; shared children log:\n" . $logContent); + + if (version_compare($this->getConnection()->getSchema()->getServerVersion(), '8.0', '<')) { + $this->assertEquals(1, $deadlockHitCount, "exactly one child must hit deadlock; shared children log:\n" . $logContent); + } else { + $this->assertEquals(0, $deadlockHitCount, "exactly zero children must hit deadlock; shared children log:\n" . $logContent); + } } /**