More consting goodness
[p5sagit/p5-mst-13.2.git] / t / io / tell.t
index ddc29ff..dcb4ee9 100755 (executable)
@@ -7,12 +7,13 @@ BEGIN {
     @INC = '../lib';
 }
 
-print "1..27\n";
+print "1..28\n";
 
 $TST = 'tst';
 
 $Is_Dosish = ($^O eq 'MSWin32' or $^O eq 'NetWare' or $^O eq 'dos' or
-             $^O eq 'os2' or $^O eq 'mint' or $^O eq 'cygwin');
+              $^O eq 'os2' or $^O eq 'mint' or $^O eq 'cygwin' or
+              $^O =~ /^uwin/);
 
 open($TST, 'harness') || (die "Can't open harness");
 binmode $TST if $Is_Dosish;
@@ -99,7 +100,7 @@ if (tell(ether) == -1)  { print "ok 23\n"; } else { print "not ok 23\n"; }
 
 my $written = "tell_write.txt";
 
-END { unlink($written) }
+END { 1 while unlink($written) }
 
 close($tst);
 open($tst,">$written")  || die "Cannot open $written:$!";
@@ -136,8 +137,24 @@ if (tell($tst) == 5) { print "ok 30\n"; } else { print "not ok 30\n"; }
 
 print $tst "xxxx\n";
 
-if (tell($tst) == 15) { print "ok 27\n"; } else { print "not ok 27\n"; }
+if (tell($tst) == 15 ||
+    tell($tst) == 5) # unset PERLIO or PERLIO=stdio (e.g. HP-UX, Solaris)
+{ print "ok 27\n"; } else { print "not ok 27\n"; }
 
 close($tst);
 
+open($tst,">$written")  || die "Cannot open $written:$!";
+print $tst "foobar";
+close $tst;
+open($tst,">>$written")  || die "Cannot open $written:$!";
+
+# This test makes a questionable assumption that the file pointer will
+# be at eof after opening a file but before seeking, reading, or writing.
+# Only known failure is on cygwin.
+my $todo = $^O eq "cygwin" && &PerlIO::get_layers($tst) eq 'stdio'
+    && ' # TODO: file pointer not at eof';
+
+if (tell($tst) == 6)
+{ print "ok 28$todo\n"; } else { print "not ok 28$todo\n"; }
+close $tst;