Skip to content

Commit 12559dd

Browse files
committed
Do not open to write the fixture files
1 parent 4ad3610 commit 12559dd

File tree

2 files changed

+30
-11
lines changed

2 files changed

+30
-11
lines changed

spec/ruby/core/io/buffer/map_spec.rb

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,32 @@
22

33
describe "IO::Buffer.map" do
44
before :all do
5-
@big_file_name = tmp("big_file")
6-
# Usually 4 kibibytes + 16 bytes
7-
File.write(@big_file_name, "12345678" * (IO::Buffer::PAGE_SIZE / 8 + 2))
5+
@tmp_files = []
6+
7+
@big_file_name = nil
8+
@small_file_name = nil
89
end
910

1011
after :all do
11-
File.delete(@big_file_name)
12+
@tmp_files.each {|file| File.delete(file)}
1213
end
1314

1415
def open_fixture
15-
File.open("#{__dir__}/../fixtures/read_text.txt", "rb+")
16+
unless @small_file_name
17+
@small_file_name = tmp("read_text.txt")
18+
File.copy_stream(fixture(__dir__, "read_text.txt"), @small_file_name)
19+
@tmp_files << @small_file_name
20+
end
21+
File.open(@small_file_name, "rb+")
1622
end
1723

1824
def open_big_file_fixture
25+
unless @big_file_name
26+
@big_file_name = tmp("big_file")
27+
# Usually 4 kibibytes + 16 bytes
28+
File.write(@big_file_name, "12345678" * (IO::Buffer::PAGE_SIZE / 8 + 2))
29+
@tmp_files << @big_file_name
30+
end
1931
File.open(@big_file_name, "rb+")
2032
end
2133

@@ -91,15 +103,18 @@ def open_big_file_fixture
91103
context "with an empty file" do
92104
ruby_version_is "4.0" do
93105
it "raises ArgumentError" do
94-
@file = File.open("#{__dir__}/../fixtures/empty.txt", "rb+")
106+
file_name = tmp("empty.txt")
107+
@file = File.open(file_name, "wb+")
95108
-> { IO::Buffer.map(@file) }.should raise_error(ArgumentError, "Invalid negative or zero file size!")
109+
ensure
110+
File.unlink(file_name)
96111
end
97112
end
98113
end
99114

100115
context "with a file opened only for reading" do
101116
it "raises a SystemCallError unless read-only" do
102-
@file = File.open("#{__dir__}/../fixtures/read_text.txt", "rb")
117+
@file = File.open(fixture(__dir__, "read_text.txt"), "rb")
103118
-> { IO::Buffer.map(@file) }.should raise_error(SystemCallError)
104119
end
105120
end
@@ -251,7 +266,7 @@ def open_big_file_fixture
251266
end
252267

253268
it "allows mapping read-only files" do
254-
@file = File.open("#{__dir__}/../fixtures/read_text.txt", "rb")
269+
@file = File.open(fixture(__dir__, "read_text.txt"), "rb")
255270
@buffer = IO::Buffer.map(@file, nil, 0, IO::Buffer::READONLY)
256271

257272
@buffer.should.readonly?
@@ -284,7 +299,7 @@ def open_big_file_fixture
284299
end
285300

286301
it "allows mapping read-only files and modifying the buffer" do
287-
@file = File.open("#{__dir__}/../fixtures/read_text.txt", "rb")
302+
@file = File.open(fixture(__dir__, "read_text.txt"), "rb")
288303
@buffer = IO::Buffer.map(@file, nil, 0, IO::Buffer::PRIVATE)
289304

290305
@buffer.should.private?

spec/ruby/core/io/buffer/shared_spec.rb

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,14 @@
1212
end
1313

1414
it "is true for a non-private buffer created with .map" do
15-
file = File.open("#{__dir__}/../fixtures/read_text.txt", "r+")
15+
path = tmp("read_text.txt")
16+
File.copy_stream(fixture(__dir__, "read_text.txt"), path)
17+
file = File.open(path, "r+")
1618
@buffer = IO::Buffer.map(file)
17-
file.close
1819
@buffer.shared?.should be_true
20+
ensure
21+
file.close
22+
File.unlink(path)
1923
end
2024

2125
it "is false for an unshared buffer" do

0 commit comments

Comments
 (0)