psql: Add tests for \errverbose
This is another piece of functionality that happens while a user query is being sent and which did not have any test coverage.
This commit is contained in:
parent
ddee016b34
commit
d3ab618290
|
@ -132,4 +132,51 @@ server closed the connection unexpectedly
|
||||||
psql:<stdin>:2: fatal: connection to server was lost',
|
psql:<stdin>:2: fatal: connection to server was lost',
|
||||||
'server crash: error message');
|
'server crash: error message');
|
||||||
|
|
||||||
|
# test \errverbose
|
||||||
|
#
|
||||||
|
# (This is not in the regular regression tests because the output
|
||||||
|
# contains the source code location and we don't want to have to
|
||||||
|
# update that every time it changes.)
|
||||||
|
|
||||||
|
psql_like(
|
||||||
|
$node,
|
||||||
|
'SELECT 1;
|
||||||
|
\errverbose',
|
||||||
|
qr/^1\nThere is no previous error\.$/,
|
||||||
|
'\errverbose with no previous error');
|
||||||
|
|
||||||
|
# There are three main ways to run a query that might affect
|
||||||
|
# \errverbose: The normal way, using a cursor by setting FETCH_COUNT,
|
||||||
|
# and using \gdesc. Test them all.
|
||||||
|
|
||||||
|
like(($node->psql('postgres', "SELECT error;\n\\errverbose", on_error_stop => 0))[2],
|
||||||
|
qr/\A^psql:<stdin>:1: ERROR: .*$
|
||||||
|
^LINE 1: SELECT error;$
|
||||||
|
^ *^.*$
|
||||||
|
^psql:<stdin>:2: error: ERROR: [0-9A-Z]{5}: .*$
|
||||||
|
^LINE 1: SELECT error;$
|
||||||
|
^ *^.*$
|
||||||
|
^LOCATION: .*$/m,
|
||||||
|
'\errverbose after normal query with error');
|
||||||
|
|
||||||
|
like(($node->psql('postgres', "\\set FETCH_COUNT 1\nSELECT error;\n\\errverbose", on_error_stop => 0))[2],
|
||||||
|
qr/\A^psql:<stdin>:2: ERROR: .*$
|
||||||
|
^LINE 2: SELECT error;$
|
||||||
|
^ *^.*$
|
||||||
|
^psql:<stdin>:3: error: ERROR: [0-9A-Z]{5}: .*$
|
||||||
|
^LINE 2: SELECT error;$
|
||||||
|
^ *^.*$
|
||||||
|
^LOCATION: .*$/m,
|
||||||
|
'\errverbose after FETCH_COUNT query with error');
|
||||||
|
|
||||||
|
like(($node->psql('postgres', "SELECT error\\gdesc\n\\errverbose", on_error_stop => 0))[2],
|
||||||
|
qr/\A^psql:<stdin>:1: ERROR: .*$
|
||||||
|
^LINE 1: SELECT error$
|
||||||
|
^ *^.*$
|
||||||
|
^psql:<stdin>:2: error: ERROR: [0-9A-Z]{5}: .*$
|
||||||
|
^LINE 1: SELECT error$
|
||||||
|
^ *^.*$
|
||||||
|
^LOCATION: .*$/m,
|
||||||
|
'\errverbose after \gdesc with error');
|
||||||
|
|
||||||
done_testing();
|
done_testing();
|
||||||
|
|
Loading…
Reference in New Issue