Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
112 changes: 107 additions & 5 deletions .github/workflows/push.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ env:
CXX: ccache g++
jobs:
LINUX_X64:
if: github.repository == 'php/php-src' || github.event_name == 'pull_request'
if: false
services:
mysql:
image: mysql:8.3
Expand Down Expand Up @@ -137,7 +137,7 @@ jobs:
if: ${{ !matrix.asan }}
uses: ./.github/actions/verify-generated-files
LINUX_X32:
if: github.repository == 'php/php-src' || github.event_name == 'pull_request'
if: false
name: LINUX_X32_DEBUG_ZTS
runs-on: ubuntu-latest
timeout-minutes: 50
Expand Down Expand Up @@ -183,7 +183,7 @@ jobs:
-d zend_extension=opcache.so
-d opcache.enable_cli=1
MACOS_DEBUG_NTS:
if: github.repository == 'php/php-src' || github.event_name == 'pull_request'
if: false
strategy:
fail-fast: false
matrix:
Expand Down Expand Up @@ -226,7 +226,7 @@ jobs:
- name: Verify generated files are up to date
uses: ./.github/actions/verify-generated-files
WINDOWS:
if: github.repository == 'php/php-src' || github.event_name == 'pull_request'
if: false
name: WINDOWS_X64_ZTS
runs-on: windows-2022
timeout-minutes: 50
Expand Down Expand Up @@ -254,7 +254,7 @@ jobs:
run: .github/scripts/windows/test.bat
BENCHMARKING:
name: BENCHMARKING
if: github.repository == 'php/php-src' || github.event_name == 'pull_request'
if: false
runs-on: ubuntu-24.04
timeout-minutes: 50
steps:
Expand Down Expand Up @@ -359,3 +359,105 @@ jobs:
name: profiles
path: ${{ github.workspace }}/benchmark/profiles
retention-days: 30
FREEBSD:
name: FREEBSD
runs-on: ubuntu-latest
steps:
- name: git checkout
uses: actions/checkout@v4
- name: QEMU
uses: vmactions/freebsd-vm@v1
with:
release: '13.3'
usesh: true
prepare: |
cd $GITHUB_WORKSPACE

kldload accf_http
pkg install -y \
autoconf \
bison \
gmake \
re2c \
icu \
libiconv \
png \
freetype2 \
enchant2 \
bzip2 \
t1lib \
gmp \
tidyp \
libsodium \
libzip \
libxml2 \
libxslt \
openssl \
oniguruma \
pkgconf \
webp \
libavif \
sqlite3 \
curl

./buildconf -f
./configure \
--prefix=/usr/local \
--enable-debug \
--enable-option-checking=fatal \
--enable-fpm \
--with-pdo-sqlite \
--without-pear \
--with-bz2 \
--with-avif \
--with-jpeg \
--with-webp \
--with-freetype \
--enable-gd \
--enable-exif \
--with-zip \
--with-zlib \
--enable-soap \
--enable-xmlreader \
--with-xsl \
--with-libxml \
--enable-shmop \
--enable-pcntl \
--enable-mbstring \
--with-curl \
--enable-sockets \
--with-openssl \
--with-iconv=/usr/local \
--enable-bcmath \
--enable-calendar \
--enable-ftp \
--with-ffi \
--enable-zend-test \
--enable-dl-test=shared \
--enable-intl \
--with-mhash \
--with-sodium \
--enable-werror \
--with-config-file-path=/etc \
--with-config-file-scan-dir=/etc/php.d
gmake -j2
mkdir /etc/php.d
gmake install
echo opcache.enable_cli=1 > /etc/php.d/opcache.ini
echo opcache.protect_memory=1 >> /etc/php.d/opcache.ini
echo opcache.preload_user=root >> /etc/php.d/opcache.ini
run: |
cd $GITHUB_WORKSPACE

export SKIP_IO_CAPTURE_TESTS=1
export CI_NO_IPV6=1
export STACK_LIMIT_DEFAULTS_CHECK=1
sapi/cli/php run-tests.php \
-P -q -j2 \
-g FAIL,BORK,LEAK,XLEAK \
--no-progress \
--offline \
--show-diff \
--show-slow 1000 \
--set-timeout 120 \
-d zend_extension=opcache.so
8 changes: 4 additions & 4 deletions ext/pdo_sqlite/tests/bug38334.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@ pdo_sqlite

$db = new PDO('sqlite::memory:');
$db->exec('CREATE TABLE test_38334 (i INTEGER , f DOUBLE, s VARCHAR(255))');
$db->exec('INSERT INTO test_38334 VALUES (42, 46.7, "test")');
$db->exec('INSERT INTO test_38334 VALUES (42, 46.7, \'test\')');
var_dump($db->query('SELECT * FROM test_38334')->fetch(PDO::FETCH_ASSOC));

