Skip to content

Commit 1dfb14c

Browse files
committed
add test
1 parent 0c4ed31 commit 1dfb14c

File tree

2 files changed

+31
-3
lines changed

2 files changed

+31
-3
lines changed

ext/pgsql/pgsql.c

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2150,13 +2150,15 @@ PHP_FUNCTION(pg_trace)
21502150
PQtrace(pgsql, fp);
21512151
if (trace_mode > 0) {
21522152
#ifdef PQTRACE_REGRESS_MODE
2153-
if (trace_mode > (PQTRACE_SUPPRESS_TIMESTAMPS|PQTRACE_REGRESS_MODE)) {
2154-
zend_argument_value_error(2, "must be PGSQL_TRACE_SUPPRESS_TIMESTAMPS and/or PGSQL_TRACE_REGRESS_MODE");
2153+
if (!(trace_mode & (PQTRACE_SUPPRESS_TIMESTAMPS|PQTRACE_REGRESS_MODE))) {
2154+
zend_argument_value_error(4, "must be PGSQL_TRACE_SUPPRESS_TIMESTAMPS and/or PGSQL_TRACE_REGRESS_MODE");
2155+
RETURN_THROWS();
21552156
} else {
21562157
PQsetTraceFlags(pgsql, trace_mode);
21572158
}
21582159
#else
2159-
zend_argument_value_error(2, "cannot set the trace mode as it's unsupported");
2160+
zend_argument_value_error(4, "cannot set as trace is unsupported");
2161+
RETURN_THROWS();
21602162
#endif
21612163
}
21622164
RETURN_TRUE;

ext/pgsql/tests/pg_trace.phpt

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
--TEST--
2+
pg_trace
3+
--EXTENSIONS--
4+
pgsql
5+
--SKIPIF--
6+
<?php include("skipif.inc"); ?>
7+
--FILE--
8+
<?php
9+
10+
include('config.inc');
11+
12+
$db = pg_connect($conn_str);
13+
$tracefile = __DIR__ . '/trace.tmp';
14+
15+
try {
16+
pg_trace($tracefile, 'w', $db, 56432);
17+
} catch (ValueError $e) {
18+
echo $e->getMessage() . PHP_EOL;
19+
}
20+
var_dump(pg_trace($tracefile, 'w', $db, 0));
21+
$res = pg_query($db, 'select 1');
22+
23+
?>
24+
--EXPECT--
25+
pg_trace(): Argument #4 ($trace_mode) cannot set as trace is unsupported
26+
bool(true)

0 commit comments

Comments
 (0)