Select Git revision
-
Peter Eisentraut authoredPeter Eisentraut authored
TestLib.pm 4.18 KiB
package TestLib;
use strict;
use warnings;
use Exporter 'import';
our @EXPORT = qw(
tempdir
start_test_server
restart_test_server
psql
system_or_bail
command_ok
command_fails
command_exit_is
program_help_ok
program_version_ok
program_options_handling_ok
command_like
issues_sql_like
);
use Cwd;
use File::Spec;
use File::Temp ();
use Test::More;
BEGIN
{
eval {
require IPC::Run;
import IPC::Run qw(run start);
1;
} or do
{
plan skip_all => "IPC::Run not available";
}
}
delete $ENV{PGCONNECT_TIMEOUT};
delete $ENV{PGDATA};
delete $ENV{PGDATABASE};
delete $ENV{PGHOSTADDR};
delete $ENV{PGREQUIRESSL};
delete $ENV{PGSERVICE};
delete $ENV{PGSSLMODE};
delete $ENV{PGUSER};
if (!$ENV{PGPORT})
{
$ENV{PGPORT} = 65432;
}
$ENV{PGPORT} = int($ENV{PGPORT}) % 65536;
#
# Helper functions
#
sub tempdir
{
return File::Temp::tempdir('tmp_testXXXX', DIR => $ENV{TESTDIR} || cwd(), CLEANUP => 1);
}
my ($test_server_datadir, $test_server_logfile);
sub start_test_server