sbotools2

Maintenance fork of the original sbotools version 2
Log | Files | Refs | README

commit da2f4da2ffe22ba9d4704f46b31b50c2d368fe3f
parent 3204f1b97fb828a7db0b133ca54cd74ea699cb62
Author: Andreas Guldstrand <andreas.guldstrand@gmail.com>
Date:   Thu, 26 May 2016 00:26:48 +0200

22-race.t: add tests for exit branch in get_slack_version()

Diffstat:
Mt/22-race.t | 22++++++++++++++++++++--
1 file changed, 20 insertions(+), 2 deletions(-)

diff --git a/t/22-race.t b/t/22-race.t @@ -6,11 +6,11 @@ use Test::More; use Test::Exit; use FindBin '$RealBin'; use lib "$RealBin/../SBO-Lib/lib"; -use SBO::Lib qw/ open_fh /; +use SBO::Lib qw/ open_fh %config /; use Capture::Tiny qw/ capture_merged /; use File::Temp 'tempdir'; -plan tests => 2; +plan tests => 4; sub emulate_race { my ($file, $caller) = @_; @@ -46,3 +46,21 @@ sub emulate_race { system('mv', "$conf_file.bak", $conf_file) if -e "$conf_file.bak"; } + +# 3-4: emulate race in open_fh by get_slack_version +{ + my $sv_file = '/etc/slackware-version'; + system('mkdir', '-p', '/etc'); + system('mv', $sv_file, "$sv_file.bak"); + system('touch', $sv_file); + + my $exit; + emulate_race($sv_file, 'open_fh'); + local $config{SLACKWARE_VERSION} = 'FALSE'; + my $out = capture_merged { $exit = exit_code { SBO::Lib::get_slack_version(); }; }; + + is ($exit, 6, 'get_slackware_version() exited with correct exitcode'); + is ($out, "Unable to open $sv_file.\n", 'get_slackware_version output correct'); + + system('mv', "$sv_file.bak", $sv_file) if -e "$sv_file.bak"; +}