#!/usr/bin/perl -w use strict; use Test::More tests=>8; #use_ok qw(Parse::Eyapp) or exit; SKIP: { skip "Calc.eyp not found", 8 unless ($ENV{DEVELOPER} && -r "t/Calc.eyp" && -x "./eyapp"); unlink 't/Calc.pm'; my $r = system('perl -I./lib/ eyapp -s t/Calc.eyp'); ok(!$r, "standalone option"); ok(-s "t/Calc.pm", ".pm generated with standalone"); my $eyapppath; eval { local $ENV{PERL5LIB}; $eyapppath = shift @INC; # Supress ~/LEyapp/lib from search path require "t/Calc.pm"; }; ok(!$@, "standalone generated module loaded"); my $parser = Calc->new(); my $input = "a = 3*2\nb = 4*a\nc = a*b\n"; my $t = $parser->Run(\$input); my %r = ( a => 6, b => 24, c => 144); is($t->{$_}, $r{$_}, "Using calc: $_ is $r{$_}") for (qw{a b c}); unshift @INC, $eyapppath; my $warning = ''; local $SIG{__WARN__} = sub { $warning = shift }; eval { use_ok qw{Parse::Eyapp}; }; ok(!$warning, "Parse::Eyapp loaded on top of standalone without warnings"); unlink 't/Calc.pm'; }