|
Packit |
745572 |
use Config;
|
|
Packit |
745572 |
BEGIN {
|
|
Packit |
745572 |
if ($ENV{PERL_CORE}) {
|
|
Packit |
745572 |
if ($Config{'extensions'} !~ m{\bFilter/Util/Call\b}) {
|
|
Packit |
745572 |
print "1..0 # Skip: Filter::Util::Call was not built\n";
|
|
Packit |
745572 |
exit 0;
|
|
Packit |
745572 |
}
|
|
Packit |
745572 |
}
|
|
Packit |
745572 |
unshift @INC, 't';
|
|
Packit |
745572 |
require 'filter-util.pl';
|
|
Packit |
745572 |
}
|
|
Packit |
745572 |
|
|
Packit |
745572 |
use strict;
|
|
Packit |
745572 |
use warnings;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
use vars qw($Inc $Perl);
|
|
Packit |
745572 |
|
|
Packit |
745572 |
print "1..34\n";
|
|
Packit |
745572 |
|
|
Packit |
745572 |
$Perl = "$Perl -w";
|
|
Packit |
745572 |
|
|
Packit |
745572 |
use Cwd ;
|
|
Packit |
745572 |
my $here = getcwd ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
|
|
Packit |
745572 |
my $filename = "call$$.tst" ;
|
|
Packit |
745572 |
my $filename2 = "call2$$.tst" ;
|
|
Packit |
745572 |
my $filenamebin = "call$$.bin" ;
|
|
Packit |
745572 |
my $module = "MyTest" ;
|
|
Packit |
745572 |
my $module2 = "MyTest2" ;
|
|
Packit |
745572 |
my $module3 = "MyTest3" ;
|
|
Packit |
745572 |
my $module4 = "MyTest4" ;
|
|
Packit |
745572 |
my $module5 = "MyTest5" ;
|
|
Packit |
745572 |
my $module6 = "MyTest6" ;
|
|
Packit |
745572 |
my $nested = "nested" ;
|
|
Packit |
745572 |
my $block = "block" ;
|
|
Packit |
745572 |
my $redir = $^O eq 'MacOS' ? "" : "2>&1;;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
# Test error cases
|
|
Packit |
745572 |
##################
|
|
Packit |
745572 |
|
|
Packit |
745572 |
# no filter function in module
|
|
Packit |
745572 |
###############################
|
|
Packit |
745572 |
|
|
Packit |
745572 |
writeFile("${module}.pm", <
|
|
Packit |
745572 |
package ${module} ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
use Filter::Util::Call ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
sub import { filter_add(bless []) }
|
|
Packit |
745572 |
|
|
Packit |
745572 |
1 ;
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
my $a = `$Perl "-I." $Inc -e "use ${module} ;" $redir` ;
|
|
Packit |
745572 |
ok(1, (($? >>8) != 0 or (($^O eq 'MSWin32' || $^O eq 'MacOS' || $^O eq 'NetWare' || $^O eq 'mpeix') && $? != 0))) ;
|
|
Packit |
745572 |
ok(2, $a =~ /^Can't locate object method "filter" via package "MyTest"/m) ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
# no reference parameter in filter_add
|
|
Packit |
745572 |
######################################
|
|
Packit |
745572 |
|
|
Packit |
745572 |
writeFile("${module}.pm", <
|
|
Packit |
745572 |
package ${module} ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
use Filter::Util::Call ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
sub import { filter_add() }
|
|
Packit |
745572 |
|
|
Packit |
745572 |
1 ;
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
$a = `$Perl "-I." $Inc -e "use ${module} ;" $redir` ;
|
|
Packit |
745572 |
#warn "# $a\n";
|
|
Packit |
745572 |
ok(3, (($? >>8) != 0
|
|
Packit |
745572 |
or (($^O eq 'MSWin32' || $^O eq 'MacOS' || $^O eq 'NetWare' || $^O eq 'mpeix')
|
|
Packit |
745572 |
&& $? != 0))) ;
|
|
Packit |
745572 |
#ok(4, $a =~ /^usage: filter_add\(ref\) at ${module}.pm/) ;
|
|
Packit |
745572 |
my $errmsg = $Config{usecperl}
|
|
Packit |
745572 |
? qr/^Not enough arguments for subroutine entry Filter::Util::Call::filter_add at ${module}\.pm line/m
|
|
Packit |
745572 |
: qr/^Not enough arguments for Filter::Util::Call::filter_add at ${module}\.pm line/m;
|
|
Packit |
745572 |
$a =~ s/^(.*?\n).*$/$1/s; # only the first line
|
|
Packit |
745572 |
if ($] < 5.007) {
|
|
Packit |
745572 |
if ($a =~ $errmsg) {
|
|
Packit |
745572 |
ok(4, 1);
|
|
Packit |
745572 |
} else {
|
|
Packit |
745572 |
ok(4, 1, "TODO");
|
|
Packit |
745572 |
}
|
|
Packit |
745572 |
} else {
|
|
Packit |
745572 |
ok(4, $a =~ $errmsg, 'usage error')
|
|
Packit |
745572 |
or diag("The error was: ", $a);
|
|
Packit |
745572 |
}
|
|
Packit |
745572 |
|
|
Packit |
745572 |
# non-error cases
|
|
Packit |
745572 |
#################
|
|
Packit |
745572 |
|
|
Packit |
745572 |
|
|
Packit |
745572 |
# a simple filter, using a closure
|
|
Packit |
745572 |
#################
|
|
Packit |
745572 |
|
|
Packit |
745572 |
writeFile("${module}.pm", <
|
|
Packit |
745572 |
package ${module} ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
use Filter::Util::Call ;
|
|
Packit |
745572 |
sub import {
|
|
Packit |
745572 |
filter_add(
|
|
Packit |
745572 |
sub {
|
|
Packit |
745572 |
|
|
Packit |
745572 |
my ($status) ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
if (($status = filter_read()) > 0) {
|
|
Packit |
745572 |
s/ABC/DEF/g
|
|
Packit |
745572 |
}
|
|
Packit |
745572 |
$status ;
|
|
Packit |
745572 |
} ) ;
|
|
Packit |
745572 |
}
|
|
Packit |
745572 |
|
|
Packit |
745572 |
1 ;
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
writeFile($filename, <
|
|
Packit |
745572 |
|
|
Packit |
745572 |
use $module ;
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
use Cwd ;
|
|
Packit |
745572 |
$here = getcwd ;
|
|
Packit |
745572 |
print "I am $here\n" ;
|
|
Packit |
745572 |
print "some letters ABC\n" ;
|
|
Packit |
745572 |
$y = "ABCDEF" ;
|
|
Packit |
745572 |
print <
|
|
Packit |
745572 |
Alphabetti Spagetti ($y)
|
|
Packit |
745572 |
EOF
|
|
Packit |
745572 |
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
$a = `$Perl "-I." $Inc $filename $redir` ;
|
|
Packit |
745572 |
ok(5, ($? >>8) == 0) ;
|
|
Packit |
745572 |
ok(6, $a eq <
|
|
Packit |
745572 |
I am $here
|
|
Packit |
745572 |
some letters DEF
|
|
Packit |
745572 |
Alphabetti Spagetti (DEFDEF)
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
# a simple filter, not using a closure
|
|
Packit |
745572 |
#################
|
|
Packit |
745572 |
|
|
Packit |
745572 |
writeFile("${module}.pm", <
|
|
Packit |
745572 |
package ${module} ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
use Filter::Util::Call ;
|
|
Packit |
745572 |
sub import { filter_add(bless []) }
|
|
Packit |
745572 |
|
|
Packit |
745572 |
sub filter
|
|
Packit |
745572 |
{
|
|
Packit |
745572 |
my ($self) = @_ ;
|
|
Packit |
745572 |
my ($status) ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
if (($status = filter_read()) > 0) {
|
|
Packit |
745572 |
s/ABC/DEF/g
|
|
Packit |
745572 |
}
|
|
Packit |
745572 |
$status ;
|
|
Packit |
745572 |
}
|
|
Packit |
745572 |
|
|
Packit |
745572 |
|
|
Packit |
745572 |
1 ;
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
writeFile($filename, <
|
|
Packit |
745572 |
|
|
Packit |
745572 |
use $module ;
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
use Cwd ;
|
|
Packit |
745572 |
$here = getcwd ;
|
|
Packit |
745572 |
print "I am $here\n" ;
|
|
Packit |
745572 |
print "some letters ABC\n" ;
|
|
Packit |
745572 |
$y = "ABCDEF" ;
|
|
Packit |
745572 |
print <
|
|
Packit |
745572 |
Alphabetti Spagetti ($y)
|
|
Packit |
745572 |
EOF
|
|
Packit |
745572 |
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
$a = `$Perl "-I." $Inc $filename $redir` ;
|
|
Packit |
745572 |
ok(7, ($? >>8) == 0) ;
|
|
Packit |
745572 |
ok(8, $a eq <
|
|
Packit |
745572 |
I am $here
|
|
Packit |
745572 |
some letters DEF
|
|
Packit |
745572 |
Alphabetti Spagetti (DEFDEF)
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
|
|
Packit |
745572 |
# nested filters
|
|
Packit |
745572 |
################
|
|
Packit |
745572 |
|
|
Packit |
745572 |
|
|
Packit |
745572 |
writeFile("${module2}.pm", <
|
|
Packit |
745572 |
package ${module2} ;
|
|
Packit |
745572 |
use Filter::Util::Call ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
sub import { filter_add(bless []) }
|
|
Packit |
745572 |
|
|
Packit |
745572 |
sub filter
|
|
Packit |
745572 |
{
|
|
Packit |
745572 |
my ($self) = @_ ;
|
|
Packit |
745572 |
my ($status) ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
if (($status = filter_read()) > 0) {
|
|
Packit |
745572 |
s/XYZ/PQR/g
|
|
Packit |
745572 |
}
|
|
Packit |
745572 |
$status ;
|
|
Packit |
745572 |
}
|
|
Packit |
745572 |
|
|
Packit |
745572 |
1 ;
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
writeFile("${module3}.pm", <
|
|
Packit |
745572 |
package ${module3} ;
|
|
Packit |
745572 |
use Filter::Util::Call ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
sub import { filter_add(
|
|
Packit |
745572 |
|
|
Packit |
745572 |
sub
|
|
Packit |
745572 |
{
|
|
Packit |
745572 |
my ($status) ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
if (($status = filter_read()) > 0) {
|
|
Packit |
745572 |
s/Fred/Joe/g
|
|
Packit |
745572 |
}
|
|
Packit |
745572 |
$status ;
|
|
Packit |
745572 |
} ) ;
|
|
Packit |
745572 |
}
|
|
Packit |
745572 |
|
|
Packit |
745572 |
1 ;
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
writeFile("${module4}.pm", <
|
|
Packit |
745572 |
package ${module4} ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
use $module5 ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
print "I'm feeling used!\n" ;
|
|
Packit |
745572 |
print "Fred Joe ABC DEF PQR XYZ\n" ;
|
|
Packit |
745572 |
print "See you Today\n" ;
|
|
Packit |
745572 |
1;
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
writeFile("${module5}.pm", <
|
|
Packit |
745572 |
package ${module5} ;
|
|
Packit |
745572 |
use Filter::Util::Call ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
sub import { filter_add(bless []) }
|
|
Packit |
745572 |
|
|
Packit |
745572 |
sub filter
|
|
Packit |
745572 |
{
|
|
Packit |
745572 |
my ($self) = @_ ;
|
|
Packit |
745572 |
my ($status) ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
if (($status = filter_read()) > 0) {
|
|
Packit |
745572 |
s/Today/Tomorrow/g
|
|
Packit |
745572 |
}
|
|
Packit |
745572 |
$status ;
|
|
Packit |
745572 |
}
|
|
Packit |
745572 |
|
|
Packit |
745572 |
1 ;
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
writeFile($filename, <
|
|
Packit |
745572 |
|
|
Packit |
745572 |
# two filters for this file
|
|
Packit |
745572 |
use $module ;
|
|
Packit |
745572 |
use $module2 ;
|
|
Packit |
745572 |
require "$nested" ;
|
|
Packit |
745572 |
use $module4 ;
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
print "some letters ABCXYZ\n" ;
|
|
Packit |
745572 |
$y = "ABCDEFXYZ" ;
|
|
Packit |
745572 |
print <
|
|
Packit |
745572 |
Fred likes Alphabetti Spagetti ($y)
|
|
Packit |
745572 |
EOF
|
|
Packit |
745572 |
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
writeFile($nested, <
|
|
Packit |
745572 |
use $module3 ;
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
print "This is another file XYZ\n" ;
|
|
Packit |
745572 |
print <
|
|
Packit |
745572 |
Where is Fred?
|
|
Packit |
745572 |
EOF
|
|
Packit |
745572 |
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
$a = `$Perl "-I." $Inc $filename $redir` ;
|
|
Packit |
745572 |
ok(9, ($? >>8) == 0) ;
|
|
Packit |
745572 |
ok(10, $a eq <
|
|
Packit |
745572 |
I'm feeling used!
|
|
Packit |
745572 |
Fred Joe ABC DEF PQR XYZ
|
|
Packit |
745572 |
See you Tomorrow
|
|
Packit |
745572 |
This is another file XYZ
|
|
Packit |
745572 |
Where is Joe?
|
|
Packit |
745572 |
some letters DEFPQR
|
|
Packit |
745572 |
Fred likes Alphabetti Spagetti (DEFDEFPQR)
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
# using the module context (with a closure)
|
|
Packit |
745572 |
###########################################
|
|
Packit |
745572 |
|
|
Packit |
745572 |
|
|
Packit |
745572 |
writeFile("${module2}.pm", <
|
|
Packit |
745572 |
package ${module2} ;
|
|
Packit |
745572 |
use Filter::Util::Call ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
sub import
|
|
Packit |
745572 |
{
|
|
Packit |
745572 |
my ($type) = shift ;
|
|
Packit |
745572 |
my (@strings) = @_ ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
|
|
Packit |
745572 |
filter_add (
|
|
Packit |
745572 |
|
|
Packit |
745572 |
sub
|
|
Packit |
745572 |
{
|
|
Packit |
745572 |
my ($status) ;
|
|
Packit |
745572 |
my ($pattern) ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
if (($status = filter_read()) > 0) {
|
|
Packit |
745572 |
foreach $pattern (@strings)
|
|
Packit |
745572 |
{ s/$pattern/PQR/g }
|
|
Packit |
745572 |
}
|
|
Packit |
745572 |
|
|
Packit |
745572 |
$status ;
|
|
Packit |
745572 |
}
|
|
Packit |
745572 |
)
|
|
Packit |
745572 |
|
|
Packit |
745572 |
}
|
|
Packit |
745572 |
1 ;
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
|
|
Packit |
745572 |
writeFile($filename, <
|
|
Packit |
745572 |
|
|
Packit |
745572 |
use $module2 qw( XYZ KLM) ;
|
|
Packit |
745572 |
use $module2 qw( ABC NMO) ;
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
print "some letters ABCXYZ KLM NMO\n" ;
|
|
Packit |
745572 |
$y = "ABCDEFXYZKLMNMO" ;
|
|
Packit |
745572 |
print <
|
|
Packit |
745572 |
Alphabetti Spagetti ($y)
|
|
Packit |
745572 |
EOF
|
|
Packit |
745572 |
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
$a = `$Perl "-I." $Inc $filename $redir` ;
|
|
Packit |
745572 |
ok(11, ($? >>8) == 0) ;
|
|
Packit |
745572 |
ok(12, $a eq <
|
|
Packit |
745572 |
some letters PQRPQR PQR PQR
|
|
Packit |
745572 |
Alphabetti Spagetti (PQRDEFPQRPQRPQR)
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
|
|
Packit |
745572 |
|
|
Packit |
745572 |
# using the module context (without a closure)
|
|
Packit |
745572 |
##############################################
|
|
Packit |
745572 |
|
|
Packit |
745572 |
|
|
Packit |
745572 |
writeFile("${module2}.pm", <
|
|
Packit |
745572 |
package ${module2} ;
|
|
Packit |
745572 |
use Filter::Util::Call ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
sub import
|
|
Packit |
745572 |
{
|
|
Packit |
745572 |
my ($type) = shift ;
|
|
Packit |
745572 |
my (@strings) = @_ ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
|
|
Packit |
745572 |
filter_add (bless [@strings])
|
|
Packit |
745572 |
}
|
|
Packit |
745572 |
|
|
Packit |
745572 |
sub filter
|
|
Packit |
745572 |
{
|
|
Packit |
745572 |
my ($self) = @_ ;
|
|
Packit |
745572 |
my ($status) ;
|
|
Packit |
745572 |
my ($pattern) ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
if (($status = filter_read()) > 0) {
|
|
Packit |
745572 |
foreach $pattern (@$self)
|
|
Packit |
745572 |
{ s/$pattern/PQR/g }
|
|
Packit |
745572 |
}
|
|
Packit |
745572 |
|
|
Packit |
745572 |
$status ;
|
|
Packit |
745572 |
}
|
|
Packit |
745572 |
|
|
Packit |
745572 |
1 ;
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
|
|
Packit |
745572 |
writeFile($filename, <
|
|
Packit |
745572 |
|
|
Packit |
745572 |
use $module2 qw( XYZ KLM) ;
|
|
Packit |
745572 |
use $module2 qw( ABC NMO) ;
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
print "some letters ABCXYZ KLM NMO\n" ;
|
|
Packit |
745572 |
$y = "ABCDEFXYZKLMNMO" ;
|
|
Packit |
745572 |
print <
|
|
Packit |
745572 |
Alphabetti Spagetti ($y)
|
|
Packit |
745572 |
EOF
|
|
Packit |
745572 |
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
$a = `$Perl "-I." $Inc $filename $redir` ;
|
|
Packit |
745572 |
ok(13, ($? >>8) == 0) ;
|
|
Packit |
745572 |
ok(14, $a eq <
|
|
Packit |
745572 |
some letters PQRPQR PQR PQR
|
|
Packit |
745572 |
Alphabetti Spagetti (PQRDEFPQRPQRPQR)
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
# multi line test
|
|
Packit |
745572 |
#################
|
|
Packit |
745572 |
|
|
Packit |
745572 |
|
|
Packit |
745572 |
writeFile("${module2}.pm", <
|
|
Packit |
745572 |
package ${module2} ;
|
|
Packit |
745572 |
use Filter::Util::Call ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
sub import
|
|
Packit |
745572 |
{
|
|
Packit |
745572 |
my ($type) = shift ;
|
|
Packit |
745572 |
my (@strings) = @_ ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
|
|
Packit |
745572 |
filter_add(bless [])
|
|
Packit |
745572 |
}
|
|
Packit |
745572 |
|
|
Packit |
745572 |
sub filter
|
|
Packit |
745572 |
{
|
|
Packit |
745572 |
my ($self) = @_ ;
|
|
Packit |
745572 |
my ($status) ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
# read first line
|
|
Packit |
745572 |
if (($status = filter_read()) > 0) {
|
|
Packit |
745572 |
chop ;
|
|
Packit |
745572 |
s/\r$//;
|
|
Packit |
745572 |
# and now the second line (it will append)
|
|
Packit |
745572 |
$status = filter_read() ;
|
|
Packit |
745572 |
}
|
|
Packit |
745572 |
|
|
Packit |
745572 |
$status ;
|
|
Packit |
745572 |
}
|
|
Packit |
745572 |
|
|
Packit |
745572 |
1 ;
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
|
|
Packit |
745572 |
writeFile($filename, <
|
|
Packit |
745572 |
|
|
Packit |
745572 |
use $module2 ;
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
print "don't cut me
|
|
Packit |
745572 |
in half\n" ;
|
|
Packit |
745572 |
print
|
|
Packit |
745572 |
<
|
|
Packit |
745572 |
appen
|
|
Packit |
745572 |
ded
|
|
Packit |
745572 |
EO
|
|
Packit |
745572 |
F
|
|
Packit |
745572 |
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
$a = `$Perl "-I." $Inc $filename $redir` ;
|
|
Packit |
745572 |
ok(15, ($? >>8) == 0) ;
|
|
Packit |
745572 |
ok(16, $a eq <
|
|
Packit |
745572 |
don't cut me in half
|
|
Packit |
745572 |
appended
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
#print "# $a\n";
|
|
Packit |
745572 |
|
|
Packit |
745572 |
# Block test
|
|
Packit |
745572 |
#############
|
|
Packit |
745572 |
|
|
Packit |
745572 |
writeFile("${block}.pm", <
|
|
Packit |
745572 |
package ${block} ;
|
|
Packit |
745572 |
use Filter::Util::Call ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
sub import
|
|
Packit |
745572 |
{
|
|
Packit |
745572 |
my ($type) = shift ;
|
|
Packit |
745572 |
my (@strings) = @_ ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
|
|
Packit |
745572 |
filter_add (bless [@strings] )
|
|
Packit |
745572 |
}
|
|
Packit |
745572 |
|
|
Packit |
745572 |
sub filter
|
|
Packit |
745572 |
{
|
|
Packit |
745572 |
my ($self) = @_ ;
|
|
Packit |
745572 |
my ($status) ;
|
|
Packit |
745572 |
my ($pattern) ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
filter_read(20) ;
|
|
Packit |
745572 |
}
|
|
Packit |
745572 |
|
|
Packit |
745572 |
1 ;
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
my $string = <<'EOM' ;
|
|
Packit |
745572 |
print "hello mum\n" ;
|
|
Packit |
745572 |
$x = 'me ' x 3 ;
|
|
Packit |
745572 |
print "Who wants it?\n$x\n" ;
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
|
|
Packit |
745572 |
writeFile($filename, <
|
|
Packit |
745572 |
use $block ;
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
$a = `$Perl "-I." $Inc $filename $redir` ;
|
|
Packit |
745572 |
ok(17, ($? >>8) == 0) ;
|
|
Packit |
745572 |
ok(18, $a eq <
|
|
Packit |
745572 |
hello mum
|
|
Packit |
745572 |
Who wants it?
|
|
Packit |
745572 |
me me me
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
# use in the filter
|
|
Packit |
745572 |
####################
|
|
Packit |
745572 |
|
|
Packit |
745572 |
writeFile("${block}.pm", <
|
|
Packit |
745572 |
package ${block} ;
|
|
Packit |
745572 |
use Filter::Util::Call ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
use Cwd ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
sub import
|
|
Packit |
745572 |
{
|
|
Packit |
745572 |
my ($type) = shift ;
|
|
Packit |
745572 |
my (@strings) = @_ ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
|
|
Packit |
745572 |
filter_add(bless [@strings] )
|
|
Packit |
745572 |
}
|
|
Packit |
745572 |
|
|
Packit |
745572 |
sub filter
|
|
Packit |
745572 |
{
|
|
Packit |
745572 |
my ($self) = @_ ;
|
|
Packit |
745572 |
my ($status) ;
|
|
Packit |
745572 |
my ($here) = quotemeta getcwd ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
if (($status = filter_read()) > 0) {
|
|
Packit |
745572 |
s/DIR/$here/g
|
|
Packit |
745572 |
}
|
|
Packit |
745572 |
$status ;
|
|
Packit |
745572 |
}
|
|
Packit |
745572 |
|
|
Packit |
745572 |
1 ;
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
writeFile($filename, <
|
|
Packit |
745572 |
use $block ;
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
print "We are in DIR\n" ;
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
$a = `$Perl "-I." $Inc $filename $redir` ;
|
|
Packit |
745572 |
ok(19, ($? >>8) == 0) ;
|
|
Packit |
745572 |
ok(20, $a eq <
|
|
Packit |
745572 |
We are in $here
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
|
|
Packit |
745572 |
# filter_del
|
|
Packit |
745572 |
#############
|
|
Packit |
745572 |
|
|
Packit |
745572 |
writeFile("${block}.pm", <
|
|
Packit |
745572 |
package ${block} ;
|
|
Packit |
745572 |
use Filter::Util::Call ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
sub import
|
|
Packit |
745572 |
{
|
|
Packit |
745572 |
my ($type) = shift ;
|
|
Packit |
745572 |
my ($count) = @_ ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
|
|
Packit |
745572 |
filter_add(bless \$count )
|
|
Packit |
745572 |
}
|
|
Packit |
745572 |
|
|
Packit |
745572 |
sub filter
|
|
Packit |
745572 |
{
|
|
Packit |
745572 |
my ($self) = @_ ;
|
|
Packit |
745572 |
my ($status) ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
s/HERE/THERE/g
|
|
Packit |
745572 |
if ($status = filter_read()) > 0 ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
-- $$self ;
|
|
Packit |
745572 |
filter_del() if $$self <= 0 ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
$status ;
|
|
Packit |
745572 |
}
|
|
Packit |
745572 |
|
|
Packit |
745572 |
1 ;
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
writeFile($filename, <
|
|
Packit |
745572 |
use $block (3) ;
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
print "
|
|
Packit |
745572 |
HERE I am
|
|
Packit |
745572 |
I am HERE
|
|
Packit |
745572 |
HERE today gone tomorrow\n" ;
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
$a = `$Perl "-I." $Inc $filename $redir` ;
|
|
Packit |
745572 |
ok(21, ($? >>8) == 0) ;
|
|
Packit |
745572 |
ok(22, $a eq <
|
|
Packit |
745572 |
|
|
Packit |
745572 |
THERE I am
|
|
Packit |
745572 |
I am THERE
|
|
Packit |
745572 |
HERE today gone tomorrow
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
|
|
Packit |
745572 |
# filter_read_exact
|
|
Packit |
745572 |
####################
|
|
Packit |
745572 |
|
|
Packit |
745572 |
writeFile("${block}.pm", <
|
|
Packit |
745572 |
package ${block} ;
|
|
Packit |
745572 |
use Filter::Util::Call ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
sub import
|
|
Packit |
745572 |
{
|
|
Packit |
745572 |
my ($type) = shift ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
filter_add(bless [] )
|
|
Packit |
745572 |
}
|
|
Packit |
745572 |
|
|
Packit |
745572 |
sub filter
|
|
Packit |
745572 |
{
|
|
Packit |
745572 |
my ($self) = @_ ;
|
|
Packit |
745572 |
my ($status) ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
if (($status = filter_read_exact(9)) > 0) {
|
|
Packit |
745572 |
s/HERE/THERE/g
|
|
Packit |
745572 |
}
|
|
Packit |
745572 |
|
|
Packit |
745572 |
$status ;
|
|
Packit |
745572 |
}
|
|
Packit |
745572 |
|
|
Packit |
745572 |
1 ;
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
writeFile($filenamebin, <
|
|
Packit |
745572 |
use $block ;
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
print "
|
|
Packit |
745572 |
HERE I am
|
|
Packit |
745572 |
I'm HERE
|
|
Packit |
745572 |
HERE today gone tomorrow\n" ;
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
$a = `$Perl "-I." $Inc $filenamebin $redir` ;
|
|
Packit |
745572 |
ok(23, ($? >>8) == 0) ;
|
|
Packit |
745572 |
ok(24, $a eq <
|
|
Packit |
745572 |
|
|
Packit |
745572 |
HERE I am
|
|
Packit |
745572 |
I'm THERE
|
|
Packit |
745572 |
THERE today gone tomorrow
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
{
|
|
Packit |
745572 |
|
|
Packit |
745572 |
# Check __DATA__
|
|
Packit |
745572 |
####################
|
|
Packit |
745572 |
|
|
Packit |
745572 |
writeFile("${block}.pm", <
|
|
Packit |
745572 |
package ${block} ;
|
|
Packit |
745572 |
use Filter::Util::Call ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
sub import
|
|
Packit |
745572 |
{
|
|
Packit |
745572 |
my ($type) = shift ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
filter_add([])
|
|
Packit |
745572 |
}
|
|
Packit |
745572 |
|
|
Packit |
745572 |
sub filter
|
|
Packit |
745572 |
{
|
|
Packit |
745572 |
my ($self) = @_ ;
|
|
Packit |
745572 |
my ($status) ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
if (($status = filter_read()) > 0) {
|
|
Packit |
745572 |
s/HERE/THERE/g
|
|
Packit |
745572 |
}
|
|
Packit |
745572 |
|
|
Packit |
745572 |
$status ;
|
|
Packit |
745572 |
}
|
|
Packit |
745572 |
|
|
Packit |
745572 |
1 ;
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
writeFile($filename, <
|
|
Packit |
745572 |
use $block ;
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
print "HERE HERE\n";
|
|
Packit |
745572 |
@a = <DATA>;
|
|
Packit |
745572 |
print @a;
|
|
Packit |
745572 |
__DATA__
|
|
Packit |
745572 |
HERE I am
|
|
Packit |
745572 |
I'm HERE
|
|
Packit |
745572 |
HERE today gone tomorrow
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
$a = `$Perl "-I." $Inc $filename $redir` ;
|
|
Packit |
745572 |
ok(25, ($? >>8) == 0) ;
|
|
Packit |
745572 |
ok(26, $a eq <
|
|
Packit |
745572 |
THERE THERE
|
|
Packit |
745572 |
HERE I am
|
|
Packit |
745572 |
I'm HERE
|
|
Packit |
745572 |
HERE today gone tomorrow
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
}
|
|
Packit |
745572 |
|
|
Packit |
745572 |
{
|
|
Packit |
745572 |
|
|
Packit |
745572 |
# Check __END__
|
|
Packit |
745572 |
####################
|
|
Packit |
745572 |
|
|
Packit |
745572 |
writeFile("${block}.pm", <
|
|
Packit |
745572 |
package ${block} ;
|
|
Packit |
745572 |
use Filter::Util::Call ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
sub import
|
|
Packit |
745572 |
{
|
|
Packit |
745572 |
my ($type) = shift ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
filter_add(bless [] )
|
|
Packit |
745572 |
}
|
|
Packit |
745572 |
|
|
Packit |
745572 |
sub filter
|
|
Packit |
745572 |
{
|
|
Packit |
745572 |
my ($self) = @_ ;
|
|
Packit |
745572 |
my ($status) ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
if (($status = filter_read()) > 0) {
|
|
Packit |
745572 |
s/HERE/THERE/g
|
|
Packit |
745572 |
}
|
|
Packit |
745572 |
|
|
Packit |
745572 |
$status ;
|
|
Packit |
745572 |
}
|
|
Packit |
745572 |
|
|
Packit |
745572 |
1 ;
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
writeFile($filename, <
|
|
Packit |
745572 |
use $block ;
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
print "HERE HERE\n";
|
|
Packit |
745572 |
@a = <DATA>;
|
|
Packit |
745572 |
print @a;
|
|
Packit |
745572 |
__END__
|
|
Packit |
745572 |
HERE I am
|
|
Packit |
745572 |
I'm HERE
|
|
Packit |
745572 |
HERE today gone tomorrow
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
$a = `$Perl "-I." $Inc $filename $redir` ;
|
|
Packit |
745572 |
ok(27, ($? >>8) == 0) ;
|
|
Packit |
745572 |
ok(28, $a eq <
|
|
Packit |
745572 |
THERE THERE
|
|
Packit |
745572 |
HERE I am
|
|
Packit |
745572 |
I'm HERE
|
|
Packit |
745572 |
HERE today gone tomorrow
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
}
|
|
Packit |
745572 |
|
|
Packit |
745572 |
{
|
|
Packit |
745572 |
|
|
Packit |
745572 |
# no without use
|
|
Packit |
745572 |
# see Message-ID: <2002110621.427.A15377@ttul.org>
|
|
Packit |
745572 |
####################
|
|
Packit |
745572 |
|
|
Packit |
745572 |
writeFile("${module6}.pm", <
|
|
Packit |
745572 |
package ${module6} ;
|
|
Packit |
745572 |
#use Filter::Simple;
|
|
Packit |
745572 |
#FILTER {}
|
|
Packit |
745572 |
use Filter::Util::Call;
|
|
Packit |
745572 |
sub import { filter_add(sub{}) }
|
|
Packit |
745572 |
sub unimport { filter_del() }
|
|
Packit |
745572 |
1;
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
writeFile($filename2, <
|
|
Packit |
745572 |
no ${module6} ;
|
|
Packit |
745572 |
print "ok";
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
my $str = $^O eq 'MacOS' ? "'ok'" : "q{ok}";
|
|
Packit |
745572 |
my $a = `$Perl "-I." $Inc -e "no ${module6}; print $str"`;
|
|
Packit |
745572 |
ok(29, ($? >>8) == 0);
|
|
Packit |
745572 |
chomp( $a ) if $^O eq 'VMS';
|
|
Packit |
745572 |
ok(30, $a eq 'ok');
|
|
Packit |
745572 |
|
|
Packit |
745572 |
$a = `$Perl "-I." $Inc $filename2`;
|
|
Packit |
745572 |
ok(31, ($? >>8) == 0);
|
|
Packit |
745572 |
chomp( $a ) if $^O eq 'VMS';
|
|
Packit |
745572 |
ok(32, $a eq 'ok');
|
|
Packit |
745572 |
|
|
Packit |
745572 |
}
|
|
Packit |
745572 |
|
|
Packit |
745572 |
# error: filter_read_exact: size parameter must be > 0
|
|
Packit |
745572 |
######################################
|
|
Packit |
745572 |
|
|
Packit |
745572 |
writeFile("${block}.pm", <
|
|
Packit |
745572 |
package ${block} ;
|
|
Packit |
745572 |
use Filter::Util::Call ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
sub import
|
|
Packit |
745572 |
{
|
|
Packit |
745572 |
my ($type) = shift ;
|
|
Packit |
745572 |
filter_add(bless [] )
|
|
Packit |
745572 |
}
|
|
Packit |
745572 |
|
|
Packit |
745572 |
sub filter
|
|
Packit |
745572 |
{
|
|
Packit |
745572 |
my ($self) = @_ ;
|
|
Packit |
745572 |
my ($status) ;
|
|
Packit |
745572 |
if (($status = filter_read_exact(0)) > 0) {
|
|
Packit |
745572 |
s/HERE/THERE/g
|
|
Packit |
745572 |
}
|
|
Packit |
745572 |
$status ;
|
|
Packit |
745572 |
}
|
|
Packit |
745572 |
|
|
Packit |
745572 |
1 ;
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
writeFile($filenamebin, <
|
|
Packit |
745572 |
use $block ;
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
print "
|
|
Packit |
745572 |
HERE I am
|
|
Packit |
745572 |
I'm HERE
|
|
Packit |
745572 |
HERE today gone tomorrow\n" ;
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
$a = `$Perl "-I." $Inc $filenamebin $redir` ;
|
|
Packit |
745572 |
ok(33, ($? >>8) != 0) ;
|
|
Packit |
745572 |
ok(34, $a =~ /^filter_read_exact: size parameter must be > 0 at block.pm/) ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
|
|
Packit |
745572 |
END {
|
|
Packit |
745572 |
1 while unlink $filename ;
|
|
Packit |
745572 |
1 while unlink $filename2 ;
|
|
Packit |
745572 |
1 while unlink $filenamebin ;
|
|
Packit |
745572 |
1 while unlink "${module}.pm" ;
|
|
Packit |
745572 |
1 while unlink "${module2}.pm" ;
|
|
Packit |
745572 |
1 while unlink "${module3}.pm" ;
|
|
Packit |
745572 |
1 while unlink "${module4}.pm" ;
|
|
Packit |
745572 |
1 while unlink "${module5}.pm" ;
|
|
Packit |
745572 |
1 while unlink "${module6}.pm" ;
|
|
Packit |
745572 |
1 while unlink $nested ;
|
|
Packit |
745572 |
1 while unlink "${block}.pm" ;
|
|
Packit |
745572 |
}
|
|
Packit |
745572 |
|
|
Packit |
745572 |
|