diff options
Diffstat (limited to 'spec/ecore_spec.rb')
-rw-r--r-- | spec/ecore_spec.rb | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/spec/ecore_spec.rb b/spec/ecore_spec.rb index e1260fc..8d7f4bf 100644 --- a/spec/ecore_spec.rb +++ b/spec/ecore_spec.rb @@ -20,8 +20,27 @@ describe EFL::ECORE do end # it "should run a single iteration of the mainloop" do - ECORE.init.should eql 1 + ECORE.init ECORE.main_loop_iterate - ECORE.shutdown.should eql 0 + ECORE.shutdown + end + # + it 'should write and read data from pipe' do + ECORE.init + cb = Proc.new do |data,buffer,bytes| + data.read_string.should eql 'none' + buffer.read_string.should eql 'hello world' + bytes.should eql 12 + end + data = FFI::MemoryPointer.from_string("none") + pipe = ECORE.pipe_add cb, data + buffer = FFI::MemoryPointer.new(:string,128) + buffer.write_string 'hello world' + ECORE.pipe_write pipe, buffer, 12 + ECORE.main_loop_iterate + ECORE.pipe_read_close pipe + ECORE.pipe_write_close pipe + ECORE.pipe_del pipe + ECORE.shutdown end end |