Class IO::IOMarshalTest
In: lib/io_marshal.rb
Parent: Test::Unit::TestCase

Methods

Public Instance methods

Tests

[Source]

# File lib/io_marshal.rb, line 70
  def test_simple
    obj1 = 12
    obj2 = 'hello'
    obj3 = { 'a' => 12, 'b' => 42 }
    rd, wr = IO.pipe
    if pid = fork # father
      wr.close
      o1, o2 = rd.load(2)
      assert_equal(obj1, o1)
      assert_equal(obj2, o2)
      o3 = rd.load
      assert_equal([obj3], o3)
      assert_equal(nil, rd.load(4, true))
      assert_equal(nil, rd.load_one_object(true))
      Process.waitpid(pid)
      rd.close
    else #  son
      rd.close
      sleep(0.5)
      wr.dump(obj1)
      wr.dump(obj2, obj3)
      wr.close
      exit
    end
  end

[Validate]