Hi Ed,

On Fri, Jul 4, 2008 at 11:48 PM, M. Edward (Ed) Borasky
<znmeb / cesmail.net> wrote:
> Vladimir Sizikov wrote:
>>
>> With the very latest RubySpec revision, Arthur and Federico managed to
>> bring the number of spec failures for 1.8.6 and 1.8.7 HEADS to ZERO
>> (on MacOS), and there are only 2 spec failures (IO failures only seen
>> on Linux).
>
> Outstanding!! Can you post some details on those "IO failures only seen on
> Linux?" I've spent a bit of time the past couple of months digging into
> Linux I/O. :)

Here you go. These two been bugging me for a while. They could be seen
only on Linux. On MacOS and Windows they pass. Also, they pass with
JRuby on all platforms.

mspec -t /opt/ruby186-dev/bin/ruby 1.8/core/io/sysseek_spec.rb
1.8/core/io/sysread_spec.rb
....F.........F.

1)
IO#sysseek on a file moves the read position relative to the end with
SEEK_END FAILED
Expected 0
 to equal 134

/opt/work/mspec.git/lib/mspec/expectations/expectations.rb:10:in `fail_with'
/opt/work/mspec.git/lib/mspec/matchers/base.rb:8:in `=='
./1.8/core/io/sysseek_spec.rb:49
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:130:in `instance_eval'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:130:in `protect'
/opt/work/mspec.git/lib/mspec/runner/state.rb:46:in `protect'
/opt/work/mspec.git/lib/mspec/runner/state.rb:46:in `each'
/opt/work/mspec.git/lib/mspec/runner/state.rb:46:in `protect'
/opt/work/mspec.git/lib/mspec/runner/state.rb:60:in `process'
/opt/work/mspec.git/lib/mspec/runner/state.rb:56:in `each'
/opt/work/mspec.git/lib/mspec/runner/state.rb:56:in `process'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:27:in `describe'
/opt/work/mspec.git/lib/mspec/runner/object.rb:11:in `describe'
./1.8/core/io/sysseek_spec.rb:4
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:48:in `load'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:48:in `files'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:130:in `instance_eval'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:130:in `protect'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:48:in `files'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:42:in `each'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:42:in `files'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:34:in `process'
/opt/work/mspec.git/lib/mspec/commands/mspec-run.rb:75:in `run'
/opt/work/mspec.git/lib/mspec/utils/script.rb:85:in `main'
/opt/work/mspec.git/bin/mspec-run:8

2)
IO#sysread on a file flushes write buffer when called immediately
after a buffered IO#write FAILED
Expected "01234"
 to equal "56789"

/opt/work/mspec.git/lib/mspec/expectations/expectations.rb:10:in `fail_with'
/opt/work/mspec.git/lib/mspec/matchers/base.rb:8:in `=='
./1.8/core/io/sysread_spec.rb:72
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:130:in `instance_eval'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:130:in `protect'
/opt/work/mspec.git/lib/mspec/runner/state.rb:46:in `protect'
/opt/work/mspec.git/lib/mspec/runner/state.rb:46:in `each'
/opt/work/mspec.git/lib/mspec/runner/state.rb:46:in `protect'
/opt/work/mspec.git/lib/mspec/runner/state.rb:60:in `process'
/opt/work/mspec.git/lib/mspec/runner/state.rb:56:in `each'
/opt/work/mspec.git/lib/mspec/runner/state.rb:56:in `process'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:27:in `describe'
/opt/work/mspec.git/lib/mspec/runner/object.rb:11:in `describe'
./1.8/core/io/sysread_spec.rb:4
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:48:in `load'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:48:in `files'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:130:in `instance_eval'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:130:in `protect'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:48:in `files'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:42:in `each'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:42:in `files'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:34:in `process'
/opt/work/mspec.git/lib/mspec/commands/mspec-run.rb:75:in `run'
/opt/work/mspec.git/lib/mspec/utils/script.rb:85:in `main'
/opt/work/mspec.git/bin/mspec-run:8

Finished in 0.013024 seconds

2 files, 16 examples, 26 expectations, 2 failures, 0 errors