aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorRichard Levitte <levitte@openssl.org>2016-03-29 19:36:55 +0200
committerRichard Levitte <levitte@openssl.org>2016-03-30 18:44:18 +0200
commitb8fcd4f079121179f1511fbed5150209c798ce4d (patch)
treea243440c05cd2a3587d882c4a085ccb50cdea2e2 /test
parentd2ec189fdd6d734c21d4067340cc96a0c4ce0595 (diff)
downloadopenssl-b8fcd4f079121179f1511fbed5150209c798ce4d.tar.gz
Add the option 'interpreter_args' to perlapps() and perltest()
The intention with that option is to allow extra flags to the perl interpreter itself. Reviewed-by: Emilia Käsper <emilia@openssl.org>
Diffstat (limited to 'test')
-rw-r--r--test/testlib/OpenSSL/Test.pm24
1 files changed, 21 insertions, 3 deletions
diff --git a/test/testlib/OpenSSL/Test.pm b/test/testlib/OpenSSL/Test.pm
index 2b0c0506c8..36bb571dfc 100644
--- a/test/testlib/OpenSSL/Test.pm
+++ b/test/testlib/OpenSSL/Test.pm
@@ -244,7 +244,23 @@ string PATH, I<or>, if the value is C<undef>, C</dev/null> or similar.
=item B<perltest ARRAYREF, OPTS>
Both these functions function the same way as B<app> and B<test>, except
-that they expect the command to be a perl script.
+that they expect the command to be a perl script. Also, they support one
+more option:
+
+=over 4
+
+=item B<interpreter_args =E<gt> ARRAYref>
+
+The array reference is a set of arguments for perl rather than the script.
+Take care so that none of them can be seen as a script! Flags and their
+eventual arguments only!
+
+=back
+
+An example:
+
+ ok(run(perlapp(["foo.pl", "arg1"],
+ interpreter_args => [ "-I", srctop_dir("test") ])));
=back
@@ -801,6 +817,7 @@ sub __build_cmd {
my $path_builder = shift;
# Make a copy to not destroy the caller's array
my @cmdarray = ( @{$_[0]} ); shift;
+ my %opts = @_;
# We do a little dance, as $path_builder might return a list of
# more than one. If so, only the first is to be considered a
@@ -820,8 +837,9 @@ sub __build_cmd {
}
}
my @args = (@prog, @cmdarray);
-
- my %opts = @_;
+ if (defined($opts{interpreter_args})) {
+ unshift @args, @{$opts{interpreter_args}};
+ }
return () if !$cmd;