Expand closed STDERR test, check actual exception
Peter Rabbitson [Mon, 7 Jul 2014 22:34:24 +0000 (00:34 +0200)]
t/storage/debug.t

index d16e129..ce85bc5 100644 (file)
@@ -4,6 +4,7 @@ no warnings 'once';
 
 use Test::More;
 use Test::Exception;
+use Try::Tiny;
 use lib qw(t/lib);
 use DBICTest;
 use Path::Class qw/file/;
@@ -53,12 +54,21 @@ END {
 }
 
 open(STDERRCOPY, '>&STDERR');
-close(STDERR);
-dies_ok {
+
+# STDERR will be closed, no T::B diag in blocks
+my $exception = try {
+  close(STDERR);
   $schema->resultset('CD')->search({})->count;
-} 'Died on closed FH';
+} catch {
+  $_
+} finally {
+  # restore STDERR
+  open(STDERR, '>&STDERRCOPY');
+};
+
+like $exception, qr/\QDuplication of STDERR for debug output failed (perhaps your STDERR is closed?)/;
+
 
-open(STDERR, '>&STDERRCOPY');
 
 # test debugcb and debugobj protocol
 {