use strict; use warnings; use Test::More 0.88; use Test::Fatal; use lib 't/lib'; use Test::Class::Load 'load_optional_class'; isnt( exception { load_optional_class('Class::Load::Error::DieAfterIsa'); }, undef, 'Class which calls die is reported as an error' ); { local $TODO = q{I'm not sure this is fixable as it's really an interpreter issue.}; isnt( exception { load_optional_class('Class::Load::Error::DieAfterIsa'); }, undef, 'Class which calls die is reported as an error (second attempt)' ); } isnt( exception { load_optional_class('Class::Load::Error::DieAfterBeginIsa'); }, undef, 'Class populates @ISA in BEGIN then dies - error on load' ); { local $TODO = q{I'm not sure this is fixable as it's really an interpreter issue.}; isnt( exception { load_optional_class('Class::Load::Error::DieAfterBeginIsa'); }, undef, 'Class populates @ISA in BEGIN then dies - error on load (second attempt)' ); } isnt( exception { load_optional_class('Class::Load::Error::SyntaxErrorAfterIsa'); }, undef, 'Class with a syntax error causes an error' ); isnt( exception { load_optional_class('Class::Load::Error::SyntaxErrorAfterIsa'); }, undef, 'Class with a syntax error causes an error (second attempt)' ); done_testing;