X-Git-Url: https://git.donarmstrong.com/?p=term-progressbar.git;a=blobdiff_plain;f=t%2Fname.t;fp=t%2Fname.t;h=09ea43237849cb6b1b2d90953f74061b728f0699;hp=f5ac387dbe56f07bd2923e34f5e3ed45d121b816;hb=c117fc5047ab77ee6df1d6a7c6a595a3ebc87d00;hpb=f4194368a3b33761e053166dde55a807b7a81ddb diff --git a/t/name.t b/t/name.t index f5ac387..09ea432 100644 --- a/t/name.t +++ b/t/name.t @@ -13,8 +13,7 @@ use FindBin qw( $Bin ); use Test qw( ok plan ); use lib $Bin; -use test qw( - evcheck restore_output save_output ); +use test qw( evcheck ); use constant MESSAGE1 => 'The Gospel of St. Jude'; use constant NAME1 => 'Algenon'; @@ -58,22 +57,25 @@ Update it it from 1 to 10. =cut +use Capture::Tiny qw(capture); + { my $p; - save_output('stderr', *STDERR{IO}); +my ($out, $err) = capture { ok (evcheck(sub { $p = Term::ProgressBar->new({count => 10, name => NAME1}); }, 'Count 1-10 ( 1)'), 1, 'Count 1-10 ( 1)'); ok (evcheck(sub { $p->update($_) for 1..3 }, 'Count 1-10 ( 2)'), 1, 'Count 1-10 ( 2)'); - - my $err = restore_output('stderr'); +}; +print $out; $err =~ s!^.*\r!!gm; print STDERR "ERR (1) :\n$err\nlength: ", length($err), "\n" if $ENV{TEST_DEBUG}; my @lines = split /\n/, $err; + ok $lines[-1], qr/^@{[NAME1()]}: \s*\b30%/, 'Count 1-10 ( 3)'; my ($bar, $space) = $lines[-1] =~ /\[(=*)(\s*)\]/; my $length = length($bar) + length($space); @@ -84,13 +86,14 @@ Update it it from 1 to 10. my $ok = length($bar) > $barexpect -1 && length($bar) < $barexpect+1; ok $ok; - save_output('stderr', *STDERR{IO}); +($out, $err) = capture { ok (evcheck(sub { $p->message(MESSAGE1) }, 'Count 1-10 ( 5)'), 1, 'Count 1-10 ( 5)'); ok (evcheck(sub { $p->update($_) for 6..10 }, 'Count 1-10 ( 6)'), 1, 'Count 1-10 ( 6)'); - $err = restore_output('stderr'); +}; +print $out; $err =~ s!^.*\r!!gm; print STDERR "ERR (2) :\n$err\nlength: ", length($err), "\n" @@ -125,19 +128,20 @@ Use v1 mode { my $p; - save_output('stderr', *STDERR{IO}); +my ($out, $err) = capture { ok (evcheck(sub { $p = Term::ProgressBar->new(NAME2, 10); }, 'Count 1-10 ( 1)'), 1, 'Count 1-10 ( 1)'); ok (evcheck(sub { $p->update($_) for 1..3 }, 'Count 1-10 ( 2)'), 1, 'Count 1-10 ( 2)'); - - my $err = restore_output('stderr'); +}; +print $out; $err =~ s!^.*\r!!gm; print STDERR "ERR (1) :\n$err\nlength: ", length($err), "\n" if $ENV{TEST_DEBUG}; my @lines = split /\n/, $err; + ok $lines[-1], qr/^@{[NAME2()]}: \s*\b30%/, 'Count 1-10 ( 3)'; my ($bar, $space) = $lines[-1] =~ /(\#*)(\s*)/; my $length = length($bar) + length($space); @@ -147,15 +151,14 @@ Use v1 mode my $barexpect = $length * 0.3; my $ok = length($bar) > $barexpect -1 && length($bar) < $barexpect+1; ok $ok; - - save_output('stderr', *STDERR{IO}); - + +($out, $err) = capture { ok (evcheck(sub { $p->message(MESSAGE1) }, 'Count 1-10 ( 5)'), 1, 'Count 1-10 ( 5)'); ok (evcheck(sub { $p->update($_) for 6..10 }, 'Count 1-10 ( 6)'), 1, 'Count 1-10 ( 6)'); - $err = restore_output('stderr'); - +}; +print $out; $err =~ s!^.*\r!!gm; print STDERR "ERR (2) :\n$err\nlength: ", length($err), "\n" if $ENV{TEST_DEBUG};