stas        2004/09/27 20:37:27

  Modified:    t/response/TestModperl io_nested_with_closed_stds.pm
                        io_with_closed_stds.pm
  Log:
  solve the ' Unknown open() mode '<&' ' problem occuring under 5.6, by
  using non my-$foo symbols as filehandles
  
  Revision  Changes    Path
  1.2       +11 -6     modperl-2.0/t/response/TestModperl/io_nested_with_closed_stds.pm
  
  Index: io_nested_with_closed_stds.pm
  ===================================================================
  RCS file: 
/home/cvs/modperl-2.0/t/response/TestModperl/io_nested_with_closed_stds.pm,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -u -r1.1 -r1.2
  --- io_nested_with_closed_stds.pm     17 Feb 2004 01:22:41 -0000      1.1
  +++ io_nested_with_closed_stds.pm     28 Sep 2004 03:37:27 -0000      1.2
  @@ -5,6 +5,10 @@
   # internal_redirect(), which causes a nested override of already
   # overriden STD streams
   
  +# in this test we can't use my $foo as a filehandle, since perl 5.6
  +# doesn't know how to dup via: 'open STDIN,  "<&", $oldin'
  +# so use the old FOO filehandle style
  +
   use strict;
   use warnings FATAL => 'all';
   
  @@ -13,6 +17,7 @@
   use Apache::SubRequest ();
   
   use Apache::Test;
  +use Apache::TestUtil;
   
   use Apache::Const -compile => 'OK';
   
  @@ -36,17 +41,17 @@
           # one of the STD streams is closed.
           # but we must restore the STD streams so not to affect other
           # tests.
  -        open my $oldin,  "<&STDIN"  or die "Can't dup STDIN: $!";
  -        open my $oldout, ">&STDOUT" or die "Can't dup STDOUT: $!";
  +        open OLDIN,  "<&STDIN"  or die "Can't dup STDIN: $!";
  +        open OLDOUT, ">&STDOUT" or die "Can't dup STDOUT: $!";
           close STDIN;
           close STDOUT;
   
           $r->internal_redirect($redirect_uri);
   
  -        open STDIN,  "<&", $oldin  or die "Can't dup \$oldin: $!";
  -        open STDOUT, ">&", $oldout or die "Can't dup \$oldout: $!";
  -        close $oldin;
  -        close $oldout;
  +        open STDIN,  "<&OLDIN"  or die "Can't dup OLDIN: $!";
  +        open STDOUT, ">&OLDOUT" or die "Can't dup OLDOUT: $!";
  +        close OLDIN;
  +        close OLDOUT;
       }
   
       Apache::OK;
  
  
  
  1.2       +12 -10    modperl-2.0/t/response/TestModperl/io_with_closed_stds.pm
  
  Index: io_with_closed_stds.pm
  ===================================================================
  RCS file: /home/cvs/modperl-2.0/t/response/TestModperl/io_with_closed_stds.pm,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -u -r1.1 -r1.2
  --- io_with_closed_stds.pm    17 Feb 2004 01:22:41 -0000      1.1
  +++ io_with_closed_stds.pm    28 Sep 2004 03:37:27 -0000      1.2
  @@ -3,6 +3,12 @@
   # test that we can successfully override STD(IN|OUT) for
   # 'perl-script', even if they are closed.
   
  +# in this test we can't use my $foo as a filehandle, since perl 5.6
  +# doesn't know how to dup via: 'open STDIN,  "<&", $oldin'
  +# so use the old FOO filehandle style, which is also global, so we
  +# don't even need to pass it around (very bad code style, but I see no
  +# better solution if we want to have this test run under perl 5.6)
  +
   use strict;
   use warnings FATAL => 'all';
   
  @@ -21,12 +27,10 @@
       # we must close STDIN as well, due to a perl bug (5.8.0 - 5.8.3
       # w/useperlio), which emits a warning if dup is called with
       # one of the STD streams is closed.
  -    open my $oldin,  "<&STDIN"  or die "Can't dup STDIN: $!";
  -    open my $oldout, ">&STDOUT" or die "Can't dup STDOUT: $!";
  +    open OLDIN,  "<&STDIN"  or die "Can't dup STDIN: $!";
  +    open OLDOUT, ">&STDOUT" or die "Can't dup STDOUT: $!";
       close STDIN;
       close STDOUT;
  -    $r->pnotes(oldin  => $oldin);
  -    $r->pnotes(oldout => $oldout);
   
       Apache::OK;
   }
  @@ -45,12 +49,10 @@
       my $r = shift;
   
       # restore the STD(IN|OUT) streams so not to affect other tests.
  -    my $oldin  = $r->pnotes('oldin');
  -    my $oldout = $r->pnotes('oldout');
  -    open STDIN,  "<&", $oldin  or die "Can't dup \$oldin: $!";
  -    open STDOUT, ">&", $oldout or die "Can't dup \$oldout: $!";
  -    close $oldin;
  -    close $oldout;
  +    open STDIN,  "<&OLDIN"  or die "Can't dup OLDIN: $!";
  +    open STDOUT, ">&OLDOUT" or die "Can't dup OLDOUT: $!";
  +    close OLDIN;
  +    close OLDOUT;
   
       Apache::OK;
   }
  
  
  

Reply via email to