summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhil Sturgeon <me@philsturgeon.com>2021-11-17 17:29:32 +0100
committerPhil Sturgeon <me@philsturgeon.com>2021-11-17 17:29:32 +0100
commit47c6b45f524f826e56aff8e77bf289bcbfa1b51d (patch)
treee2533dc0e74d62480b52550a13385168aa9f1992
parentd49ffb0cbbb19b552bf8f33cbfe9e52505eae21e (diff)
parent5ad670dea78cc0f0c0fd690220a243a905cb06bf (diff)
Merge branch 'php80-patch1' of https://github.com/sapics/CodeIgniter into ci3-php8
-rw-r--r--.github/workflows/test-phpunit.yml106
-rw-r--r--.travis.yml113
-rw-r--r--system/core/Output.php1
-rw-r--r--system/database/DB_driver.php2
-rw-r--r--system/database/drivers/pdo/pdo_driver.php8
-rw-r--r--tests/mocks/database/config/mysql.php10
-rw-r--r--tests/mocks/database/config/mysqli.php10
-rw-r--r--tests/mocks/database/config/pdo/mysql.php14
-rw-r--r--tests/mocks/database/config/pdo/pgsql.php4
-rw-r--r--tests/mocks/database/config/pgsql.php4
10 files changed, 136 insertions, 136 deletions
diff --git a/.github/workflows/test-phpunit.yml b/.github/workflows/test-phpunit.yml
new file mode 100644
index 000000000..bba336ce7
--- /dev/null
+++ b/.github/workflows/test-phpunit.yml
@@ -0,0 +1,106 @@
+name: PHPUnit
+
+on: [push, pull_request]
+
+jobs:
+ tests:
+ runs-on: ubuntu-18.04
+ if: "!contains(github.event.head_commit.message, '[ci skip]')"
+ env:
+ PHP_INI_VALUES: assert.exception=1, zend.assertions=1
+
+ strategy:
+ fail-fast: false
+ matrix:
+ php: [ '8.0', '7.4', '7.3', '7.2', '7.1', '7.0', '5.6', '5.5', '5.4' ]
+ DB: [ 'pdo/mysql', 'pdo/pgsql', 'pdo/sqlite', 'mysqli', 'pgsql', 'sqlite' ]
+ compiler: [ default ]
+ include:
+ - php: '8.0'
+ DB: 'pdo/mysql'
+ compiler: jit
+ - php: '8.0'
+ DB: 'pdo/pgsql'
+ compiler: jit
+ - php: '8.0'
+ DB: 'pdo/sqlite'
+ compiler: jit
+ - php: '8.0'
+ DB: 'mysqli'
+ compiler: jit
+ - php: '8.0'
+ DB: 'pgsql'
+ compiler: jit
+ - php: '8.0'
+ DB: 'sqlite'
+ compiler: jit
+ - php: '5.6'
+ DB: 'mysql'
+ compiler: default
+ - php: '5.5'
+ DB: 'mysql'
+ compiler: default
+ - php: '5.4'
+ DB: 'mysql'
+ compiler: default
+
+ services:
+ postgres:
+ image: postgres:12
+ env:
+ POSTGRES_USER: postgres
+ POSTGRES_PASSWORD: postgres
+ POSTGRES_DB: ci_test
+ ports:
+ - 5432:5432
+ options: --health-cmd=pg_isready --health-interval=10s --health-timeout=5s --health-retries=3
+
+ mysql:
+ image: mysql:5.7
+ env:
+ MYSQL_ALLOW_EMPTY_PASSWORD: true
+ MYSQL_USER: travis
+ MYSQL_PASSWORD: travis
+ MYSQL_DATABASE: ci_test
+ ports:
+ - 3306:3306
+ options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v2
+ - name: Override PHP ini values for JIT compiler
+ if: matrix.compiler == 'jit'
+ run: echo "PHP_INI_VALUES::assert.exception=1, zend.assertions=1, opcache.enable=1, opcache.enable_cli=1, opcache.optimization_level=-1, opcache.jit=1255, opcache.jit_buffer_size=64M" >> $GITHUB_ENV
+
+ - name: Install PHP${{ matrix.php }} - DB ${{ matrix.DB }}
+ uses: shivammathur/setup-php@v2
+ with:
+ php-version: ${{ matrix.php }}
+ tools: composer, pecl
+ extensions: imagick, sqlite3, pgsql, mysqli, pdo, pdo_mysql, pdo_pgsql, pdo_sqlite
+ ini-values: ${{ env.PHP_INI_VALUES }}
+ coverage: xdebug
+
+ - name: Setup composer for PHP8.0+
+ run: if [ '${{ matrix.php }}' = '8.0' ] || [ '${{ matrix.php }}' = '8.1' ] ; then sed -i 's/phpunit\/phpunit/sminnee\/phpunit/g' composer.json; composer config -g platform.php 7.4.11; fi
+ - name: Get composer cache directory
+ id: composer-cache
+ run: echo "::set-output name=dir::$(composer config cache-files-dir)"
+ - name: Cache composer dependencies
+ uses: actions/cache@v2
+ with:
+ path: ${{ steps.composer-cache.outputs.dir }}
+ key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
+ restore-keys: ${{ runner.os }}-composer-
+ - name: Install composer dependencies
+ run: composer install --no-progress --prefer-dist --optimize-autoloader
+
+ - name: Fix error in vfsStream
+ run: sed -i s/name{0}/name[0]/ vendor/mikey179/vfsstream/src/main/php/org/bovigo/vfs/vfsStream.php
+
+ - name: PHPUnit Test
+ run: |
+ php -d zend.enable_gc=0 -d date.timezone=UTC -d mbstring.func_overload=7 -d mbstring.internal_encoding=UTF-8 vendor/bin/phpunit --coverage-text --configuration tests/travis/${{ matrix.DB }}.phpunit.xml
+ env:
+ XDEBUG_MODE: coverage
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index d3a09573d..000000000
--- a/.travis.yml
+++ /dev/null
@@ -1,113 +0,0 @@
-language: php
-os: linux
-dist: xenial
-
-php:
- - 5.6
- - 7.0
- - 7.1
- - 7.2
- - 7.3
- - 7.4
- - 8.0
- - nightly
-
-env:
- global:
- - XDEBUG_MODE=coverage
- jobs:
- - DB=mysqli
- - DB=pgsql
- - DB=sqlite
- - DB=pdo/mysql
- - DB=pdo/pgsql
- - DB=pdo/sqlite
-
-services:
- - mysql
- - postgresql
-
-cache:
- directories:
- - $HOME/.composer/cache
-
-before_script:
- - sh -c "composer install --no-progress"
- - sh -c "if [ '$DB' = 'pgsql' ] || [ '$DB' = 'pdo/pgsql' ]; then psql -c 'DROP DATABASE IF EXISTS ci_test;' -U postgres; fi"
- - sh -c "if [ '$DB' = 'pgsql' ] || [ '$DB' = 'pdo/pgsql' ]; then psql -c 'create database ci_test;' -U postgres; fi"
- - sh -c "if [ '$DB' = 'mysql' ] || [ '$DB' = 'mysqli' ] || [ '$DB' = 'pdo/mysql' ]; then mysql -e 'create database IF NOT EXISTS ci_test;'; fi"
-
-script: test $(php -r 'echo PHP_VERSION_ID;') -lt 70300 && php -d zend.enable_gc=0 -d date.timezone=UTC -d mbstring.func_overload=7 -d mbstring.internal_encoding=UTF-8 vendor/bin/phpunit --coverage-text --configuration tests/travis/$DB.phpunit.xml || php -d zend.enable_gc=0 -d date.timezone=UTC -d mbstring.internal_encoding=UTF-8 vendor/bin/phpunit --coverage-text --configuration tests/travis/$DB.phpunit.xml
-
-jobs:
- allow_failures:
- - php: nightly
- - php: hhvm-3.30
- include:
- - php: 5.4
- dist: trusty
- env: DB=mysql
- - php: 5.4
- dist: trusty
- env: DB=mysqli
- - php: 5.4
- dist: trusty
- env: DB=pgsql
- - php: 5.4
- dist: trusty
- env: DB=sqlite
- - php: 5.4
- dist: trusty
- env: DB=pdo/mysql
- - php: 5.4
- dist: trusty
- env: DB=pdo/pgsql
- - php: 5.4
- dist: trusty
- env: DB=pdo/sqlite
- - php: 5.5
- dist: trusty
- env: DB=mysql
- - php: 5.5
- dist: trusty
- env: DB=mysqli
- - php: 5.5
- dist: trusty
- env: DB=pgsql
- - php: 5.5
- dist: trusty
- env: DB=sqlite
- - php: 5.5
- dist: trusty
- env: DB=pdo/mysql
- - php: 5.5
- dist: trusty
- env: DB=pdo/pgsql
- - php: 5.5
- dist: trusty
- env: DB=pdo/sqlite
- - php: 5.6
- dist: xenial
- env: DB=mysql
- - php: hhvm-3.30
- dist: trusty
- env: DB=mysql
- - php: hhvm-3.30
- dist: trusty
- env: DB=mysqli
- - php: hhvm-3.30
- dist: trusty
- env: DB=sqlite
- - php: hhvm-3.30
- dist: trusty
- env: DB=pdo/mysql
- - php: hhvm-3.30
- dist: trusty
- env: DB=pdo/sqlite
-
-branches:
- only:
- - develop
- - 3.0-stable
- - 3.1-stable
- - /^feature\/.+$/
diff --git a/system/core/Output.php b/system/core/Output.php
index a2397763d..bbad9f168 100644
--- a/system/core/Output.php
+++ b/system/core/Output.php
@@ -305,7 +305,6 @@ class CI_Output {
return array_shift($headers);
}, $this->headers);
- // Combine headers already sent with our batched headers
$headers = array_merge(
$header_lines,
headers_list()
diff --git a/system/database/DB_driver.php b/system/database/DB_driver.php
index cba96d9a2..a213d5cba 100644
--- a/system/database/DB_driver.php
+++ b/system/database/DB_driver.php
@@ -825,7 +825,7 @@ abstract class CI_DB_driver {
{
return $this->_trans_status;
}
-
+
// --------------------------------------------------------------------
/**
diff --git a/system/database/drivers/pdo/pdo_driver.php b/system/database/drivers/pdo/pdo_driver.php
index d0a2bf959..b2178b684 100644
--- a/system/database/drivers/pdo/pdo_driver.php
+++ b/system/database/drivers/pdo/pdo_driver.php
@@ -131,6 +131,14 @@ class CI_DB_pdo_driver extends CI_DB {
$this->options[PDO::ATTR_PERSISTENT] = TRUE;
}
+ // From PHP8.0, default PDO::ATTR_ERRMODE is changed
+ // from PDO::ERRMODE_SILENT to PDO::ERRMODE_EXCEPTION
+ // as https://wiki.php.net/rfc/pdo_default_errmode
+ if ( ! isset($this->options[PDO::ATTR_ERRMODE]))
+ {
+ $this->options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_SILENT;
+ }
+
try
{
return new PDO($this->dsn, $this->username, $this->password, $this->options);
diff --git a/tests/mocks/database/config/mysql.php b/tests/mocks/database/config/mysql.php
index a590b9f53..ca30cb9ca 100644
--- a/tests/mocks/database/config/mysql.php
+++ b/tests/mocks/database/config/mysql.php
@@ -5,9 +5,9 @@ return array(
// Typical Database configuration
'mysql' => array(
'dsn' => '',
- 'hostname' => 'localhost',
+ 'hostname' => '127.0.0.1',
'username' => 'travis',
- 'password' => '',
+ 'password' => 'travis',
'database' => 'ci_test',
'dbdriver' => 'mysql'
),
@@ -15,7 +15,7 @@ return array(
// Database configuration with failover
'mysql_failover' => array(
'dsn' => '',
- 'hostname' => 'localhost',
+ 'hostname' => '127.0.0.1',
'username' => 'not_travis',
'password' => 'wrong password',
'database' => 'not_ci_test',
@@ -23,9 +23,9 @@ return array(
'failover' => array(
array(
'dsn' => '',
- 'hostname' => 'localhost',
+ 'hostname' => '127.0.0.1',
'username' => 'travis',
- 'password' => '',
+ 'password' => 'travis',
'database' => 'ci_test',
'dbdriver' => 'mysql',
)
diff --git a/tests/mocks/database/config/mysqli.php b/tests/mocks/database/config/mysqli.php
index 5dd08abb2..fd8fec962 100644
--- a/tests/mocks/database/config/mysqli.php
+++ b/tests/mocks/database/config/mysqli.php
@@ -5,9 +5,9 @@ return array(
// Typical Database configuration
'mysqli' => array(
'dsn' => '',
- 'hostname' => 'localhost',
+ 'hostname' => '127.0.0.1',
'username' => 'travis',
- 'password' => '',
+ 'password' => 'travis',
'database' => 'ci_test',
'dbdriver' => 'mysqli'
),
@@ -15,7 +15,7 @@ return array(
// Database configuration with failover
'mysqli_failover' => array(
'dsn' => '',
- 'hostname' => 'localhost',
+ 'hostname' => '127.0.0.1',
'username' => 'not_travis',
'password' => 'wrong password',
'database' => 'not_ci_test',
@@ -23,9 +23,9 @@ return array(
'failover' => array(
array(
'dsn' => '',
- 'hostname' => 'localhost',
+ 'hostname' => '127.0.0.1',
'username' => 'travis',
- 'password' => '',
+ 'password' => 'travis',
'database' => 'ci_test',
'dbdriver' => 'mysqli',
)
diff --git a/tests/mocks/database/config/pdo/mysql.php b/tests/mocks/database/config/pdo/mysql.php
index 96608f787..89e9fb130 100644
--- a/tests/mocks/database/config/pdo/mysql.php
+++ b/tests/mocks/database/config/pdo/mysql.php
@@ -4,10 +4,10 @@ return array(
// Typical Database configuration
'pdo/mysql' => array(
- 'dsn' => 'mysql:host=localhost;dbname=ci_test',
- 'hostname' => 'localhost',
+ 'dsn' => 'mysql:host=127.0.0.1;dbname=ci_test',
+ 'hostname' => '127.0.0.1',
'username' => 'travis',
- 'password' => '',
+ 'password' => 'travis',
'database' => 'ci_test',
'dbdriver' => 'pdo',
'subdriver' => 'mysql'
@@ -16,7 +16,7 @@ return array(
// Database configuration with failover
'pdo/mysql_failover' => array(
'dsn' => '',
- 'hostname' => 'localhost',
+ 'hostname' => '127.0.0.1',
'username' => 'not_travis',
'password' => 'wrong password',
'database' => 'not_ci_test',
@@ -24,10 +24,10 @@ return array(
'subdriver' => 'mysql',
'failover' => array(
array(
- 'dsn' => 'mysql:host=localhost;dbname=ci_test',
- 'hostname' => 'localhost',
+ 'dsn' => 'mysql:host=127.0.0.1;dbname=ci_test',
+ 'hostname' => '127.0.0.1',
'username' => 'travis',
- 'password' => '',
+ 'password' => 'travis',
'database' => 'ci_test',
'dbdriver' => 'pdo',
'subdriver' => 'mysql'
diff --git a/tests/mocks/database/config/pdo/pgsql.php b/tests/mocks/database/config/pdo/pgsql.php
index e55e3ea77..846c70be9 100644
--- a/tests/mocks/database/config/pdo/pgsql.php
+++ b/tests/mocks/database/config/pdo/pgsql.php
@@ -7,7 +7,7 @@ return array(
'dsn' => 'pgsql:host=localhost;port=5432;dbname=ci_test;',
'hostname' => 'localhost',
'username' => 'postgres',
- 'password' => '',
+ 'password' => 'postgres',
'database' => 'ci_test',
'dbdriver' => 'pdo',
'subdriver' => 'pgsql'
@@ -27,7 +27,7 @@ return array(
'dsn' => 'pgsql:host=localhost;port=5432;dbname=ci_test;',
'hostname' => 'localhost',
'username' => 'postgres',
- 'password' => '',
+ 'password' => 'postgres',
'database' => 'ci_test',
'dbdriver' => 'pdo',
'subdriver' => 'pgsql'
diff --git a/tests/mocks/database/config/pgsql.php b/tests/mocks/database/config/pgsql.php
index 1444b0066..ce4583728 100644
--- a/tests/mocks/database/config/pgsql.php
+++ b/tests/mocks/database/config/pgsql.php
@@ -7,7 +7,7 @@ return array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'postgres',
- 'password' => '',
+ 'password' => 'postgres',
'database' => 'ci_test',
'dbdriver' => 'postgre'
),
@@ -25,7 +25,7 @@ return array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'postgres',
- 'password' => '',
+ 'password' => 'postgres',
'database' => 'ci_test',
'dbdriver' => 'postgre',
)