home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / perl560.zip / t / io / argv.t next >
Text File  |  1999-12-29  |  3KB  |  126 lines

  1. #!./perl
  2.  
  3. BEGIN {
  4.     chdir 't' if -d 't';
  5.     unshift @INC, '../lib';
  6. }
  7.  
  8. print "1..20\n";
  9.  
  10. use File::Spec;
  11.  
  12. my $devnull = File::Spec->devnull;
  13.  
  14. open(try, '>Io_argv1.tmp') || (die "Can't open temp file: $!");
  15. print try "a line\n";
  16. close try;
  17.  
  18. if ($^O eq 'MSWin32') {
  19.   $x = `.\\perl -e "while (<>) {print \$.,\$_;}" Io_argv1.tmp Io_argv1.tmp`;
  20. }
  21. else {
  22.   $x = `./perl -e 'while (<>) {print \$.,\$_;}' Io_argv1.tmp Io_argv1.tmp`;
  23. }
  24. if ($x eq "1a line\n2a line\n") {print "ok 1\n";} else {print "not ok 1\n";}
  25.  
  26. if ($^O eq 'MSWin32') {
  27.   $x = `.\\perl -le "print 'foo'" | .\\perl -e "while (<>) {print \$_;}" Io_argv1.tmp -`;
  28. }
  29. else {
  30.   $x = `echo foo|./perl -e 'while (<>) {print $_;}' Io_argv1.tmp -`;
  31. }
  32. if ($x eq "a line\nfoo\n") {print "ok 2\n";} else {print "not ok 2\n";}
  33.  
  34. if ($^O eq 'MSWin32') {
  35.   $x = `.\\perl -le "print 'foo'" |.\\perl -e "while (<>) {print \$_;}"`;
  36. }
  37. else {
  38.   $x = `echo foo|./perl -e 'while (<>) {print $_;}'`;
  39. }
  40. if ($x eq "foo\n") {print "ok 3\n";} else {print "not ok 3 :$x:\n";}
  41.  
  42. @ARGV = ('Io_argv1.tmp', 'Io_argv1.tmp', $devnull, 'Io_argv1.tmp');
  43. while (<>) {
  44.     $y .= $. . $_;
  45.     if (eof()) {
  46.     if ($. == 3) {print "ok 4\n";} else {print "not ok 4\n";}
  47.     }
  48. }
  49.  
  50. if ($y eq "1a line\n2a line\n3a line\n")
  51.     {print "ok 5\n";}
  52. else
  53.     {print "not ok 5\n";}
  54.  
  55. open(try, '>Io_argv1.tmp') or die "Can't open temp file: $!";
  56. close try;
  57. open(try, '>Io_argv2.tmp') or die "Can't open temp file: $!";
  58. close try;
  59. @ARGV = ('Io_argv1.tmp', 'Io_argv2.tmp');
  60. $^I = '.bak';
  61. $/ = undef;
  62. my $i = 6;
  63. while (<>) {
  64.     s/^/ok $i\n/;
  65.     ++$i;
  66.     print;
  67. }
  68. open(try, '<Io_argv1.tmp') or die "Can't open temp file: $!";
  69. print while <try>;
  70. open(try, '<Io_argv2.tmp') or die "Can't open temp file: $!";
  71. print while <try>;
  72. close try;
  73. undef $^I;
  74.  
  75. eof try or print 'not ';
  76. print "ok 8\n";
  77.  
  78. eof NEVEROPENED or print 'not ';
  79. print "ok 9\n";
  80.  
  81. open STDIN, 'Io_argv1.tmp' or die $!;
  82. @ARGV = ();
  83. !eof() or print 'not ';
  84. print "ok 10\n";
  85.  
  86. <> eq "ok 6\n" or print 'not ';
  87. print "ok 11\n";
  88.  
  89. open STDIN, $devnull or die $!;
  90. @ARGV = ();
  91. eof() or print 'not ';
  92. print "ok 12\n";
  93.  
  94. @ARGV = ('Io_argv1.tmp');
  95. !eof() or print 'not ';
  96. print "ok 13\n";
  97.  
  98. @ARGV = ($devnull, $devnull);
  99. !eof() or print 'not ';
  100. print "ok 14\n";
  101.  
  102. close ARGV or die $!;
  103. eof() or print 'not ';
  104. print "ok 15\n";
  105.  
  106. {
  107.     local $/;
  108.     open F, 'Io_argv1.tmp' or die;
  109.     <F>;    # set $. = 1
  110.     open F, $devnull or die;
  111.     print "not " unless defined(<F>);
  112.     print "ok 16\n";
  113.     print "not " if defined(<F>);
  114.     print "ok 17\n";
  115.     print "not " if defined(<F>);
  116.     print "ok 18\n";
  117.     open F, $devnull or die;    # restart cycle again
  118.     print "not " unless defined(<F>);
  119.     print "ok 19\n";
  120.     print "not " if defined(<F>);
  121.     print "ok 20\n";
  122.     close F;
  123. }
  124.  
  125. END { unlink 'Io_argv1.tmp', 'Io_argv1.tmp.bak', 'Io_argv2.tmp', 'Io_argv2.tmp.bak' }
  126.