Acme-EyeDrops
view release on metacpan or search on metacpan
t/08_hoax.t view on Meta::CPAN
#!/usr/bin/perl
# 08_hoax.t (was nasty.t)
use strict;
use Acme::EyeDrops qw(sightly get_eye_string);
select(STDERR);$|=1;select(STDOUT);$|=1; # autoflush
# --------------------------------------------------
sub build_file {
my ($f, $d) = @_;
local *F; open(F, '>'.$f) or die "open '$f': $!";
print F $d or die "write '$f': $!"; close(F);
}
# --------------------------------------------------
# my $have_stderr_redirect = 1;
# if ($^O eq 'MSWin32') {
# Win32::IsWinNT() or $have_stderr_redirect = 0;
# }
# print $have_stderr_redirect ? "1..7\n" : "1..3\n";
print "1..8\n";
# --------------------------------------------------
my $camelstr = get_eye_string('camel');
my $tmpf = 'bill.tmp';
my $tmpf2 = 'bill2.tmp';
# -------------------------------------------------
my $itest = 0;
my $prog;
# Camel beginend.pl --------------------------------
# This tests BEGIN/END blocks.
my $evalstr = qq#eval eval '"'.\n\n\n#;
$evalstr =~ tr/!-~/#/;
my $teststr = $evalstr . $camelstr;
my $srcstr = qq#BEGIN {print "begin\\n"}\n# .
qq#END {print "end\\n"}\n# .
qq#print "line1\\nline2\\n";\n#;
$prog = sightly({ Shape => 'camel',
SourceString => $srcstr,
Regex => 0,
InformHandler => sub {},
TrapEvalDie => 0 } );
build_file($tmpf, $prog);
my $outstr = `$^X -w -Mstrict $tmpf`;
my $rc = $? >> 8;
$rc == 0 or print "not ";
++$itest; print "ok $itest - BEGIN/END rc\n";
$outstr eq "begin\nline1\nline2\nend\n" or print "not ";
++$itest; print "ok $itest - BEGIN/END output\n";
$prog =~ tr/!-~/#/;
$prog eq $teststr or print "not ";
++$itest; print "ok $itest - BEGIN/END shape\n";
# Camel hellodie.pl --------------------------------
# This tests catching die inside eval.
( run in 0.695 second using v1.01-cache-2.11-cpan-5a3173703d6 )