Implement File#sysseek
This commit is contained in:
parent
75e4eeff65
commit
01735bb17a
@ -239,8 +239,9 @@ module FakeFS
|
|||||||
raise NotImplementedError
|
raise NotImplementedError
|
||||||
end
|
end
|
||||||
|
|
||||||
def sysseek(offset, whence = SEEK_SET)
|
def sysseek(position, whence = SEEK_SET)
|
||||||
raise NotImplementedError
|
seek(position, whence)
|
||||||
|
pos
|
||||||
end
|
end
|
||||||
|
|
||||||
alias_method :to_i, :fileno
|
alias_method :to_i, :fileno
|
||||||
|
44
test/fake/file/sysseek_test.rb
Normal file
44
test/fake/file/sysseek_test.rb
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
require "test_helper"
|
||||||
|
|
||||||
|
class FileSysSeek < Test::Unit::TestCase
|
||||||
|
def setup
|
||||||
|
FakeFS.activate!
|
||||||
|
FakeFS::FileSystem.clear
|
||||||
|
end
|
||||||
|
|
||||||
|
def teardown
|
||||||
|
FakeFS.deactivate!
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_should_seek_to_position
|
||||||
|
file = File.open("foo", "w") do |f|
|
||||||
|
f << "0123456789"
|
||||||
|
end
|
||||||
|
|
||||||
|
File.open("foo", "r") do |f|
|
||||||
|
f.sysseek(3)
|
||||||
|
assert_equal 3, f.pos
|
||||||
|
|
||||||
|
f.sysseek(0)
|
||||||
|
assert_equal 0, f.pos
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_seek_returns_offset_into_file
|
||||||
|
File.open("foo", "w") do |f|
|
||||||
|
# 66 chars long
|
||||||
|
str = "0123456789" +
|
||||||
|
"0123456789" +
|
||||||
|
"0123456789" +
|
||||||
|
"0123456789" +
|
||||||
|
"0123456789" +
|
||||||
|
"0123456789" +
|
||||||
|
"012345"
|
||||||
|
|
||||||
|
f << str
|
||||||
|
end
|
||||||
|
|
||||||
|
f = File.open("foo")
|
||||||
|
assert_equal 53, f.sysseek(-13, IO::SEEK_END)
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in New Issue
Block a user