mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-09-04 22:27:19 +02:00
Add more $Test::Builder::Level in the TAP tests
Incrementing the level of the call stack reported is useful for debugging purposes as it allows to control which part of the test is exactly failing, especially if a test is structured with subroutines that call routines from Test::More. This adds more incrementations of $Test::Builder::Level where debugging gets improved (for example it does not make sense for some paths like pg_rewind where long subroutines are used). A note is added to src/test/perl/README about that, based on a suggestion from Andrew Dunstan and a wording coming from both of us. Usage of Test::Builder::Level has spread in 12, so a backpatch down to this version is done. Reviewed-by: Andrew Dunstan, Peter Eisentraut, Daniel Gustafsson Discussion: https://postgr.es/m/YV1CCFwgM1RV1LeS@paquier.xyz Backpatch-through: 12
This commit is contained in:
parent
2288973744
commit
d5ab331a33
@ -69,6 +69,8 @@ command_fails_like(
|
|||||||
|
|
||||||
sub run_check
|
sub run_check
|
||||||
{
|
{
|
||||||
|
local $Test::Builder::Level = $Test::Builder::Level + 1;
|
||||||
|
|
||||||
my ($suffix, $test_name) = @_;
|
my ($suffix, $test_name) = @_;
|
||||||
|
|
||||||
create_files();
|
create_files();
|
||||||
|
@ -203,6 +203,8 @@ sub test_access
|
|||||||
# As above, but test for an arbitrary query result.
|
# As above, but test for an arbitrary query result.
|
||||||
sub test_query
|
sub test_query
|
||||||
{
|
{
|
||||||
|
local $Test::Builder::Level = $Test::Builder::Level + 1;
|
||||||
|
|
||||||
my ($node, $role, $query, $expected, $gssencmode, $test_name) = @_;
|
my ($node, $role, $query, $expected, $gssencmode, $test_name) = @_;
|
||||||
|
|
||||||
# need to connect over TCP/IP for Kerberos
|
# need to connect over TCP/IP for Kerberos
|
||||||
|
@ -61,9 +61,17 @@ Test::More::like entails use of the qr// operator. Avoid Perl 5.8.8 bug
|
|||||||
#39185 by not using the "$" regular expression metacharacter in qr// when also
|
#39185 by not using the "$" regular expression metacharacter in qr// when also
|
||||||
using the "/m" modifier. Instead of "$", use "\n" or "(?=\n|\z)".
|
using the "/m" modifier. Instead of "$", use "\n" or "(?=\n|\z)".
|
||||||
|
|
||||||
Read the Test::More documentation for more on how to write tests:
|
Test::Builder::Level controls how far up in the call stack a test will look
|
||||||
|
at when reporting a failure. This should be incremented by any subroutine
|
||||||
|
which directly or indirectly calls test routines from Test::More, such as
|
||||||
|
ok() or is():
|
||||||
|
|
||||||
|
local $Test::Builder::Level = $Test::Builder::Level + 1;
|
||||||
|
|
||||||
|
Read the documentation for more on how to write tests:
|
||||||
|
|
||||||
perldoc Test::More
|
perldoc Test::More
|
||||||
|
perldoc Test::Builder
|
||||||
|
|
||||||
For available PostgreSQL-specific test methods and some example tests read the
|
For available PostgreSQL-specific test methods and some example tests read the
|
||||||
perldoc for the test modules, e.g.:
|
perldoc for the test modules, e.g.:
|
||||||
|
@ -72,6 +72,8 @@ note "testing connection parameter \"target_session_attrs\"";
|
|||||||
# target_session_attrs with multiple nodes.
|
# target_session_attrs with multiple nodes.
|
||||||
sub test_target_session_attrs
|
sub test_target_session_attrs
|
||||||
{
|
{
|
||||||
|
local $Test::Builder::Level = $Test::Builder::Level + 1;
|
||||||
|
|
||||||
my $node1 = shift;
|
my $node1 = shift;
|
||||||
my $node2 = shift;
|
my $node2 = shift;
|
||||||
my $target_node = shift;
|
my $target_node = shift;
|
||||||
|
@ -10,6 +10,8 @@ use Test::More tests => 8;
|
|||||||
# count to reach $num_rows, yet not later than the recovery target.
|
# count to reach $num_rows, yet not later than the recovery target.
|
||||||
sub test_recovery_standby
|
sub test_recovery_standby
|
||||||
{
|
{
|
||||||
|
local $Test::Builder::Level = $Test::Builder::Level + 1;
|
||||||
|
|
||||||
my $test_name = shift;
|
my $test_name = shift;
|
||||||
my $node_name = shift;
|
my $node_name = shift;
|
||||||
my $node_master = shift;
|
my $node_master = shift;
|
||||||
|
@ -14,6 +14,8 @@ my $check_sql =
|
|||||||
# the configuration file is reloaded before the test.
|
# the configuration file is reloaded before the test.
|
||||||
sub test_sync_state
|
sub test_sync_state
|
||||||
{
|
{
|
||||||
|
local $Test::Builder::Level = $Test::Builder::Level + 1;
|
||||||
|
|
||||||
my ($self, $expected, $msg, $setting) = @_;
|
my ($self, $expected, $msg, $setting) = @_;
|
||||||
|
|
||||||
if (defined($setting))
|
if (defined($setting))
|
||||||
|
@ -11,6 +11,8 @@ my $psql_rc = '';
|
|||||||
|
|
||||||
sub configure_and_reload
|
sub configure_and_reload
|
||||||
{
|
{
|
||||||
|
local $Test::Builder::Level = $Test::Builder::Level + 1;
|
||||||
|
|
||||||
my ($node, $parameter) = @_;
|
my ($node, $parameter) = @_;
|
||||||
my $name = $node->name;
|
my $name = $node->name;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user