The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/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';

}