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 = 29;
+my $tests = 32;
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;
}
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);
{
# 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);
+ 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(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');