This small patch authored by my colleague Craig Ringer enhances
Testlib's command_fails_like by allowing the passing of extra keyword
type arguments. The keyword initially recognized is 'extra_ipcrun_opts'.
The value for this keyword needs to be an array, and is passed through
to the call to IPC::Run.
Some patches I will be submitting shortly rely on this enhancement.
cheers
andrew
--
Andrew Dunstan https://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
diff --git a/src/test/perl/TestLib.pm b/src/test/perl/TestLib.pm
index 905d0d178f..5264111d00 100644
--- a/src/test/perl/TestLib.pm
+++ b/src/test/perl/TestLib.pm
@@ -771,10 +771,16 @@ the given regular expression.
sub command_fails_like
{
local $Test::Builder::Level = $Test::Builder::Level + 1;
- my ($cmd, $expected_stderr, $test_name) = @_;
+ my ($cmd, $expected_stderr, $test_name, %kwargs) = @_;
+ my @extra_ipcrun_opts = ();
+ if (defined($kwargs{'extra_ipcrun_opts'}))
+ {
+ push(@extra_ipcrun_opts, @{$kwargs{'extra_ipcrun_opts'}});
+ }
my ($stdout, $stderr);
print("# Running: " . join(" ", @{$cmd}) . "\n");
- my $result = IPC::Run::run $cmd, '>', \$stdout, '2>', \$stderr;
+ my $result = IPC::Run::run $cmd, '>', \$stdout, '2>', \$stderr,
+ @extra_ipcrun_opts;
ok(!$result, "$test_name: exit code not 0");
like($stderr, $expected_stderr, "$test_name: matches");
return;