]> git.vpit.fr Git - perl/modules/rgit.git/blobdiff - t/16-levels.t
Add a diagnostics mode. Only print infos when this mode is enabled
[perl/modules/rgit.git] / t / 16-levels.t
diff --git a/t/16-levels.t b/t/16-levels.t
new file mode 100644 (file)
index 0000000..9a4410d
--- /dev/null
@@ -0,0 +1,39 @@
+#!perl
+
+use strict;
+use warnings;
+
+use Test::More tests => 4;
+
+use App::Rgit::Config;
+use App::Rgit::Utils qw/:levels/;
+
+local $SIG{__WARN__} = sub { diag @_ };
+local $SIG{__DIE__} = sub { diag @_ };
+
+my %levels = (
+ info => INFO,
+ warn => WARN,
+ err  => ERR,
+ crit => CRIT,
+);
+my @levels = sort { $levels{$b} <=> $levels{$a} } keys %levels;
+
+my $olderr;
+open $olderr, '>&', \*STDERR or die "Can't dup STDERR: $!";
+
+for my $l (0 .. $#levels) {
+ my $arc = App::Rgit::Config->new(
+  root  => 't',
+  git   => 't/bin/git',
+  debug => $levels{$levels[$l]}
+ );
+ my $buf = '';
+ close STDERR;
+ open STDERR, '>', \$buf or die "open(STDERR, '>', \\\$buf): $!";
+ $arc->$_($_) for qw/info warn err crit/;
+ is($buf, join('', @levels[$l .. $#levels]), "level $l ok");
+}
+
+close STDERR;
+open STDERR, '>&', $olderr or die "Can't dup \$olderr: $!";