Skip to content

Commit e48ed4b

Browse files
committed
Do not open to write the fixture files
1 parent d3ea389 commit e48ed4b

File tree

2 files changed

+29
-11
lines changed

2 files changed

+29
-11
lines changed

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

Lines changed: 22 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,16 @@ 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!")
96109
end
97110
end
98111
end
99112

100113
context "with a file opened only for reading" do
101114
it "raises a SystemCallError unless read-only" do
102-
@file = File.open("#{__dir__}/../fixtures/read_text.txt", "rb")
115+
@file = File.open(fixture(__dir__, "read_text.txt"), "rb")
103116
-> { IO::Buffer.map(@file) }.should raise_error(SystemCallError)
104117
end
105118
end
@@ -251,7 +264,7 @@ def open_big_file_fixture
251264
end
252265

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

257270
@buffer.should.readonly?
@@ -284,7 +297,7 @@ def open_big_file_fixture
284297
end
285298

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

290303
@buffer.should.private?

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

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,15 @@
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+
@buffer.free
22+
file.close
23+
File.unlink(path)
1924
end
2025

2126
it "is false for an unshared buffer" do

0 commit comments

Comments
 (0)