Add SharedMemory#write_object and #read_object; add SharedMemoryIO helper.

This commit is contained in:
Patrick Mahoney committed 2011-12-20 22:09:38 -06:00
1 parent cf6b821b17
commit cc663a8d7f
3 files changed
+376 -1

No files matched your search

+25
View File
@@ -32,5 +32,30 @@ module ProcessShared
mem.get_int(0).must_equal(1234567)
end
describe 'Object dump/load' do
it 'writes serialized objects' do
mem = SharedMemory.new(1024)
pid = fork do
mem.write_object(['a', 'b'])
Kernel.exit!
end
::Process.wait(pid)
mem.read_object.must_equal ['a', 'b']
end
it 'raises IndexError when insufficient space' do
mem = SharedMemory.new(2)
proc { mem.write_object(['a', 'b']) }.must_raise(IndexError)
end
it 'writes with an offset' do
mem = SharedMemory.new(1024)
mem.put_object(2, 'string')
proc { mem.read_object }.must_raise(TypeError)
proc { mem.get_object(0) }.must_raise(TypeError)
mem.get_object(2).must_equal 'string'
end
end
end
end