mirror of
https://github.com/php/php-src.git
synced 2026-03-24 00:02:20 +01:00
* ext/dba/tests/setup/setup_dba_tests.inc: sort test output Iterating through a database with firstkey() and nextkey() is guaranteed to retrieve all rows, but apparently not in any particular order. This is causing a test failure for at least one user, so we steal the sort() approach from GDBM to ensure that the output is predictable. * ext/dba/tests/dba_*.phpt: sort expected test output The actual output is now sorted for consistency, so we need to update the expected output as well. As a nice side effect, some differences in the expected outputs for the various engines have been eliminated. Closes GH-14786 * ext/pgsql/tests/80_bug14383.phpt: sort expected test output This test uses a routine from ext/dba that now sorts its (actual) output, so we have to sort the expected output here as well. * ext/dba/tests/setup/setup_dba_tests.inc: update comment After doing some more digging, it looks like GDBM isn't the only engine where the iteration order with firstkey() and nextkey() might change unexpectedly.
126 lines
2.8 KiB
PHP
126 lines
2.8 KiB
PHP
--TEST--
|
|
DBA QDBM handler test
|
|
--EXTENSIONS--
|
|
dba
|
|
--SKIPIF--
|
|
<?php
|
|
require_once __DIR__ . '/setup/setup_dba_tests.inc';
|
|
check_skip('qdbm');
|
|
?>
|
|
--FILE--
|
|
<?php
|
|
require_once __DIR__ . '/setup/setup_dba_tests.inc';
|
|
$db_name = 'dba_qdbm.db';
|
|
|
|
$handler = 'qdbm';
|
|
run_standard_tests($handler, $db_name);
|
|
|
|
?>
|
|
--CLEAN--
|
|
<?php
|
|
require_once __DIR__ . '/setup/setup_dba_tests.inc';
|
|
$db_name = 'dba_qdbm.db';
|
|
cleanup_standard_db($db_name);
|
|
?>
|
|
--EXPECTF--
|
|
=== RUNNING WITH FILE LOCK ===
|
|
|
|
Notice: dba_open(): Handler qdbm does locking internally in %s on line %d
|
|
|
|
Notice: dba_open(): Handler qdbm does locking internally in %s on line %d
|
|
|
|
Notice: dba_open(): Handler qdbm does locking internally in %s on line %d
|
|
Remove key 1 and 3
|
|
bool(true)
|
|
bool(true)
|
|
Try to remove key 1 again
|
|
bool(false)
|
|
[key10]name10: Content String 10
|
|
[key30]name30: Content String 30
|
|
key2: Content String 2
|
|
key4: Another Content String
|
|
key5: The last content string
|
|
name9: Content String 9
|
|
Total keys: 6
|
|
Key 1 exists? N
|
|
Key 2 exists? Y
|
|
Key 3 exists? N
|
|
Key 4 exists? Y
|
|
Key 5 exists? Y
|
|
Replace second key data
|
|
bool(true)
|
|
Content 2 replaced
|
|
Read during write: not allowed
|
|
Expected: Added a new data entry
|
|
Expected: Failed to insert data for already used key
|
|
Replace second key data
|
|
bool(true)
|
|
Delete "key4"
|
|
bool(true)
|
|
Fetch "key2": Content 2 replaced 2nd time
|
|
Fetch "key number 6": The 6th value
|
|
|
|
Notice: dba_open(): Handler qdbm does locking internally in %s on line 1%d
|
|
array(6) {
|
|
["[key10]name10"]=>
|
|
string(17) "Content String 10"
|
|
["[key30]name30"]=>
|
|
string(17) "Content String 30"
|
|
["key number 6"]=>
|
|
string(13) "The 6th value"
|
|
["key2"]=>
|
|
string(27) "Content 2 replaced 2nd time"
|
|
["key5"]=>
|
|
string(23) "The last content string"
|
|
["name9"]=>
|
|
string(16) "Content String 9"
|
|
}
|
|
=== RUNNING WITH DB LOCK (default) ===
|
|
Remove key 1 and 3
|
|
bool(true)
|
|
bool(true)
|
|
Try to remove key 1 again
|
|
bool(false)
|
|
[key10]name10: Content String 10
|
|
[key30]name30: Content String 30
|
|
key2: Content String 2
|
|
key4: Another Content String
|
|
key5: The last content string
|
|
name9: Content String 9
|
|
Total keys: 6
|
|
Key 1 exists? N
|
|
Key 2 exists? Y
|
|
Key 3 exists? N
|
|
Key 4 exists? Y
|
|
Key 5 exists? Y
|
|
Replace second key data
|
|
bool(true)
|
|
Content 2 replaced
|
|
Read during write: not allowed
|
|
Expected: Added a new data entry
|
|
Expected: Failed to insert data for already used key
|
|
Replace second key data
|
|
bool(true)
|
|
Delete "key4"
|
|
bool(true)
|
|
Fetch "key2": Content 2 replaced 2nd time
|
|
Fetch "key number 6": The 6th value
|
|
array(6) {
|
|
["[key10]name10"]=>
|
|
string(17) "Content String 10"
|
|
["[key30]name30"]=>
|
|
string(17) "Content String 30"
|
|
["key number 6"]=>
|
|
string(13) "The 6th value"
|
|
["key2"]=>
|
|
string(27) "Content 2 replaced 2nd time"
|
|
["key5"]=>
|
|
string(23) "The last content string"
|
|
["name9"]=>
|
|
string(16) "Content String 9"
|
|
}
|
|
=== RUNNING WITH NO LOCK ===
|
|
|
|
Warning: dba_open(): Locking cannot be disabled for handler qdbm in %s on line %d
|
|
Failed to create DB
|