aboutsummaryrefslogtreecommitdiff
path: root/t
diff options
context:
space:
mode:
Diffstat (limited to 't')
-rwxr-xr-xt/30-race-sboconfig.t34
1 files changed, 34 insertions, 0 deletions
diff --git a/t/30-race-sboconfig.t b/t/30-race-sboconfig.t
new file mode 100755
index 0000000..8b245e2
--- /dev/null
+++ b/t/30-race-sboconfig.t
@@ -0,0 +1,34 @@
+#!/usr/bin/env perl
+
+use strict;
+use warnings;
+use Test::More;
+use Test::Exit;
+use FindBin '$RealBin';
+use lib $RealBin;
+use Test::Sbotools 'load';
+use Capture::Tiny qw/ capture_merged /;
+use File::Temp 'tempdir';
+use Cwd;
+
+plan tests => 2;
+
+# 1-2: sbocheck race test...
+{
+ load('sboconfig');
+
+ my $file = "/etc/sbotools/sbotools.conf";
+ mkdir "/etc/sbotools";
+ rename $file, "$file.bak";
+
+ no warnings 'redefine', 'once';
+ local *main::open_fh = sub { return "Unable to open $file.\n", 6; };
+
+ my $exit;
+ my $out = capture_merged { $exit = exit_code { main::config_write(1,2); }; };
+
+ like ($out, qr/\QUnable to open $file./, "sboconfig's config_write() gave correct output");
+ is ($exit, 6, "sboconfig's config_write() exited with 6");
+
+ rename "$file.bak", $file;
+}