Hi,

I've finally got around to a proper breakdown of the rakudo test failures caused by the whiteknight/io_cleanup1 branch. Sorry that it took that long.

There are two blocks of failing tests in t/spec/S32-io/IO-Socket-INET.t.

The first block is the discrepancy about .read(4) reading 4 bytes but returning a string in parrot/master. I'm happy to address this on the Rakudo side (and tests) once the branch is merged. I like the new behavior better.

The second block is related to $socket.readline($sep) behaving differently from parrot/master with a non-\n separator (the first test that fails uses "\r\n" as a separator). I haven't tracked down what the exact bug is, but since those tests pass with parrot/master, I guess it's parrot regression.

Finally there are two failing tests in t/spec/S16-filehandles/io.t.
The cause here seems to be that $IO.read_bytes($n) reads $n bytes no matter what, even beyond the end of the file:

$ hexdump -C io.test.data
00000000  66 f6 f6                                          |f..|
00000003
$ ./perl6 -e 'my $f = open("io.test.data", :bin); say $f.read(10)'
Buf:0x<66 f6 f6 d2 57 2b 00 00 a0 17>

(Rakudo's IO.read calls the read_bytes method from parrots file handle)
So it gives me the 10 bytes I asked for, even though it should have stopped after 3 bytes.

Once the latter two regressions (readline separator and reading past the end of the file) are fixed, I'm happy to have the branch merged.

Cheers,
Moritz
_______________________________________________
http://lists.parrot.org/mailman/listinfo/parrot-dev

Reply via email to