mirror of
https://github.com/timescale/timescaledb.git
synced 2025-05-16 18:43:18 +08:00
Use subclassing to inherit from `PostgresNode` and create a hierarchy containing `AccessNode` and `DataNode` to simplify creating tests with multiple nodes. Also, two new functions are added: `TimescaleNode::create`: Creates the new node by calling `get_new_node`, `init` and `start` in that order. `AccessNode::add_data_node`: Adds a new data node to the access node. Also rewrite the test to use the new hierarchy.
51 lines
1.3 KiB
Perl
51 lines
1.3 KiB
Perl
# This file and its contents are licensed under the Timescale License.
|
|
# Please see the included NOTICE for copyright information and
|
|
# LICENSE-TIMESCALE for a copy of the license.
|
|
|
|
# This class extends PostgresNode with Timescale-specific
|
|
# routines for setup.
|
|
|
|
package TimescaleNode;
|
|
use parent qw(PostgresNode);
|
|
use TestLib qw(slurp_file);
|
|
use strict;
|
|
use warnings;
|
|
|
|
use Carp 'verbose';
|
|
$SIG{__DIE__} = \&Carp::confess;
|
|
|
|
sub create
|
|
{
|
|
my ($class, $name, %kwargs) = @_;
|
|
my $self = $class->get_new_node($name);
|
|
$self->init(%kwargs);
|
|
$self->start(%kwargs);
|
|
$self->safe_psql('postgres', 'CREATE EXTENSION timescaledb');
|
|
return $self;
|
|
}
|
|
|
|
# initialize the data directory and add TS specific parameters
|
|
sub init
|
|
{
|
|
my ($self, %kwargs) = @_;
|
|
|
|
$self->SUPER::init(%kwargs);
|
|
# append into postgresql.conf from Timescale
|
|
# template config file
|
|
$self->append_conf('postgresql.conf',
|
|
TestLib::slurp_file("$ENV{'BUILDIR'}/tsl/test/postgresql.conf"));
|
|
}
|
|
|
|
# helper function to check output from PSQL for a query
|
|
sub psql_is
|
|
{
|
|
my ($self, $db, $query, $expected_stdout, $testname) = @_;
|
|
my ($psql_rc, $psql_out, $psql_err) = $self->SUPER::psql($db, $query);
|
|
PostgresNode::ok(!$psql_rc, "$testname: err_code check");
|
|
PostgresNode::is($psql_err, '', "$testname: error_msg check");
|
|
PostgresNode::is($psql_out, $expected_stdout,
|
|
"$testname: psql output check");
|
|
}
|
|
|
|
1;
|