diff options
author | Andreas Guldstrand <andreas.guldstrand@gmail.com> | 2016-08-02 19:44:20 +0200 |
---|---|---|
committer | Andreas Guldstrand <andreas.guldstrand@gmail.com> | 2016-08-02 19:44:20 +0200 |
commit | 0181216222989429b67c7c3255a7b505b1d5569b (patch) | |
tree | 3092d7a264398e575548c8eb1d600cabc0426812 | |
parent | c8924920c00a522f04535739d5bd4d86f80ac3f4 (diff) | |
download | sbotools2-0181216222989429b67c7c3255a7b505b1d5569b.tar.xz |
Test::Sbotools: add load() for loading the code of a script
-rw-r--r-- | t/Test/Sbotools.pm | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/t/Test/Sbotools.pm b/t/Test/Sbotools.pm index 4cdd286..ab7468c 100644 --- a/t/Test/Sbotools.pm +++ b/t/Test/Sbotools.pm @@ -32,6 +32,7 @@ our @EXPORT_OK = qw/ make_slackbuilds_txt restore_perf_dummy replace_tags_txt + load /; local $Test::Builder::Level = $Test::Builder::Level + 1; @@ -149,4 +150,22 @@ END { } } +sub load { + my ($script, %opts) = @_; + + local @ARGV = exists $opts{argv} ? @{ $opts{argv} } : '-h'; + my ($ret, $exit, $out, $do_err); + my $eval = eval { + $out = capture_merged { $exit = exit_code { + $ret = do "$RealBin/../$script"; + $do_err = $@; + }; }; + 1; + }; + my $err = $@; + + note explain { ret => $ret, exit => $exit, out => $out, eval => $eval, err => $err, do_err => $do_err } if $opts{explain}; +} + + 1; |