Sha256: 7b27540307c3628c6acccf3a2cd67933dd07701a89b7077e86343536944392b7

Contents?: true

Size: 895 Bytes

Versions: 66

Compression:

Stored size: 895 Bytes

Contents

$:.unshift "../lib"
require 'eventmachine'
require 'test/unit'

class TestProcessWatch < Test::Unit::TestCase
  module ParentProcessWatcher
    def process_forked
      $forked = true
    end
  end

  module ChildProcessWatcher
    def process_exited
      $exited = true
    end
    def unbind
      $unbind = true
      EM.stop
    end
  end

  def setup
    EM.kqueue = true if EM.kqueue?
  end

  def teardown
    EM.kqueue = false if EM.kqueue?
  end

  def test_events
    EM.run{
      # watch ourselves for a fork notification
      EM.watch_process(Process.pid, ParentProcessWatcher)
      $fork_pid = fork{ sleep }
      child = EM.watch_process($fork_pid, ChildProcessWatcher)
      $pid = child.pid

      EM.add_timer(0.5){
        Process.kill('TERM', $fork_pid)
      }
    }

    assert_equal($pid, $fork_pid)
    assert($forked)
    assert($exited)
    assert($unbind)
  end
end

Version data entries

66 entries across 66 versions & 8 rubygems

Version Path
classiccms-0.7.5 vendor/bundle/gems/eventmachine-0.12.10/tests/test_process_watch.rb
classiccms-0.7.4 vendor/bundle/gems/eventmachine-0.12.10/tests/test_process_watch.rb
classiccms-0.7.3 vendor/bundle/gems/eventmachine-0.12.10/tests/test_process_watch.rb
MattHulse-eventmachine-0.0.1 tests/test_process_watch.rb
MattHulse-eventmachine-0.12.10 tests/test_process_watch.rb
eventmachine-eventmachine-0.12.8 tests/test_process_watch.rb
eventmachine-eventmachine-0.12.9 tests/test_process_watch.rb
classiccms-0.7.2 vendor/bundle/gems/eventmachine-0.12.10/tests/test_process_watch.rb
classiccms-0.7.1 vendor/bundle/gems/eventmachine-0.12.10/tests/test_process_watch.rb
classiccms-0.7.0 vendor/bundle/gems/eventmachine-0.12.10/tests/test_process_watch.rb
classiccms-0.6.9 vendor/bundle/gems/eventmachine-0.12.10/tests/test_process_watch.rb
classiccms-0.6.8 vendor/bundle/gems/eventmachine-0.12.10/tests/test_process_watch.rb
classiccms-0.6.7 vendor/bundle/gems/eventmachine-0.12.10/tests/test_process_watch.rb
classiccms-0.6.6 vendor/bundle/gems/eventmachine-0.12.10/tests/test_process_watch.rb
classiccms-0.6.5 vendor/bundle/gems/eventmachine-0.12.10/tests/test_process_watch.rb
classiccms-0.6.4 vendor/bundle/gems/eventmachine-0.12.10/tests/test_process_watch.rb
classiccms-0.6.3 vendor/bundle/gems/eventmachine-0.12.10/tests/test_process_watch.rb
classiccms-0.6.2 vendor/bundle/gems/eventmachine-0.12.10/tests/test_process_watch.rb
classiccms-0.6.1 vendor/bundle/gems/eventmachine-0.12.10/tests/test_process_watch.rb
classiccms-0.6.0 vendor/bundle/gems/eventmachine-0.12.10/tests/test_process_watch.rb