mirror of
https://github.com/percona/pg_stat_monitor.git
synced 2026-02-04 05:56:21 +00:00
PG-451: Fix regression failures in main branch.
Regression was failing in main branch after merging REL_1_STABLE. Changes to stablise the regression are summarised below. Updated following TAP testcase with 'where' clause for filtering GUC specific row from settings view. Intention is to fetch only GUC value and test it. 1) t/001_settings_default.pl 2) t/002_settings_pgsm_track_planning.pl 3) t/003_settings_pgms_extract_comments.pl 4) t/004_settings_pgsm_track.pl 5) t/005_settings_pgsm_enable_query_plan.pl 6) t/006_settings_pgsm_overflow_target.pl 7) t/007_settings_pgsm_query_shared_buffer.pl 8) t/008_settings_pgsm_histogram_buckets.pl 9) t/009_settings_pgsm_histogram_max.pl 10) t/010_settings_pgsm_histogram_min.pl 11) t/011_settings_pgsm_bucket_time.pl 12) t/012_settings_pgsm_max_buckets.pl 13) t/013_settings_pgsm_normalized_query.pl 14) t/014_settings_pgsm_track_utility.pl 15) t/015_settings_pgsm_query_max_len.pl 16) t/016_settings_pgsm_max.pl Updated following expected files for TAP testcase where testcase was updated with 'where' clause to filter GUC specific row only from settings view. 1) t/expected/001_settings_default.out 2) t/expected/002_settings_pgsm_track.outanning.out 3) t/expected/003_settings_pgms_extract_comments.out 4) t/expected/004_settings_pgsm_track.out 5) t/expected/005_settings_pgsm_enable_query.out 6) t/expected/006_settings_pgsm_overflow_target.out 7) t/expected/007_settings_pgsm_query_shared_buffer.out 8) t/expected/008_settings_pgsm_histogram_buckets.out 9) t/expected/009_settings_pgsm_histogram_max.out 10) t/expected/010_settings_pgsm_histogram_min.out 11) t/expected/011_settings_pgsm_bucket_time.out 12) t/expected/012_settings_pgsm_max_buckets.out 13) t/expected/013_settings_pgsm_normalized_query.out 14) t/expected/014_settings_pgsm_track_utility.out 15) t/expected/015_settings_pgsm_query_max_len.out 16) t/expected/016_settings_pgsm_max.out 17) t/expected/017_execution_stats.out Updated expected files for following sql based testcases due to changed default value of pgsm_normalized_query. 1) error_insert_1.out 2) guc_1.out 3) top_query_1.out Enabled GUC pgsm_normalized_query to 'yes' for following testcases. 1) t/024_check_timings.pl 2) t/025_compare_pgss.pl 3) t/026_shared_blocks.pl Added the output file for histogram testcase to accomodate behaviour. Changes suggested by Ibrar to make regression more modular (PG-440), are also made part of regression so those these can used for future improvements. Removed commented/unneeded steps from t/017_execution_stats.pl. Updated testcase tags.sql and output file tags.out to accomodate enabling of pgsm_extract_comments to yes. Updated error_1.out output file with required output, it was overwritten in one of previous commits. Updated test condition (count of calls and bucket) in t/023_missing_queries.pl as per comment from Ibrar in PG-461 where PGSM does not track the pg_sleep in some cases.
This commit is contained in:
72
t/pgsm.pm
Normal file
72
t/pgsm.pm
Normal file
@@ -0,0 +1,72 @@
|
||||
package pgsm;
|
||||
|
||||
use String::Util qw(trim);
|
||||
use File::Basename;
|
||||
use File::Compare;
|
||||
use PostgresNode;
|
||||
use Test::More;
|
||||
|
||||
our @ISA= qw( Exporter );
|
||||
|
||||
# these CAN be exported.
|
||||
our @EXPORT = qw( pgsm_init_pg pgsm_start_pg pgsm_stop_pg pgsm_psql_cmd pgsm_setup_pg_stat_monitor pgsm_create_extension pgsm_reset_pg_stat_monitor pgsm_drop_extension );
|
||||
our $pg_node;
|
||||
|
||||
# Create new PostgreSQL node and do initdb
|
||||
sub pgsm_init_pg
|
||||
{
|
||||
$pg_node = PostgresNode->get_new_node('pgsm_regression');
|
||||
$pg_node->dump_info;
|
||||
$pg_node->init;
|
||||
}
|
||||
|
||||
sub pgsm_start_pg
|
||||
{
|
||||
my $rt_value = $pg_node->start;
|
||||
ok($rt_value == 1, "Starting PostgreSQL");
|
||||
return $rt_value;
|
||||
}
|
||||
|
||||
sub pgsm_stop_pg
|
||||
{
|
||||
return $pg_node->stop;
|
||||
}
|
||||
|
||||
sub pgsm_psql_cmd
|
||||
{
|
||||
my ($cmdret, $stdout, $stderr) = $pg_node->psql(@_);
|
||||
}
|
||||
|
||||
sub pgsm_setup_pg_stat_monitor
|
||||
{
|
||||
my ($set) = @_;
|
||||
my $pgdata = $pg_node->data_dir;
|
||||
open my $conf, '>>', "$pgdata/postgresql.conf";
|
||||
print $conf "shared_preload_libraries = 'pg_stat_monitor'\n";
|
||||
print $conf "$set\n";
|
||||
close $conf;
|
||||
}
|
||||
|
||||
sub pgsm_create_extension
|
||||
{
|
||||
my ($cmdret, $stdout, $stderr) = $pg_node->psql('postgres', 'CREATE EXTENSION pg_stat_monitor;', extra_params => ['-a']);
|
||||
ok($cmdret == 0, "CREATE EXTENSION pg_stat_monitor...");
|
||||
return ($cmdret, $stdout, $stderr);
|
||||
}
|
||||
|
||||
sub pgsm_reset_pg_stat_monitor
|
||||
{
|
||||
# Run required commands/queries and dump output to out file.
|
||||
($cmdret, $stdout, $stderr) = $pg_node->psql('postgres', 'SELECT pg_stat_monitor_reset();', extra_params => ['-a', '-Pformat=aligned','-Ptuples_only=off']);
|
||||
ok($cmdret == 0, "Reset pg_stat_monitor...");
|
||||
return ($cmdret, $stdout, $stderr);
|
||||
}
|
||||
|
||||
sub pgsm_drop_extension
|
||||
{
|
||||
my ($cmdret, $stdout) = $pg_node->safe_psql('postgres', 'Drop extension pg_stat_monitor;', extra_params => ['-a']);
|
||||
ok($cmdret == 0, "DROP EXTENSION pg_stat_monitor...");
|
||||
return ($cmdret, $stdout, $stderr);
|
||||
}
|
||||
1;
|
||||
|
||||
Reference in New Issue
Block a user