// Check handling of integers larger than 32-bit.
$db->exec('INSERT INTO test_38334 VALUES (10000000000, 0.0, "")');
$db->exec('INSERT INTO test_38334 VALUES (10000000000, 0.0, \'\')');
$i = $db->query('SELECT i FROM test_38334 WHERE f = 0.0')->fetchColumn(0);
if (PHP_INT_SIZE >= 8) {
var_dump($i === 10000000000);
Expand All @@ -20,8 +20,8 @@ if (PHP_INT_SIZE >= 8) {
}

// Check storing of strings into integer/float columns.
$db->exec('INSERT INTO test_38334 VALUES ("test", "test", "x")');
var_dump($db->query('SELECT * FROM test_38334 WHERE s = "x"')->fetch(PDO::FETCH_ASSOC));
$db->exec('INSERT INTO test_38334 VALUES (\'test\', \'test\', \'x\')');
var_dump($db->query('SELECT * FROM test_38334 WHERE s = \'x\'')->fetch(PDO::FETCH_ASSOC));

?>
--EXPECT--
Expand Down
2 changes: 1 addition & 1 deletion ext/pdo_sqlite/tests/bug_42589.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ if(!in_array('ENABLE_COLUMN_METADATA', $options, true))
$db = new PDO("sqlite::memory:");

$db->exec('CREATE TABLE test_42589 (field1 VARCHAR(10))');
$db->exec('INSERT INTO test_42589 VALUES("test")');
$db->exec('INSERT INTO test_42589 VALUES(\'test\')');

$result = $db->query('SELECT * FROM test_42589 t1 LEFT JOIN test_42589 t2 ON t1.field1 = t2.field1');
$meta1 = $result->getColumnMeta(0);
Expand Down
2 changes: 1 addition & 1 deletion ext/pdo_sqlite/tests/pdo_fetch_func_001.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ $db = new PDO('sqlite::memory:');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);

$db->exec('CREATE TABLE test_fetch_func_001 (id INTEGER , name VARCHAR)');
$db->exec('INSERT INTO test_fetch_func_001 VALUES(1, "php"), (2, "")');
$db->exec('INSERT INTO test_fetch_func_001 VALUES(1, \'php\'), (2, \'\')');

