diff options
author | Richard Levitte <levitte@openssl.org> | 2016-03-29 19:36:55 +0200 |
---|---|---|
committer | Richard Levitte <levitte@openssl.org> | 2016-03-30 18:44:18 +0200 |
commit | b8fcd4f079121179f1511fbed5150209c798ce4d (patch) | |
tree | a243440c05cd2a3587d882c4a085ccb50cdea2e2 /test/testlib | |
parent | d2ec189fdd6d734c21d4067340cc96a0c4ce0595 (diff) |
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/testlib')
-rw-r--r-- | test/testlib/OpenSSL/Test.pm | 24 |
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; |