aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Guldstrand <andreas.guldstrand@gmail.com>2016-08-02 19:44:20 +0200
committerAndreas Guldstrand <andreas.guldstrand@gmail.com>2016-08-02 19:44:20 +0200
commit0181216222989429b67c7c3255a7b505b1d5569b (patch)
tree3092d7a264398e575548c8eb1d600cabc0426812
parentc8924920c00a522f04535739d5bd4d86f80ac3f4 (diff)
downloadsbotools2-0181216222989429b67c7c3255a7b505b1d5569b.tar.xz
Test::Sbotools: add load() for loading the code of a script
-rw-r--r--t/Test/Sbotools.pm19
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;