$st = $db->query('SELECT * FROM test_fetch_func_001');
$st->fetchAll(
Expand Down
2 changes: 1 addition & 1 deletion ext/pdo_sqlite/tests/pdo_sqlite_createaggregate.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ $db = new PDO('sqlite::memory:');

$db->query('CREATE TABLE test_pdo_sqlite_createaggregate (id INT AUTO INCREMENT, name TEXT)');

$db->query('INSERT INTO test_pdo_sqlite_createaggregate VALUES (NULL, "PHP"), (NULL, "PHP6")');
$db->query('INSERT INTO test_pdo_sqlite_createaggregate VALUES (NULL, \'PHP\'), (NULL, \'PHP6\')');

$db->sqliteCreateAggregate('testing', function(&$a, $b) { $a .= $b; return $a; }, function(&$v) { return $v; });

Expand Down
2 changes: 1 addition & 1 deletion ext/pdo_sqlite/tests/pdo_sqlite_createcollation.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$db->query('CREATE TABLE test_pdo_sqlite_createcollation (id INT AUTO INCREMENT, name TEXT)');

$db->query('INSERT INTO test_pdo_sqlite_createcollation VALUES (NULL, "1"), (NULL, "2"), (NULL, "10")');
$db->query('INSERT INTO test_pdo_sqlite_createcollation VALUES (NULL, \'1\'), (NULL, \'2\'), (NULL, \'10\')');

$db->sqliteCreateCollation('MYCOLLATE', function($a, $b) { return strnatcmp($a, $b); });

Expand Down
2 changes: 1 addition & 1 deletion ext/pdo_sqlite/tests/pdo_sqlite_createfunction.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ $db = new PDO('sqlite::memory:');

$db->query('CREATE TABLE test_pdo_sqlite_createfunction (id INT AUTO INCREMENT, name TEXT)');

$db->query('INSERT INTO test_pdo_sqlite_createfunction VALUES (NULL, "PHP"), (NULL, "PHP6")');
$db->query('INSERT INTO test_pdo_sqlite_createfunction VALUES (NULL, \'PHP\'), (NULL, \'PHP6\')');


$db->sqliteCreateFunction('testing', function($v) { return strtolower($v); });
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ $db = new PDO('sqlite::memory:');

$db->query('CREATE TABLE test_pdo_sqlite_createfunction_with_flags (id INT AUTO INCREMENT, name TEXT)');

$db->query('INSERT INTO test_pdo_sqlite_createfunction_with_flags VALUES (NULL, "PHP"), (NULL, "PHP6")');
$db->query('INSERT INTO test_pdo_sqlite_createfunction_with_flags VALUES (NULL, \'PHP\'), (NULL, \'PHP6\')');


$db->sqliteCreateFunction('testing', function($v) { return strtolower($v); }, 1, PDO::SQLITE_DETERMINISTIC);
Expand Down
2 changes: 1 addition & 1 deletion ext/pdo_sqlite/tests/pdo_sqlite_lastinsertid.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ pdo_sqlite

$db = new PDO('sqlite::memory:');
$db->query('CREATE TABLE test_pdo_sqlite_lastinsertid (id INT AUTO INCREMENT, name TEXT)');
$db->query('INSERT INTO test_pdo_sqlite_lastinsertid VALUES (NULL, "PHP"), (NULL, "PHP6")');
$db->query('INSERT INTO test_pdo_sqlite_lastinsertid VALUES (NULL, \'PHP\'), (NULL, \'PHP6\')');
var_dump($db->query('SELECT * FROM test_pdo_sqlite_lastinsertid'));
var_dump($db->errorInfo());
var_dump($db->lastInsertId());
Expand Down
4 changes: 0 additions & 4 deletions ext/pdo_sqlite/tests/pdo_sqlite_parser.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,7 @@ foreach ($queries as $k => $query) {
// One parameter
$queries = [
"SELECT * FROM {$table} WHERE '1' = ?",
"SELECT * FROM {$table} WHERE \"?\" IN (?, \"?\")",
"SELECT * FROM {$table} WHERE `a``?` = ?",
"SELECT * FROM {$table} WHERE \"a`?\" = ?",
"SELECT * FROM {$table} WHERE [a`?] = ?",
];

Expand All @@ -58,5 +56,3 @@ bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
2 changes: 1 addition & 1 deletion ext/pdo_sqlite/tests/pdo_sqlite_transaction.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ $db->query('CREATE TABLE test_pdo_sqlite_transaction (id INT AUTO INCREMENT, nam
$db->commit();

$db->beginTransaction();
$db->query('INSERT INTO test_pdo_sqlite_transaction VALUES (NULL, "PHP"), (NULL, "PHP6")');
$db->query('INSERT INTO test_pdo_sqlite_transaction VALUES (NULL, \'PHP\'), (NULL, \'PHP6\')');
$db->rollback();

$r = $db->query('SELECT COUNT(*) FROM test_pdo_sqlite_transaction');
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,11 @@ class TrampolineTest {

var_dump($db->createFunction('strtoupper', [new TrampolineTest(), 'strtoupper']));

foreach ($db->query('SELECT strtoupper("test")') as $row) {
foreach ($db->query('SELECT strtoupper(\'test\')') as $row) {
var_dump($row);
}

foreach ($db->query('SELECT strtoupper("test")') as $row) {
foreach ($db->query('SELECT strtoupper(\'test\')') as $row) {
var_dump($row);
}

Expand All @@ -33,14 +33,14 @@ foreach ($db->query('SELECT strtoupper("test")') as $row) {
bool(true)
Trampoline for strtoupper
array(2) {
["strtoupper("test")"]=>
["strtoupper('test')"]=>
string(4) "TEST"
[0]=>
string(4) "TEST"
}
Trampoline for strtoupper
array(2) {
["strtoupper("test")"]=>
["strtoupper('test')"]=>
string(4) "TEST"
[0]=>
string(4) "TEST"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ $db = new Pdo\Sqlite('sqlite::memory:');

$db->query('CREATE TABLE test_pdo_sqlite_createaggregate (id INT AUTO INCREMENT, name TEXT)');

$db->query('INSERT INTO test_pdo_sqlite_createaggregate VALUES (NULL, "PHP"), (NULL, "PHP6")');
$db->query('INSERT INTO test_pdo_sqlite_createaggregate VALUES (NULL, \'PHP\'), (NULL, \'PHP6\')');

$db->createAggregate('testing', function(&$a, $b) { $a .= $b; return $a; }, function(&$v) { return $v; });

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$db->query('CREATE TABLE test_pdo_sqlite_createcollation (id INT AUTO INCREMENT, name TEXT)');

$db->query('INSERT INTO test_pdo_sqlite_createcollation VALUES (NULL, "1"), (NULL, "2"), (NULL, "10")');
$db->query('INSERT INTO test_pdo_sqlite_createcollation VALUES (NULL, \'1\'), (NULL, \'2\'), (NULL, \'10\')');

$db->createCollation('MYCOLLATE', function($a, $b) { return strnatcmp($a, $b); });

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ $db = new Pdo\Sqlite('sqlite::memory:');

$db->query('CREATE TABLE test_pdo_sqlite_createcollation_trampoline (s VARCHAR(4))');

$stmt = $db->query('INSERT INTO test_pdo_sqlite_createcollation_trampoline VALUES ("a1"), ("a10"), ("a2")');
$stmt = $db->query('INSERT INTO test_pdo_sqlite_createcollation_trampoline VALUES (\'a1\'), (\'a10\'), (\'a2\')');

class TrampolineTest {
public function __call(string $name, array $arguments) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ if (!defined('PDO::SQLITE_DETERMINISTIC')) die('skip system sqlite is too old');
// This test was copied from the pdo_sqlite test for sqliteCreateCollation
$db = new Pdo\Sqlite('sqlite::memory:');
$db->query('CREATE TABLE test_pdo_sqlite_createfunction_with_flags (id INT AUTO INCREMENT, name TEXT)');
$db->query('INSERT INTO test_pdo_sqlite_createfunction_with_flags VALUES (NULL, "PHP"), (NULL, "PHP6")');
$db->query('INSERT INTO test_pdo_sqlite_createfunction_with_flags VALUES (NULL, \'PHP\'), (NULL, \'PHP6\')');

$db->createFunction('testing', function($v) { return strtolower($v); }, 1, Pdo\Sqlite::DETERMINISTIC);

Expand Down
4 changes: 2 additions & 2 deletions ext/pdo_sqlite/tests/subclasses/pdosqlite_001.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ $db = new Pdo\Sqlite('sqlite::memory:');

$db->query('CREATE TABLE pdosqlite_001 (id INT AUTO INCREMENT, name TEXT)');

$db->query('INSERT INTO pdosqlite_001 VALUES (NULL, "PHP")');
$db->query('INSERT INTO pdosqlite_001 VALUES (NULL, "PHP6")');
$db->query('INSERT INTO pdosqlite_001 VALUES (NULL, \'PHP\')');
$db->query('INSERT INTO pdosqlite_001 VALUES (NULL, \'PHP6\')');

$db->createFunction('testing', function($v) { return strtolower($v); }, 1, Pdo\Sqlite::DETERMINISTIC);

Expand Down
4 changes: 2 additions & 2 deletions ext/pdo_sqlite/tests/subclasses/pdosqlite_002.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ if (!$db instanceof Pdo\Sqlite) {
}

$db->query('CREATE TABLE pdosqlite_002 (id INT AUTO INCREMENT, name TEXT)');
$db->query('INSERT INTO pdosqlite_002 VALUES (NULL, "PHP")');
$db->query('INSERT INTO pdosqlite_002 VALUES (NULL, "PHP6")');
$db->query('INSERT INTO pdosqlite_002 VALUES (NULL, \'PHP\')');
$db->query('INSERT INTO pdosqlite_002 VALUES (NULL, \'PHP6\')');

$db->createFunction('testing', function($v) { return strtolower($v); }, 1, Pdo\Sqlite::DETERMINISTIC);

Expand Down
6 changes: 3 additions & 3 deletions ext/sqlite3/tests/bug72668.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -12,20 +12,20 @@ $db = new SQLite3(':memory:');
$db->createFunction('my_udf_md5', 'my_udf_md5');

try {
$result = $db->query('SELECT my_udf_md5("test")');
$result = $db->query('SELECT my_udf_md5(\'test\')');
var_dump($result);
}
catch(\Exception $e) {
echo "Exception: ".$e->getMessage();
}
try {
$result = $db->querySingle('SELECT my_udf_md5("test")');
$result = $db->querySingle('SELECT my_udf_md5(\'test\')');
var_dump($result);
}
catch(\Exception $e) {
echo "Exception: ".$e->getMessage();
}
$statement = $db->prepare('SELECT my_udf_md5("test")');
$statement = $db->prepare('SELECT my_udf_md5(\'test\')');
try {
$result = $statement->execute();
var_dump($result);
Expand Down
6 changes: 3 additions & 3 deletions ext/sqlite3/tests/sqlite3_29_createfunction.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,14 @@ require_once(__DIR__ . '/new_db.inc');

$func = 'strtoupper';
var_dump($db->createfunction($func, $func));
var_dump($db->querySingle('SELECT strtoupper("test")'));
var_dump($db->querySingle('SELECT strtoupper(\'test\')'));

$func2 = 'strtolower';
var_dump($db->createfunction($func2, $func2));
var_dump($db->querySingle('SELECT strtolower("TEST")'));
var_dump($db->querySingle('SELECT strtolower(\'TEST\')'));

var_dump($db->createfunction($func, $func2));
var_dump($db->querySingle('SELECT strtoupper("tEst")'));
var_dump($db->querySingle('SELECT strtoupper(\'tEst\')'));


?>
Expand Down
Loading