Some tests for [perl #112244]
authorKarl Williamson <public@khwilliamson.com>
Sun, 17 Feb 2013 21:46:29 +0000 (14:46 -0700)
committerKarl Williamson <public@khwilliamson.com>
Tue, 19 Feb 2013 04:32:41 +0000 (21:32 -0700)
Leon Timmermans is short of tuits right now, so I added these tests for
his patch.  Since I don't really know what I'm doing here, other tests
should eventually be added by someone who does know.

t/io/crlf.t

index ff0f208..1e93ee0 100644 (file)
@@ -12,8 +12,10 @@ use Config;
 
 my $file = tempfile();
 
+my $ungetc_count = 8200;    # Somewhat over the likely buffer size
+
 {
-    plan(tests => 16);
+    plan(tests => 16 + 2 * $ungetc_count);
     ok(open(FOO,">:crlf",$file));
     ok(print FOO 'a'.((('a' x 14).qq{\n}) x 2000) || close(FOO));
     ok(open(FOO,"<:crlf",$file));
@@ -42,6 +44,16 @@ my $file = tempfile();
        $/ = "\n";
        $s = <$fh>.<$fh>;
        is($s, "\nxxy\n");
+
+        for my $i (0 .. $ungetc_count - 1) {
+            my $j = $i % 256;
+            is($fh->ungetc($j), $j, "ungetc of $j returns itself");
+        }
+
+        for (my $i = $ungetc_count - 1; $i >= 0; $i--) {
+            my $j = $i % 256;
+            is(ord($fh->getc()), $j, "getc gets back $j");
+        }
     }
 
     ok(close(FOO));