aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Guldstrand <andreas.guldstrand@gmail.com>2016-05-26 00:26:48 +0200
committerAndreas Guldstrand <andreas.guldstrand@gmail.com>2016-05-26 00:26:48 +0200
commitda2f4da2ffe22ba9d4704f46b31b50c2d368fe3f (patch)
tree5a5ae18abdce29a2becbcfdc6b520dd2b1d7ac2f
parent3204f1b97fb828a7db0b133ca54cd74ea699cb62 (diff)
downloadsbotools2-da2f4da2ffe22ba9d4704f46b31b50c2d368fe3f.tar.xz
22-race.t: add tests for exit branch in get_slack_version()
-rwxr-xr-xt/22-race.t22
1 files changed, 20 insertions, 2 deletions
diff --git a/t/22-race.t b/t/22-race.t
index 7fbe081..920635e 100755
--- 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";
+}