X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Flib%2FTest%2FMooseX%2FCompiler.pm;h=c8ea849984c28aa2b4f3ada51929cffe349fc821;hb=27543eaea6dfa1bc4140540f765a782e6f6b504c;hp=665a51211257bcc61384aafdc05a13391f735ad4;hpb=6029ad7beb4b3c7882674a9066ba56b2e2208d75;p=gitmo%2FMooseX-Compiler.git diff --git a/t/lib/Test/MooseX/Compiler.pm b/t/lib/Test/MooseX/Compiler.pm index 665a512..c8ea849 100644 --- a/t/lib/Test/MooseX/Compiler.pm +++ b/t/lib/Test/MooseX/Compiler.pm @@ -8,14 +8,17 @@ use Exporter qw( import ); use File::Temp qw( tempdir ); use Module::Runtime qw( module_notional_filename ); use Path::Class qw( dir ); +use Test::More; our @EXPORT_OK = qw( + code_compiles_ok save_class + save_fragment ); my $Dir = dir( tempdir( CLEANUP => 1 ) ); -sub save_class { +sub save_fragment { my $class = shift; my $code = shift; @@ -30,9 +33,16 @@ $code 1; EOF + save_class($class, $full_code); +} + +sub save_class { + my $class = shift; + my $code = shift; + { local $@; - eval $full_code; + eval $code; die $@ if $@; } @@ -41,7 +51,7 @@ EOF $path->dir()->mkpath( 0, 0755 ); open my $fh, '>', $path; - print {$fh} $full_code; + print {$fh} $code; close $fh; $INC{$pm_file} = $path; @@ -49,4 +59,20 @@ EOF return $pm_file; } +sub code_compiles_ok { + my $code = shift; + + local $Test::Builder::Level = $Test::Builder::Level + 1; + + my $e; + { + local $@; + local $SIG{__DIE__}; + eval $code; + $e = $@; + } + + is( $e, q{}, 'code compiled ok' ); +} + 1;