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;