mirror of
https://github.com/php/php-src.git
synced 2025-08-16 05:58:45 +02:00
Various tests for the sqlite ext.
The sqlite session tests are by Mats Lindh <mats at lindh.no>.
This commit is contained in:
parent
436018a0b7
commit
ac24f7ecfe
8 changed files with 334 additions and 0 deletions
34
ext/sqlite/tests/sqlite_exec_basic.phpt
Normal file
34
ext/sqlite/tests/sqlite_exec_basic.phpt
Normal file
|
@ -0,0 +1,34 @@
|
|||
--TEST--
|
||||
Test sqlite_exec() function : basic functionality
|
||||
--SKIPIF--
|
||||
<?php if (!extension_loaded("sqlite")) print "skip sqlite extension not loaded"; ?>
|
||||
--FILE--
|
||||
<?php
|
||||
/* Prototype : boolean sqlite_exec(string query, resource db[, string &error_message])
|
||||
* Description: Executes a result-less query against a given database
|
||||
* Source code: ext/sqlite/sqlite.c
|
||||
* Alias to functions:
|
||||
*/
|
||||
|
||||
echo "*** Testing sqlite_exec() : basic functionality ***\n";
|
||||
|
||||
// set up variables
|
||||
$query = 'CREATE TABLE foobar (id INTEGER PRIMARY KEY, name CHAR(255));';
|
||||
$error_message = null;
|
||||
|
||||
// procedural
|
||||
$db = sqlite_open(':memory:');
|
||||
var_dump( sqlite_exec($db, $query) );
|
||||
sqlite_close($db);
|
||||
|
||||
// oo-style
|
||||
$db = new SQLiteDatabase(':memory:');
|
||||
var_dump( $db->queryExec($query, $error_message) );
|
||||
|
||||
?>
|
||||
===DONE===
|
||||
--EXPECTF--
|
||||
*** Testing sqlite_exec() : basic functionality ***
|
||||
bool(true)
|
||||
bool(true)
|
||||
===DONE===
|
44
ext/sqlite/tests/sqlite_exec_error.phpt
Normal file
44
ext/sqlite/tests/sqlite_exec_error.phpt
Normal file
|
@ -0,0 +1,44 @@
|
|||
--TEST--
|
||||
Test sqlite_exec() function : error behaviour and functionality
|
||||
--SKIPIF--
|
||||
<?php if (!extension_loaded("sqlite")) print "skip sqlite extension not loaded"; ?>
|
||||
--FILE--
|
||||
<?php
|
||||
/* Prototype : boolean sqlite_exec(string query, resource db[, string &error_message])
|
||||
* Description: Executes a result-less query against a given database
|
||||
* Source code: ext/sqlite/sqlite.c
|
||||
* Alias to functions:
|
||||
*/
|
||||
|
||||
echo "*** Testing sqlite_exec() : error functionality ***\n";
|
||||
|
||||
// set up variables
|
||||
$fail = 'CRE ATE TABLE';
|
||||
$error_message = null;
|
||||
|
||||
// procedural
|
||||
$db = sqlite_open(':memory:');
|
||||
var_dump( sqlite_exec($db, $fail, $error_message) );
|
||||
var_dump( $error_message );
|
||||
var_dump( sqlite_exec($db) );
|
||||
sqlite_close($db);
|
||||
|
||||
// oo-style
|
||||
$db = new SQLiteDatabase(':memory:');
|
||||
var_dump( $db->queryExec($fail, $error_message, 'fooparam') );
|
||||
|
||||
?>
|
||||
===DONE===
|
||||
--EXPECTF--
|
||||
*** Testing sqlite_exec() : error functionality ***
|
||||
|
||||
Warning: sqlite_exec(): near "CRE": syntax error in %s on line %d
|
||||
bool(false)
|
||||
%string|unicode%(24) "near "CRE": syntax error"
|
||||
|
||||
Warning: sqlite_exec() expects at least 2 parameters, 1 given in %s on line %d
|
||||
NULL
|
||||
|
||||
Warning: SQLiteDatabase::queryExec() expects at most 2 parameters, 3 given in %s on line %d
|
||||
NULL
|
||||
===DONE===
|
48
ext/sqlite/tests/sqlite_last_error_basic.phpt
Normal file
48
ext/sqlite/tests/sqlite_last_error_basic.phpt
Normal file
|
@ -0,0 +1,48 @@
|
|||
--TEST--
|
||||
Test sqlite_last_error() function : basic functionality
|
||||
--SKIPIF--
|
||||
<?php if (!extension_loaded("sqlite")) print "skip sqlite extension not loaded"; ?>
|
||||
--FILE--
|
||||
<?php
|
||||
/* Prototype : int sqlite_last_error(resource db)
|
||||
* Description: Returns the error code of the last error for a database.
|
||||
* Source code: ext/sqlite/sqlite.c
|
||||
* Alias to functions:
|
||||
*/
|
||||
|
||||
echo "*** Testing sqlite_last_error() : basic functionality ***\n";
|
||||
|
||||
// set up variables
|
||||
$query = 'CREATE TAB LE foobar (id INTEGER PRIMARY KEY, name CHAR(255));';
|
||||
$query_ok = 'CREATE TABLE foobar (id INTEGER, name CHAR(255));';
|
||||
|
||||
// procedural
|
||||
$db = sqlite_open(':memory:');
|
||||
var_dump( sqlite_last_error($db) === SQLITE_OK );
|
||||
sqlite_exec($db, $query);
|
||||
var_dump( sqlite_last_error($db) === SQLITE_ERROR );
|
||||
sqlite_exec($db, $query_ok);
|
||||
var_dump( sqlite_last_error($db) === SQLITE_OK );
|
||||
sqlite_close($db);
|
||||
|
||||
// oo-style
|
||||
$db = new SQLiteDatabase(':memory:');
|
||||
$db->queryExec($query);
|
||||
var_dump( $db->lastError() === SQLITE_ERROR );
|
||||
$db->queryExec($query_ok);
|
||||
var_dump( $db->lastError() === SQLITE_OK );
|
||||
|
||||
?>
|
||||
===DONE===
|
||||
--EXPECTF--
|
||||
*** Testing sqlite_last_error() : basic functionality ***
|
||||
bool(true)
|
||||
|
||||
Warning: sqlite_exec(): near "TAB": syntax error in %s on line %d
|
||||
bool(true)
|
||||
bool(true)
|
||||
|
||||
Warning: SQLiteDatabase::queryExec(): near "TAB": syntax error in %s on line %d
|
||||
bool(true)
|
||||
bool(true)
|
||||
===DONE===
|
47
ext/sqlite/tests/sqlite_last_error_error.phpt
Normal file
47
ext/sqlite/tests/sqlite_last_error_error.phpt
Normal file
|
@ -0,0 +1,47 @@
|
|||
--TEST--
|
||||
Test sqlite_last_error() function : error conditions
|
||||
--SKIPIF--
|
||||
<?php if (!extension_loaded("sqlite")) print "skip sqlite extension not loaded"; ?>
|
||||
--FILE--
|
||||
<?php
|
||||
/* Prototype : int sqlite_last_error(resource db)
|
||||
* Description: Returns the error code of the last error for a database.
|
||||
* Source code: ext/sqlite/sqlite.c
|
||||
* Alias to functions:
|
||||
*/
|
||||
|
||||
echo "*** Testing sqlite_last_error() : error conditions ***\n";
|
||||
|
||||
// Zero arguments
|
||||
echo "\n-- Testing sqlite_last_error() function with Zero arguments --\n";
|
||||
var_dump( sqlite_last_error() );
|
||||
|
||||
//Test sqlite_last_error with one more than the expected number of arguments
|
||||
echo "\n-- Testing sqlite_last_error() function with more than expected no. of arguments --\n";
|
||||
|
||||
$db = sqlite_open(':memory:');
|
||||
$extra_arg = 10;
|
||||
var_dump( sqlite_last_error($db, $extra_arg) );
|
||||
sqlite_close($db);
|
||||
|
||||
$db = new SQLiteDatabase(':memory:');
|
||||
var_dump( $db->lastError($extra_arg) );
|
||||
|
||||
?>
|
||||
===DONE===
|
||||
--EXPECTF--
|
||||
*** Testing sqlite_last_error() : error conditions ***
|
||||
|
||||
-- Testing sqlite_last_error() function with Zero arguments --
|
||||
|
||||
Warning: sqlite_last_error() expects exactly 1 parameter, 0 given in %s on line %d
|
||||
NULL
|
||||
|
||||
-- Testing sqlite_last_error() function with more than expected no. of arguments --
|
||||
|
||||
Warning: sqlite_last_error() expects exactly 1 parameter, 2 given in %s on line %d
|
||||
NULL
|
||||
|
||||
Warning: SQLiteDatabase::lastError() expects exactly 0 parameters, 1 given in %s on line %d
|
||||
NULL
|
||||
===DONE===
|
27
ext/sqlite/tests/sqlite_popen_basic.phpt
Normal file
27
ext/sqlite/tests/sqlite_popen_basic.phpt
Normal file
|
@ -0,0 +1,27 @@
|
|||
--TEST--
|
||||
SQLite: sqlite_popen() basic tests
|
||||
--SKIPIF--
|
||||
<?php if (!extension_loaded("sqlite")) print "skip"; ?>
|
||||
--FILE--
|
||||
<?php
|
||||
/* Prototype : resource sqlite_popen(string filename [, int mode [, string &error_message]])
|
||||
* Description: Opens a persistent handle to a SQLite database. Will create the database if it does not exist.
|
||||
* Source code: ext/sqlite/sqlite.c
|
||||
* Alias to functions:
|
||||
*/
|
||||
|
||||
$db1 = sqlite_popen(":memory:");
|
||||
$db2 = sqlite_popen(":memory:");
|
||||
|
||||
var_dump($db1);
|
||||
var_dump($db2);
|
||||
|
||||
list($resourceId1) = sscanf((string) $db1, "resource(%d) of type (sqlite database (persistent))");
|
||||
list($resourceId2) = sscanf((string) $db2, "resource(%d) of type (sqlite database (persistent))");
|
||||
|
||||
var_dump($resourceId1 === $resourceId2);
|
||||
?>
|
||||
--EXPECTF--
|
||||
resource(%d) of type (sqlite database (persistent))
|
||||
resource(%d) of type (sqlite database (persistent))
|
||||
bool(true)
|
34
ext/sqlite/tests/sqlite_popen_error.phpt
Normal file
34
ext/sqlite/tests/sqlite_popen_error.phpt
Normal file
|
@ -0,0 +1,34 @@
|
|||
--TEST--
|
||||
Test sqlite_popen() function : error conditions
|
||||
--SKIPIF--
|
||||
<?php if (!extension_loaded("sqlite")) print "skip sqlite extension not loaded"; ?>
|
||||
--FILE--
|
||||
<?php
|
||||
/* Prototype : resource sqlite_popen(string filename [, int mode [, string &error_message]])
|
||||
* Description: Opens a persistent handle to a SQLite database. Will create the database if it does not exist.
|
||||
* Source code: ext/sqlite/sqlite.c
|
||||
* Alias to functions:
|
||||
*/
|
||||
|
||||
$message = '';
|
||||
|
||||
echo "*** Testing sqlite_popen() : error conditions ***\n";
|
||||
|
||||
var_dump( sqlite_popen() );
|
||||
var_dump( sqlite_popen(":memory:", 0666, $message, 'foobar') );
|
||||
var_dump( sqlite_popen("", 0666, $message) );
|
||||
var_dump( $message );
|
||||
|
||||
?>
|
||||
===DONE===
|
||||
--EXPECTF--
|
||||
*** Testing sqlite_popen() : error conditions ***
|
||||
|
||||
Warning: sqlite_popen() expects at least 1 parameter, 0 given in %s on line %d
|
||||
NULL
|
||||
|
||||
Warning: sqlite_popen() expects at most 3 parameters, 4 given in %s on line %d
|
||||
NULL
|
||||
bool(false)
|
||||
NULL
|
||||
===DONE===
|
46
ext/sqlite/tests/sqlite_session_001.phpt
Normal file
46
ext/sqlite/tests/sqlite_session_001.phpt
Normal file
|
@ -0,0 +1,46 @@
|
|||
--TEST--
|
||||
sqlite, session storage test
|
||||
--CREDITS--
|
||||
Mats Lindh <mats at lindh.no>
|
||||
#Testfest php.no
|
||||
--INI--
|
||||
session.save_handler = sqlite
|
||||
--SKIPIF--
|
||||
if (!extension_loaded("session"))
|
||||
{
|
||||
die("skip Session module not loaded");
|
||||
}
|
||||
if (!extension_loaded("sqlite"))
|
||||
{
|
||||
die("skip Session module not loaded");
|
||||
}
|
||||
--FILE--
|
||||
<?php
|
||||
/* Description: Tests that sqlite can be used as a session save handler
|
||||
* Source code: ext/sqlite/sess_sqlite.c
|
||||
*/
|
||||
|
||||
ob_start();
|
||||
session_save_path(__DIR__ . "/sessiondb.sdb");
|
||||
|
||||
// create the session and set a session value
|
||||
session_start();
|
||||
$_SESSION["test"] = "foo_bar";
|
||||
|
||||
// close the session and unset the value
|
||||
session_write_close();
|
||||
unset($_SESSION["test"]);
|
||||
var_dump(isset($_SESSION["test"]));
|
||||
|
||||
// start the session again and check that we have the proper value
|
||||
session_start();
|
||||
var_dump($_SESSION["test"]);
|
||||
ob_end_flush();
|
||||
?>
|
||||
--EXPECTF--
|
||||
bool(false)
|
||||
%unicode|string%(7) "foo_bar"
|
||||
--CLEAN--
|
||||
<?php
|
||||
unlink(__DIR__ . "/sessiondb.sdb")
|
||||
?>
|
54
ext/sqlite/tests/sqlite_session_002.phpt
Normal file
54
ext/sqlite/tests/sqlite_session_002.phpt
Normal file
|
@ -0,0 +1,54 @@
|
|||
--TEST--
|
||||
sqlite, session destroy test
|
||||
--CREDITS--
|
||||
Mats Lindh <mats at lindh.no>
|
||||
#Testfest php.no
|
||||
--INI--
|
||||
session.save_handler = sqlite
|
||||
--SKIPIF--
|
||||
if (!extension_loaded("session"))
|
||||
{
|
||||
die("skip Session module not loaded");
|
||||
}
|
||||
if (!extension_loaded("sqlite"))
|
||||
{
|
||||
die("skip sqlite module not loaded");
|
||||
}
|
||||
--FILE--
|
||||
<?php
|
||||
/* Description: Tests that sqlite will destroy a session when used as a session handler
|
||||
* Source code: ext/sqlite/sess_sqlite.c
|
||||
*/
|
||||
ob_start();
|
||||
session_save_path(__DIR__ . "/sessiondb.sdb");
|
||||
|
||||
// start a session and save a value to it before commiting the session to the database
|
||||
session_start();
|
||||
$_SESSION["test"] = "foo_bar";
|
||||
session_write_close();
|
||||
|
||||
// remove the session value
|
||||
unset($_SESSION["test"]);
|
||||
var_dump(isset($_SESSION["test"]));
|
||||
|
||||
// start the session again and destroy it
|
||||
session_start();
|
||||
var_dump($_SESSION["test"]);
|
||||
session_destroy();
|
||||
session_write_close();
|
||||
|
||||
unset($_SESSION["test"]);
|
||||
|
||||
// check that the session has been destroyed
|
||||
session_start();
|
||||
var_dump(isset($_SESSION["test"]));
|
||||
ob_end_flush();
|
||||
?>
|
||||
--EXPECTF--
|
||||
bool(false)
|
||||
%unicode|string%(7) "foo_bar"
|
||||
bool(false)
|
||||
--CLEAN--
|
||||
<?php
|
||||
unlink(__DIR__ . "/sessiondb.sdb")
|
||||
?>
|
Loading…
Add table
Add a link
Reference in a new issue