diff options
author | Alvaro Herrera | 2016-03-03 20:58:30 +0000 |
---|---|---|
committer | Alvaro Herrera | 2016-03-03 20:58:30 +0000 |
commit | 2c83f435a3deca745c666e9778229d64cb2dfc79 (patch) | |
tree | 4fd862e34299e2abee0fbd58e075a9fbdb3fbf66 /src/bin/scripts | |
parent | 7d9a4301c08148509136c296866196f6b19ee2c2 (diff) |
Rework PostgresNode's psql method
This makes the psql() method much more capable: it captures both stdout
and stderr; it now returns the psql exit code rather than stdout; a
timeout can now be specified, as can ON_ERROR_STOP behavior; it gained a
new "on_error_die" (defaulting to off) parameter to raise an exception
if there's any problem. Finally, additional parameters to psql can be
passed if there's need for further tweaking.
For convenience, a new safe_psql() method retains much of the old
behavior of psql(), except that it uses on_error_die on, so that
problems like syntax errors in SQL commands can be detected more easily.
Many existing TAP test files now use safe_psql, which is what is really
wanted. A couple of ->psql() calls are now added in the commit_ts
tests, which verify that the right thing is happening on certain errors.
Some ->command_fails() calls in recovery tests that were verifying that
psql failed also became ->psql() calls now.
Author: Craig Ringer. Some tweaks by Álvaro Herrera
Reviewed-By: Michaël Paquier
Diffstat (limited to 'src/bin/scripts')
-rw-r--r-- | src/bin/scripts/t/010_clusterdb.pl | 2 | ||||
-rw-r--r-- | src/bin/scripts/t/030_createlang.pl | 2 | ||||
-rw-r--r-- | src/bin/scripts/t/050_dropdb.pl | 2 | ||||
-rw-r--r-- | src/bin/scripts/t/070_dropuser.pl | 2 | ||||
-rw-r--r-- | src/bin/scripts/t/090_reindexdb.pl | 2 |
5 files changed, 5 insertions, 5 deletions
diff --git a/src/bin/scripts/t/010_clusterdb.pl b/src/bin/scripts/t/010_clusterdb.pl index 11d678a8676..0e677cacf18 100644 --- a/src/bin/scripts/t/010_clusterdb.pl +++ b/src/bin/scripts/t/010_clusterdb.pl @@ -21,7 +21,7 @@ $node->issues_sql_like( $node->command_fails([ 'clusterdb', '-t', 'nonexistent' ], 'fails with nonexistent table'); -$node->psql('postgres', +$node->safe_psql('postgres', 'CREATE TABLE test1 (a int); CREATE INDEX test1x ON test1 (a); CLUSTER test1 USING test1x' ); $node->issues_sql_like( diff --git a/src/bin/scripts/t/030_createlang.pl b/src/bin/scripts/t/030_createlang.pl index 38e351670d0..ffbd35dcc5a 100644 --- a/src/bin/scripts/t/030_createlang.pl +++ b/src/bin/scripts/t/030_createlang.pl @@ -16,7 +16,7 @@ $node->start; $node->command_fails([ 'createlang', 'plpgsql' ], 'fails if language already exists'); -$node->psql('postgres', 'DROP EXTENSION plpgsql'); +$node->safe_psql('postgres', 'DROP EXTENSION plpgsql'); $node->issues_sql_like( [ 'createlang', 'plpgsql' ], qr/statement: CREATE EXTENSION "plpgsql"/, diff --git a/src/bin/scripts/t/050_dropdb.pl b/src/bin/scripts/t/050_dropdb.pl index fb4f6564811..25aa54a4ae4 100644 --- a/src/bin/scripts/t/050_dropdb.pl +++ b/src/bin/scripts/t/050_dropdb.pl @@ -13,7 +13,7 @@ my $node = get_new_node('main'); $node->init; $node->start; -$node->psql('postgres', 'CREATE DATABASE foobar1'); +$node->safe_psql('postgres', 'CREATE DATABASE foobar1'); $node->issues_sql_like( [ 'dropdb', 'foobar1' ], qr/statement: DROP DATABASE foobar1/, diff --git a/src/bin/scripts/t/070_dropuser.pl b/src/bin/scripts/t/070_dropuser.pl index 22079f6742c..166a591d0a1 100644 --- a/src/bin/scripts/t/070_dropuser.pl +++ b/src/bin/scripts/t/070_dropuser.pl @@ -13,7 +13,7 @@ my $node = get_new_node('main'); $node->init; $node->start; -$node->psql('postgres', 'CREATE ROLE foobar1'); +$node->safe_psql('postgres', 'CREATE ROLE foobar1'); $node->issues_sql_like( [ 'dropuser', 'foobar1' ], qr/statement: DROP ROLE foobar1/, diff --git a/src/bin/scripts/t/090_reindexdb.pl b/src/bin/scripts/t/090_reindexdb.pl index 7f57af8e391..d92896f34f6 100644 --- a/src/bin/scripts/t/090_reindexdb.pl +++ b/src/bin/scripts/t/090_reindexdb.pl @@ -20,7 +20,7 @@ $node->issues_sql_like( qr/statement: REINDEX DATABASE postgres;/, 'SQL REINDEX run'); -$node->psql('postgres', +$node->safe_psql('postgres', 'CREATE TABLE test1 (a int); CREATE INDEX test1x ON test1 (a);'); $node->issues_sql_like( [ 'reindexdb', '-t', 'test1', 'postgres' ], |