X-Git-Url: http://git.refcnt.org/?p=colorize.git;a=blobdiff_plain;f=test.pl;h=928c6987054f644dd06e48baac2b384118a05c85;hp=ddd6288d9f47c4fea961757ab1a1245dc1ee526a;hb=HEAD;hpb=f1c44195b0950ef15dc9108025dbc2251b274225 diff --git a/test.pl b/test.pl index ddd6288..928c698 100755 --- a/test.pl +++ b/test.pl @@ -7,12 +7,13 @@ use constant true => 1; use constant false => 0; use Colorize::Common qw(:defaults $compiler_flags %BUF_SIZE $valgrind_command $write_to_tmpfile); +use File::Find; use File::Temp qw(tmpnam); use Getopt::Long qw(:config no_auto_abbrev no_ignore_case); use Test::Harness qw(runtests); use Test::More; -my $tests = 28; +my $tests = 32; my $valgrind_cmd = ''; { @@ -28,8 +29,9 @@ my $valgrind_cmd = ''; } { - my @test_files = glob('t/*.t'); - eval { runtests(@test_files) } or warn $@; + my @test_files; + find ({ wanted => sub { push @test_files, $File::Find::name if /\.t$/ } }, 't'); + eval { runtests(sort @test_files) } or warn $@; } plan tests => $tests; @@ -96,6 +98,14 @@ SKIP: { } ok(qx(printf %s "\e[\e[33m" | $valgrind_cmd$program $switch) eq "\e[", "$type with invalid sequence"); + + { + my $ok = true; + foreach my $option (qw(--attr=bold --exclude-random=black --omit-color-empty)) { + $ok &= qx($valgrind_cmd$program $option $switch $infile1 2>&1 >/dev/null) =~ /switch has no meaning with/; + } + ok($ok, "$type strict options"); + } }; $check_clean->($_) foreach qw(clean clean-all); @@ -132,10 +142,24 @@ SKIP: { is($sequences, 2, 'count of sequences printed'); } + { + # Check that a 'none' foreground color (with a background color present) + # will be substituted by 'default'. + my $colored_text = qx(printf %s "foo bar baz" | $valgrind_cmd$program none/black); + is($colored_text, "\e[40m\e[39mfoo bar baz\e[0m", 'no color sequences printed'); + } + is(qx(printf %s "hello\nworld\r\n" | $valgrind_cmd$program none/none), "hello\nworld\r\n", 'stream mode'); is(system(qq(printf '%s\n' "hello world" | $valgrind_cmd$program random --exclude-random=black >/dev/null)), 0, 'switch exclude-random'); + { + my $infile = $write_to_tmpfile->("foo\n\nbar"); + is_deeply([split /\n/, qx($valgrind_cmd$program yellow --omit-color-empty $infile)], + [split /\n/, "\e[33mfoo\e[0m\n\n\e[33mbar\e[0m"], + 'switch omit-color-empty'); + } + SKIP: { skip 'valgrind not found', 1 unless system('which valgrind >/dev/null 2>&1') == 0; like(qx(valgrind $program none/none $infile1 2>&1 >/dev/null), qr/no leaks are possible/, 'valgrind memleaks');