|
Packit |
745572 |
#! perl
|
|
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 $tee1) ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
my $file = "tee.test" ;
|
|
Packit |
745572 |
$tee1 = "tee1" ;
|
|
Packit |
745572 |
my $tee2 = "tee2" ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
|
|
Packit |
745572 |
my $out1 = <<"EOF" ;
|
|
Packit |
745572 |
use Filter::tee '>$tee1' ;
|
|
Packit |
745572 |
EOF
|
|
Packit |
745572 |
|
|
Packit |
745572 |
my $out2 = <<"EOF" ;
|
|
Packit |
745572 |
use Filter::tee '>>$tee2' ;
|
|
Packit |
745572 |
EOF
|
|
Packit |
745572 |
|
|
Packit |
745572 |
my $out3 = <<'EOF' ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
$a = 1 ;
|
|
Packit |
745572 |
print "a = $a\n" ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
use Carp ;
|
|
Packit |
745572 |
require "./joe" ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
print <
|
|
Packit |
745572 |
hello
|
|
Packit |
745572 |
horray
|
|
Packit |
745572 |
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
exit 0 ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
EOF
|
|
Packit |
745572 |
|
|
Packit |
745572 |
my $out4 = <<'EOM' ;
|
|
Packit |
745572 |
Here is the news
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
writeFile($file, $out1, $out2, $out3) ;
|
|
Packit |
745572 |
writeFile('joe', 'print "joe\n"') ;
|
|
Packit |
745572 |
writeFile($tee2, $out4) ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
my $a = `$Perl $Inc $file 2>&1` ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
print "1..5\n" ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
ok(1, ($? >> 8) == 0) ;
|
|
Packit |
745572 |
ok(2, $a eq <
|
|
Packit |
745572 |
a = 1
|
|
Packit |
745572 |
joe
|
|
Packit |
745572 |
hello
|
|
Packit |
745572 |
horray
|
|
Packit |
745572 |
|
|
Packit |
745572 |
EOM
|
|
Packit |
745572 |
|
|
Packit |
745572 |
ok(3, $out2 . $out3 eq readFile($tee1)) ;
|
|
Packit |
745572 |
ok(4, $out4 . $out3 eq readFile($tee2)) ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
if ($< == 0 or ($^O =~ /MSWin32|cygwin|msys/)) {
|
|
Packit |
745572 |
ok (5, 1); # windows allows all Administrator members read-access
|
|
Packit |
745572 |
} else {
|
|
Packit |
745572 |
chmod 0444, $tee1 ;
|
|
Packit |
745572 |
$a = `$Perl $Inc $file 2>&1` ;
|
|
Packit |
745572 |
|
|
Packit |
745572 |
ok(5, $a =~ /cannot open file 'tee1':/) ;
|
|
Packit |
745572 |
}
|
|
Packit |
745572 |
|
|
Packit |
745572 |
unlink $file or die "Cannot remove $file: $!\n" ;
|
|
Packit |
745572 |
unlink 'joe' or die "Cannot remove joe: $!\n" ;
|
|
Packit |
745572 |
unlink $tee1 or die "Cannot remove $tee1: $!\n" ;
|
|
Packit |
745572 |
unlink $tee2 or die "Cannot remove $tee2: $!\n" ;
|