Skip to content

Commit bd81322

Browse files
committed
Add PDO::checkLiveness test
1 parent a4103c9 commit bd81322

1 file changed

Lines changed: 45 additions & 0 deletions

File tree

ext/pdo/tests/pdo_039.phpt

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
--TEST--
2+
PDOStatement::checkLiveness()
3+
--SKIPIF--
4+
<?php
5+
if (!extension_loaded('pdo')) die('skip');
6+
$dir = getenv('REDIR_TEST_DIR');
7+
if (false == $dir) die('skip no driver');
8+
require_once $dir . 'pdo_test.inc';
9+
PDOTest::skip();
10+
11+
if (!strncasecmp(getenv('PDOTEST_DSN'), 'oci', strlen('oci'))) die('skip cannot set wait_timeout equivalent');
12+
13+
$conn = PDOTest::factory();
14+
15+
try {
16+
$conn->checkLiveness();
17+
} catch (PDOException $e) {
18+
die("skip driver doesn't support checkLiveness: " . $e->getMessage());
19+
}
20+
21+
?>
22+
--FILE--
23+
<?php
24+
if (getenv('REDIR_TEST_DIR') === false) putenv('REDIR_TEST_DIR='.__DIR__ . '/../../pdo/tests/');
25+
require_once getenv('REDIR_TEST_DIR') . 'pdo_test.inc';
26+
27+
$conn = PDOTest::factory();
28+
29+
switch ($conn->getAttribute(PDO::ATTR_DRIVER_NAME)) {
30+
case 'mysql':
31+
$conn->exec("SET SESSION wait_timeout = 1");
32+
break;
33+
case 'pgsql':
34+
$conn->exec("SET SESSION idle_in_transaction_session_timeout = 1000");
35+
break;
36+
}
37+
38+
var_dump($conn->checkLiveness());
39+
sleep(2);
40+
var_dump($conn->checkLiveness());
41+
42+
?>
43+
--EXPECTF--
44+
bool(true)
45+
bool(false)

0 commit comments

Comments
 (0)