]> git.vpit.fr Git - perl/modules/rgit.git/blob - t/16-levels.t
Update VPIT::TestHelpers to 15e8aee3
[perl/modules/rgit.git] / t / 16-levels.t
1 #!perl
2
3 use 5.008;
4
5 use strict;
6 use warnings;
7
8 use Test::More tests => 4;
9
10 use App::Rgit::Config;
11 use App::Rgit::Utils qw<:levels>;
12
13 local $SIG{__WARN__} = sub { diag 'warning:',   @_ };
14 local $SIG{__DIE__}  = sub { diag 'exception:', @_ };
15
16 my %levels = (
17  info => INFO,
18  warn => WARN,
19  err  => ERR,
20  crit => CRIT,
21 );
22 my @levels = sort { $levels{$b} <=> $levels{$a} } keys %levels;
23
24 my $olderr;
25 open $olderr, '>&', \*STDERR or die "Can't dup STDERR: $!";
26
27 for my $l (0 .. $#levels) {
28  my $arc = App::Rgit::Config->new(
29   root  => 't',
30   git   => 't/bin/git',
31   debug => $levels{$levels[$l]},
32  );
33  my $buf = '';
34  close STDERR;
35  open STDERR, '>', \$buf or die "open(STDERR, '>', \\\$buf): $!";
36  $arc->$_($_) for qw<info warn err crit>;
37  is $buf, join('', @levels[$l .. $#levels]), "level $l ok";
38 }
39
40 close STDERR;
41 open STDERR, '>&', $olderr or die "Can't dup \$olderr: $!";