1
0
mirror of https://github.com/postgres/postgres.git synced 2025-06-04 12:42:24 +03:00

Add error pattern checks for some TAP tests for non-existing objects

Some tests are updated to use command_fails_like(), gaining a check for
the error output generated.  The test changed in pg_amcheck has come up
after noticing that an incorrect option name still made the test to
pass, while the command failed.  The three other tests changed in
src/bin/scripts/ have been noticed by me, in passing.

Author: Dagfinn Ilmari Mannsåker, Michael Paquier
Discussion: https://postgr.es/m/87bjvy50cs.fsf@wibble.ilmari.org
This commit is contained in:
Michael Paquier 2025-01-23 16:03:48 +09:00
parent 858b4db378
commit eef4a33f62
4 changed files with 13 additions and 4 deletions

View File

@ -85,7 +85,10 @@ $node->command_checks_all(
# Failing to connect to the initial database due to bad username is an error.
$node->command_checks_all(
[ 'pg_amcheck', '--username' => 'no_such_user', 'postgres' ],
1, [qr/^$/], [], 'checking with a non-existent user');
1,
[qr/^$/],
[qr/role "no_such_user" does not exist/],
'checking with a non-existent user');
#########################################
# Test checking databases without amcheck installed

View File

@ -21,7 +21,9 @@ $node->issues_sql_like(
qr/statement: CLUSTER;/,
'SQL CLUSTER run');
$node->command_fails([ 'clusterdb', '--table' => 'nonexistent' ],
$node->command_fails_like(
[ 'clusterdb', '--table' => 'nonexistent' ],
qr/relation "nonexistent" does not exist/,
'fails with nonexistent table');
$node->safe_psql('postgres',

View File

@ -28,7 +28,9 @@ $node->issues_sql_like(
qr/statement: DROP DATABASE foobar2 WITH \(FORCE\);/,
'SQL DROP DATABASE (FORCE) run');
$node->command_fails([ 'dropdb', 'nonexistent' ],
$node->command_fails_like(
[ 'dropdb', 'nonexistent' ],
qr/database "nonexistent" does not exist/,
'fails with nonexistent database');
# check that invalid database can be dropped with dropdb

View File

@ -22,7 +22,9 @@ $node->issues_sql_like(
qr/statement: DROP ROLE regress_foobar1/,
'SQL DROP ROLE run');
$node->command_fails([ 'dropuser', 'regress_nonexistent' ],
$node->command_fails_like(
[ 'dropuser', 'regress_nonexistent' ],
qr/role "regress_nonexistent" does not exist/,
'fails with nonexistent user');
done_testing();