Skip to content

Commit e80b1af

Browse files
committed
pgsqlSetNoticeCallback: tests: ensure where are "multiple calls"-proof
1 parent 93502fc commit e80b1af

File tree

3 files changed

+13
-4
lines changed

3 files changed

+13
-4
lines changed

ext/pdo_pgsql/tests/issue78621.inc

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,12 @@ $db->exec("create temporary table t (a varchar(3))");
1010
$db->exec("create function hey() returns trigger as \$\$ begin new.a := 'oh'; raise notice 'I tampered your data, did you know?'; return new; end; \$\$ language plpgsql");
1111
$db->exec("create trigger hop before insert on t for each row execute procedure hey()");
1212
$db->exec("insert into t values ('ah')");
13+
attach($db, 'Re');
14+
$db->exec("delete from t");
15+
$db->exec("insert into t values ('ah')");
16+
$db->pgsqlSetNoticeCallback(null);
17+
$db->exec("delete from t");
18+
$db->exec("insert into t values ('ah')");
1319
var_dump($db->query("select * from t")->fetchAll(PDO::FETCH_ASSOC));
1420
echo "Done\n";
1521
?>

ext/pdo_pgsql/tests/issue78621.phpt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,16 @@ PDOTest::skip();
1010
--FILE--
1111
<?php
1212
function disp($message) { echo trim($message)."\n"; }
13-
function attach($db)
13+
function dispRe($message) { echo "Re".trim($message)."\n"; }
14+
function attach($db, $prefix = '')
1415
{
15-
$db->pgsqlSetNoticeCallback('disp');
16+
$db->pgsqlSetNoticeCallback('disp'.$prefix);
1617
}
1718
require dirname(__FILE__) . '/issue78621.inc';
1819
?>
1920
--EXPECT--
2021
NOTICE: I tampered your data, did you know?
22+
ReNOTICE: I tampered your data, did you know?
2123
array(1) {
2224
[0]=>
2325
array(1) {

ext/pdo_pgsql/tests/issue78621_closure.phpt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,17 @@ PDOTest::skip();
1010
--FILE--
1111
<?php
1212
function disp($message) { echo trim($message)."\n"; }
13-
function attach($db)
13+
function attach($db, $prefix = '')
1414
{
15-
$db->pgsqlSetNoticeCallback(function($message) { echo trim($message)."\n"; });
15+
$db->pgsqlSetNoticeCallback(function($message) use($prefix) { echo $prefix.trim($message)."\n"; });
1616
// https://github.com/php/php-src/pull/4823#pullrequestreview-335623806
1717
$eraseCallbackMemoryHere = (object)[1];
1818
}
1919
require dirname(__FILE__) . '/issue78621.inc';
2020
?>
2121
--EXPECT--
2222
NOTICE: I tampered your data, did you know?
23+
ReNOTICE: I tampered your data, did you know?
2324
array(1) {
2425
[0]=>
2526
array(1) {

0 commit comments

Comments
 (0)