The Perl and Raku Conference 2025: Greenville, South Carolina - June 27-29 Learn more

use strict;
use FindBin qw($Bin);
use Capture::Tiny 'capture_stderr';
push @INC, "$Bin/../samples";
$ENV{GDGRAPH_SAMPLES_PATH} = "$Bin/../samples/";
my @samples = glob("$Bin/../samples/sample*.pl");
my $test_count = 2 * @samples;
plan tests => $test_count;
# Check for known GD error message when libgd has image support disabled
my $graph = GD::Graph::bars->new;
eval {
capture_stderr { $graph->export_format };
};
my $skip;
if ( $@ and $@ =~ /gdImageGdPtr/ ) {
$skip = 1;
}
SKIP: {
skip "GD image support has been disabled in installed libgd, skipping", $test_count if $skip;
for my $sample (@samples) {
lives_ok {
my $stderr = capture_stderr { require $sample };
my ($sample_name) = $sample =~ m{samples/(sample..)};
like $stderr, qr/Processing $sample_name/;
}
}
unlink $_ for glob("sample*.gif");
}
done_testing();