|
Packit |
745572 |
#! perl
|
|
Packit |
745572 |
# check that the filters are destroyed in the correct order by
|
|
Packit |
745572 |
# installing two different types of filter. If they don't get destroyed
|
|
Packit |
745572 |
# in the correct order we should get a "filter_del can only delete in
|
|
Packit |
745572 |
# reverse order" error
|
|
Packit |
745572 |
|
|
Packit |
745572 |
# skip this set of tests is running on anything less than 5.006
|
|
Packit |
745572 |
if ($] < 5.006) {
|
|
Packit |
745572 |
print "1..0\n";
|
|
Packit |
745572 |
exit 0;
|
|
Packit |
745572 |
}
|
|
Packit |
745572 |
|
|
Packit |
745572 |
use strict;
|
|
Packit |
745572 |
use warnings;
|
|
Packit |
745572 |
BEGIN { unshift @INC, 't'; }
|
|
Packit |
745572 |
require "filter-util.pl" ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
use vars qw( $Inc $Perl) ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
my $file = "order.test" ;
|
|
Packit |
745572 |
my $module = "FilterTry";
|
|
Packit |
745572 |
my $tee1 = "order1" ;
|
|
Packit |
745572 |
$Inc .= " -It";
|
|
Packit |
745572 |
|
|
Packit |
745572 |
writeFile("t/${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 |
__END__
|
|
Packit |
745572 |
|
|
Packit |
745572 |
=head1 NAME
|
|
Packit |
745572 |
|
|
Packit |
745572 |
FilterTry - Perl Source Filter Example Module created by t/order.t
|
|
Packit |
745572 |
|
|
Packit |
745572 |
=head1 SYNOPSIS
|
|
Packit |
745572 |
|
|
Packit |
745572 |
use FilterTry ;
|
|
Packit |
745572 |
sourcecode...
|
|
Packit |
745572 |
|
|
Packit |
745572 |
=cut
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
my $fil1 = <<"EOM";
|
|
Packit |
745572 |
use $module ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
print "ABC ABC\n" ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
writeFile($file, <<"EOM", $fil1) ;
|
|
Packit |
745572 |
use Filter::tee '>$tee1' ;
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
my $a = `$Perl $Inc $file 2>&1` ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
print "1..3\n" ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
ok(1, ($? >> 8) == 0) ;
|
|
Packit |
745572 |
chomp $a; # strip crlf resp. lf
|
|
Packit |
745572 |
#print "|$a|\n";
|
|
Packit |
745572 |
ok(2, $a eq "DEF DEF");
|
|
Packit |
745572 |
|
|
Packit |
745572 |
my $readtee1 = readFile($tee1);
|
|
Packit |
745572 |
if ($^O eq 'MSWin32') {
|
|
Packit |
745572 |
$readtee1 =~ s/\r//g;
|
|
Packit |
745572 |
}
|
|
Packit |
745572 |
ok(3, $fil1 eq $readtee1) ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
unlink $file or die "Cannot remove $file: $!\n" ;
|
|
Packit |
745572 |
unlink $tee1 or die "Cannot remove $tee1: $!\n" ;
|