# (X)Emacs mode: -*- cperl -*-
use strict;
+use warnings;
=head1 Unit Test Package for Term::ProgressBar
=cut
-use Data::Dumper qw( Dumper );
-use FindBin qw( $Bin );
-use Test qw( ok plan );
+use Test::More tests => 9;
+use Test::Exception;
-use lib $Bin;
-use test qw( DATA_DIR
- evcheck restore_output save_output );
-
-BEGIN {
- # 1 for compilation test,
- plan tests => 10,
- todo => [],
-}
-
-=head2 Test 1: compilation
-
-This test confirms that the test script and the modules it calls compiled
-successfully.
-
-=cut
+use Capture::Tiny qw(capture_stderr);
use Term::ProgressBar;
-ok 1, 1, 'compilation';
-
Term::ProgressBar->__force_term (50);
# -------------------------------------
=cut
{
- my $p;
- save_output('stderr', *STDERR{IO});
- ok (evcheck(sub {
+ my $err = capture_stderr {
+ my $p;
+ lives_ok {
$p = Term::ProgressBar->new({count => 10, name => 'fred',
ETA => 'linear'});
- }, 'Count 1-10 (1)' ),
- 1, 'Count 1-10 (1)');
- ok (evcheck(sub { for (1..5) { $p->update($_); sleep 1 } },
- 'Count 1-10 (2)' ),
- 1, 'Count 1-10 (2)');
- ok (evcheck(sub { $p->message('Hello Mum!') },
- 'Count 1-10 (3)' ),
- 1, 'Count 1-10 (3)');
- ok (evcheck(sub { for (6..10) { $p->update($_); sleep 1 } },
- 'Count 1-10 (4)' ),
- 1, 'Count 1-10 (4)');
- my $err = restore_output('stderr');
-# $err =~ s!^.*\r!!gm;
+ } 'Count 1-10 (1)';
+ lives_ok { for (1..5) { $p->update($_); sleep 1 } }
+ 'Count 1-10 (2)';
+ lives_ok { $p->message('Hello Mum!') } 'Count 1-10 (3)';
+ lives_ok { for (6..10) { $p->update($_); sleep 1 } } 'Count 1-10 (4)';
+ };
+
my @lines = grep $_ ne '', split /[\n\r]+/, $err;
- print Dumper \@lines
+ diag explain \@lines
if $ENV{TEST_DEBUG};
ok grep $_ eq 'Hello Mum!', @lines;
- ok $lines[-1], qr/\[=+\]/, 'Count 1-10 (6)';
- ok $lines[-1], qr/^fred: \s*100%/, 'Count 1-10 (7)';
- ok $lines[-1], qr/D[ \d]\dh\d{2}m\d{2}s$/, 'Count 1-10 (8)';
- ok $lines[-2], qr/ Left$/, 'Count 1-10 (9)';
+ like $lines[-1], qr/\[=+\]/, 'Count 1-10 (6)';
+ like $lines[-1], qr/^fred: \s*100%/, 'Count 1-10 (7)';
+ like $lines[-1], qr/D[ \d]\dh\d{2}m\d{2}s$/, 'Count 1-10 (8)';
+ like $lines[-2], qr/ Left$/, 'Count 1-10 (9)';
}
# ----------------------------------------------------------------------------