diff options
author | Andreas Guldstrand <andreas.guldstrand@gmail.com> | 2016-06-05 03:21:06 +0200 |
---|---|---|
committer | Andreas Guldstrand <andreas.guldstrand@gmail.com> | 2016-06-05 03:21:06 +0200 |
commit | bd417b768e84cf733d0b5813545107c95953ba05 (patch) | |
tree | e4fe611bf9215e0840399aa82031c6d469ae42dc /t/23-unit-sboclean.t | |
parent | fda0360e34556d205ea05f2bbe5671679b3e7129 (diff) | |
download | sbotools2-bd417b768e84cf733d0b5813545107c95953ba05.tar.xz |
01-unit.t: separate out the sboclean and sboconfig unit tests into their own files
Diffstat (limited to 't/23-unit-sboclean.t')
-rwxr-xr-x | t/23-unit-sboclean.t | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/t/23-unit-sboclean.t b/t/23-unit-sboclean.t new file mode 100755 index 0000000..399eedc --- /dev/null +++ b/t/23-unit-sboclean.t @@ -0,0 +1,49 @@ +#!/usr/bin/env perl + +use strict; +use warnings; +use Test::More; +use Test::Exit; +use FindBin '$RealBin'; +use lib "$RealBin/../SBO-Lib/lib"; +use Capture::Tiny qw/ capture_merged /; +use File::Temp 'tempdir'; +use Cwd; + +plan tests => 4; + +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-4: sboclean unit tests... +{ + local (*main::show_usage, *main::rm_full, *main::remove_stuff, *main::clean_c32); + load('sboclean'); + + my $exit; + my $out = capture_merged { $exit = exit_code { main::rm_full(); }; }; + + is ($out, "A fatal script error has occurred:\nrm_full requires an argument.\nExiting.\n", "sboclean's rm_full() gave correct output"); + is ($exit, 2, "sboclean's rm_full() gave correct exit status"); + + undef $exit; + undef $out; + $out = capture_merged { $exit = exit_code { main::remove_stuff(); }; }; + + is ($out, "A fatal script error has occurred:\nremove_stuff requires an argument.\nExiting.\n", "sboclean's remove_stuff() gave correct output"); + is ($exit, 2, "sboclean's remove_stuff() gave correct exit status"); +} |