The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!perl -w
use strict;
use Test::More tests => 7;
BEGIN { use_ok("Imager", ":all") }

-d "testout" or mkdir "testout";

Imager->open_log(log => "testout/t05error.log");

# try to read an invalid pnm file
open FH, "< testimg/junk.ppm"
  or die "Cannot open testin/junk: $!";
binmode(FH);
my $IO = Imager::io_new_fd(fileno(FH));
my $im = i_readpnm_wiol($IO, -1);
SKIP:{
  ok(!$im, "read of junk.ppm should have failed")
    or skip("read didn't fail!", 5);

  my @errors = Imager::i_errors();

  is(scalar @errors, 1, "got the errors")
    or skip("no errors to check", 4);

 SKIP:
  {
    my $error0 = $errors[0];
    is(ref $error0, "ARRAY", "entry 0 is an array ref")
      or skip("entry 0 not an array", 3);

    is(scalar @$error0, 2, "entry 0 has 2 elements")
      or skip("entry 0 doesn't have enough elements", 2);

    is($error0->[0], "while skipping to height", "check message");
    is($error0->[1], "0", "error code should be 0");
  }
}

Imager->close_log;

unless ($ENV{IMAGER_KEEP_FILES}) {
  unlink "testout/t05error.log";
}