summaryrefslogtreecommitdiff
path: root/spec/ruby/core/io/close_write_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/ruby/core/io/close_write_spec.rb')
-rw-r--r--spec/ruby/core/io/close_write_spec.rb56
1 files changed, 20 insertions, 36 deletions
diff --git a/spec/ruby/core/io/close_write_spec.rb b/spec/ruby/core/io/close_write_spec.rb
index c901aac499..60b41505c3 100644
--- a/spec/ruby/core/io/close_write_spec.rb
+++ b/spec/ruby/core/io/close_write_spec.rb
@@ -1,9 +1,10 @@
-require File.expand_path('../../../spec_helper', __FILE__)
-require File.expand_path('../fixtures/classes', __FILE__)
+require_relative '../../spec_helper'
+require_relative 'fixtures/classes'
describe "IO#close_write" do
before :each do
- @io = IO.popen 'cat', 'r+'
+ cmd = platform_is(:windows) ? 'rem' : 'cat'
+ @io = IO.popen cmd, 'r+'
@path = tmp('io.close.txt')
end
@@ -15,36 +16,26 @@ describe "IO#close_write" do
it "closes the write end of a duplex I/O stream" do
@io.close_write
- lambda { @io.write "attempt to write" }.should raise_error(IOError)
+ -> { @io.write "attempt to write" }.should.raise(IOError)
end
- ruby_version_is ''...'2.3' do
- it "raises an IOError on subsequent invocations" do
- @io.close_write
-
- lambda { @io.close_write }.should raise_error(IOError)
- end
- end
-
- ruby_version_is '2.3' do
- it "does nothing on subsequent invocations" do
- @io.close_write
+ it "does nothing on subsequent invocations" do
+ @io.close_write
- @io.close_write.should be_nil
- end
+ @io.close_write.should == nil
end
it "allows subsequent invocation of close" do
@io.close_write
- lambda { @io.close }.should_not raise_error
+ -> { @io.close }.should_not.raise
end
it "raises an IOError if the stream is readable and not duplexed" do
io = File.open @path, 'w+'
begin
- lambda { io.close_write }.should raise_error(IOError)
+ -> { io.close_write }.should.raise(IOError)
ensure
io.close unless io.closed?
end
@@ -55,30 +46,23 @@ describe "IO#close_write" do
io.close_write
- io.closed?.should == true
+ io.should.closed?
end
- it "flushes and closes the write stream" do
- @io.puts '12345'
-
- @io.close_write
+ # Windows didn't have command like cat
+ platform_is_not :windows do
+ it "flushes and closes the write stream" do
+ @io.puts '12345'
- @io.read.should == "12345\n"
- end
-
- ruby_version_is ''...'2.3' do
- it "raises IOError on closed stream" do
- @io.close
+ @io.close_write
- lambda { @io.close_write }.should raise_error(IOError)
+ @io.read.should == "12345\n"
end
end
- ruby_version_is '2.3' do
- it "does nothing on closed stream" do
- @io.close
+ it "does nothing on closed stream" do
+ @io.close
- @io.close_write.should be_nil
- end
+ @io.close_write.should == nil
end
end