Skip to content

Instantly share code, notes, and snippets.

@benlangfeld
Created July 25, 2012 11:34
Show Gist options
  • Save benlangfeld/d30458c319fbb8e82dfe to your computer and use it in GitHub Desktop.
Save benlangfeld/d30458c319fbb8e82dfe to your computer and use it in GitHub Desktop.
{13:34}[ruby-1.9.3]~/code/celluloid@master✗✗✗ ben% be rake
/Users/ben/Developer/.rvm/rubies/ruby-1.9.3-p194/bin/ruby -S rspec ./spec/celluloid/actor_spec.rb ./spec/celluloid/fsm_spec.rb ./spec/celluloid/future_spec.rb ./spec/celluloid/mailbox_spec.rb ./spec/celluloid/notifications_spec.rb ./spec/celluloid/pool_spec.rb ./spec/celluloid/registry_spec.rb ./spec/celluloid/supervision_group_spec.rb ./spec/celluloid/supervisor_spec.rb ./spec/celluloid/thread_handle_spec.rb ./spec/celluloid/uuid_spec.rb
/Users/ben/code/celluloid/spec/celluloid/fsm_spec.rb:5: warning: already initialized constant Q
/Users/ben/code/celluloid/spec/support/mailbox_examples.rb:3: warning: already initialized constant Q
Run options: include {:focus=>true}
All examples were filtered out; ignoring {:focus=>true}
Celluloid
behaves like a Celluloid Actor
returns the actor's class, not the proxy's
compares with the actor's class in a case statement
handles synchronous calls
handles futures for synchronous calls
handles circular synchronous calls
properly handles method_missing
raises NoMethodError when a nonexistent method is called
E, [2012-07-25T13:34:18.703598 #96413] ERROR -- : #<Class:0x007f8b6d04dda0> crashed!
ExampleCrash: the spec purposely crashed me :(
/Users/ben/code/celluloid/spec/support/example_actor_class.rb:29:in `crash'
/Users/ben/code/celluloid/lib/celluloid/calls.rb:57:in `dispatch'
/Users/ben/code/celluloid/lib/celluloid/actor.rb:312:in `block in handle_message'
/Users/ben/code/celluloid/lib/celluloid/task.rb:45:in `block in initialize'
reraises exceptions which occur during synchronous calls in the caller
E, [2012-07-25T13:34:18.705387 #96413] ERROR -- : #<Class:0x007f8b6d05cd50> crashed!
ExampleCrash: the spec purposely crashed me :(
/Users/ben/code/celluloid/spec/support/example_actor_class.rb:29:in `crash'
/Users/ben/code/celluloid/lib/celluloid/calls.rb:57:in `dispatch'
/Users/ben/code/celluloid/lib/celluloid/actor.rb:312:in `block in handle_message'
/Users/ben/code/celluloid/lib/celluloid/task.rb:45:in `block in initialize'
raises DeadActorError if methods are synchronously called on a dead actor
handles asynchronous calls
handles asynchronous calls via #async
handles asynchronous calls to itself
allows an actor to call private methods asynchronously with a bang
knows if it's inside actor scope
inspects properly
inspects properly when dead
allows access to the wrapped object
when #abort is called
E, [2012-07-25T13:34:18.740858 #96413] ERROR -- : #<Class:0x007f8b6c81b2e0> crashed!
NoMethodError: undefined method `alive?' for #<Celluloid::Actor:0x007f8b6c8972a0>
/Users/ben/code/celluloid/lib/celluloid.rb:206:in `alive?'
/Users/ben/code/celluloid/vendor/ruby/1.9.1/gems/rspec-expectations-2.9.0/lib/rspec/matchers/built_in/be.rb:132:in `matches?'
/Users/ben/code/celluloid/vendor/ruby/1.9.1/gems/rspec-expectations-2.9.0/lib/rspec/expectations/handler.rb:9:in `handle_matcher'
/Users/ben/code/celluloid/vend raises exceptions in the caller but keeps running (FAILED - 1)or/ruby/1.9.1/gems/rspec-expectations-2.9.0/lib/rspec/expectations/extensions/kernel.rb:12:in `should'
/Users/ben/code/celluloid/lib/celluloid/calls.rb:57:in `dispatch'
/Users/ben/code/celluloid/lib/celluloid/actor.rb:312:in `block in handle_message'
/Users/ben/code/celluloid/lib/celluloid/task.rb:45:in `block in initialize'
converts strings to runtime errors
E, [2012-07-25T13:34:18.745073 #96413] ERROR -- : #<Class:0x007f8b6c8dac58> crashed!
TypeError: Exception object/String expected, but Fixnum received
/Users/ben/code/celluloid/lib/celluloid.rb:214:in `abort'
/Users/ben/code/celluloid/spec/support/example_actor_class.rb:39:in `crash_with_abort_raw'
/Users/ben/code/celluloid/lib/celluloid/calls.rb:57:in `dispatch'
/Users/ben/code/celluloid/lib/celluloid/actor.rb:312:in `block in handle_message'
/Users/ben/code/celluloid/lib/celluloid/task.rb:45:in `block in initialize'
crashes the caller if we pass neither String nor Exception (FAILED - 2)
mocking methods
works externally via the proxy
works internally when called on self
termination
E, [2012-07-25T13:34:18.767284 #96413] ERROR -- : #<Class:0x007f8b6c04bd80> crashed!
NoMethodError: undefined method `alive?' for #<Celluloid::Actor:0x007f8b6c029b18>
/Users/ben/code/celluloid/lib/celluloid.rb:206:in `alive?'
/Users/ben/code/celluloid/vendor/ruby/1.9.1/gems/rspec-expectations-2.9.0/lib/rspec/matchers/built_in/be.rb:132:in `matches?'
/Users/ben/code/celluloid/vendor/ruby/1.9.1/gems/rspec-expectations-2.9.0/lib/rspec/expectations/handler.rb:9:in `handle_matcher'
/Users/ben/code/celluloid/vend terminates (FAILED - 3)or/ruby/1.9.1/gems/rspec-expectations-2.9.0/lib/rspec/expectations/extensions/kernel.rb:12:in `should'
/Users/ben/code/celluloid/lib/celluloid/calls.rb:57:in `dispatch'
/Users/ben/code/celluloid/lib/celluloid/actor.rb:312:in `block in handle_message'
/Users/ben/code/celluloid/lib/celluloid/task.rb:45:in `block in initialize'
E, [2012-07-25T13:34:18.769637 #96413] ERROR -- : #<Class:0x007f8b6c035c88> crashed!
NoMethodError: undefined method `alive?' for #<Celluloid::Actor:0x007f8b6c034f90>
/Users/ben/code/celluloid/lib/celluloid.rb:206:in `alive?'
/Users/ben/code/celluloid/vendor/ruby/1.9.1/gems/rspec-expectations-2.9.0/lib/rspec/matchers/built_in/be.rb:132:in `matches?'
/Users/ben/code/celluloid/vendor/ruby/1.9.1/gems/rspec-expectations-2.9.0/lib/rspec/expectations/handler.rb:9:in `handle_matcher'
/Users/ben/code/celluloid/vend kills (FAILED - 4)or/ruby/1.9.1/gems/rspec-expectations-2.9.0/lib/rspec/expectations/extensions/kernel.rb:12:in `should'
/Users/ben/code/celluloid/lib/celluloid/calls.rb:57:in `dispatch'
/Users/ben/code/celluloid/lib/celluloid/actor.rb:312:in `block in handle_message'
/Users/ben/code/celluloid/lib/celluloid/task.rb:45:in `block in initialize'
raises DeadActorError if called after terminated
current_actor
knows the current actor (FAILED - 5)
raises NotActorError if called outside an actor
linking
links to other actors
unlinks from other actors
monitors other actors unidirectionally
unmonitors other actors
E, [2012-07-25T13:34:18.828555 #96413] ERROR -- : #<Class:0x007f8b6c034f90> crashed!
ExampleCrash: the spec purposely crashed me :(
/Users/ben/code/celluloid/spec/support/example_actor_class.rb:29:in `crash'
/Users/ben/code/celluloid/lib/celluloid/calls.rb:57:in `dispatch'
/Users/ben/code/celluloid/lib/celluloid/actor.rb:312:in `block in handle_message'
/Users/ben/code/celluloid/lib/celluloid/task.rb:45:in `block in initialize'
traps exit messages from other actors
signaling
allows methods within the same object to signal each other
sends values along with signals
exclusive
supports exclusive methods
exclusive classes
executes two methods in an exclusive order
receiving
allows unconditional receive
allows arbitrary selective receive
times out after the given interval
timers
suspends execution of a method (but not the actor) for a given time
schedules timers which fire in the future
schedules recurring timers which fire in the future
cancels timers before they fire
tasks
knows which tasks are waiting on calls to other actors
use_mailbox
uses user-specified mailboxes
retains custom mailboxes when subclassed
Celluloid::FSM
starts in the default state
transitions between states
fires callbacks for states
allows custom default states
supports constraints on valid state transitions
transitions to states after a specified delay
cancels delayed state transitions if another transition is made
Celluloid::Future
creates future objects that can be retrieved later
passes arguments to future blocks
reraises exceptions that occur when the value is retrieved
Celluloid::Mailbox
behaves like a Celluloid Mailbox
receives messages
prioritizes system events over other messages
selectively receives messages with a block
waits for a given timeout interval
Celluloid::Notifications
notifies relevant subscribers
allows multiple subscriptions from the same actor
notifies subscribers
publishes even if there are no subscribers
allows regex subscriptions
allows unsubscribing
prunes dead subscriptions
prunes multiple subscriptions from a dead actor
Celluloid.pool
processes work units synchronously
processes work units asynchronously
E, [2012-07-25T13:34:23.981352 #96413] ERROR -- : MyWorker crashed!
ExampleError: zomgcrash
/Users/ben/code/celluloid/spec/celluloid/pool_spec.rb:19:in `crash'
/Users/ben/code/celluloid/lib/celluloid/calls.rb:57:in `dispatch'
/Users/ben/code/celluloid/lib/celluloid/actor.rb:312:in `block in handle_message'
/Users/ben/code/celluloid/lib/celluloid/task.rb:45:in `block in initialize'
handles crashes
uses a fixed-sized number of threads
Celluloid::Registry
registers Actors
refuses to register non-Actors
lists all registered actors
knows its name once registered
clear
should return a hash of registered actors and remove them from the registry
Celluloid::SupervisionGroup
runs applications
Celluloid::Supervisor
E, [2012-07-25T13:34:24.176790 #96413] ERROR -- : Subordinate crashed!
SubordinateDead: the spec purposely crashed me :(
/Users/ben/code/celluloid/spec/celluloid/supervisor_spec.rb:19:in `crack_the_whip'
/Users/ben/code/celluloid/lib/celluloid/calls.rb:57:in `dispatch'
/Users/ben/code/celluloid/lib/celluloid/actor.rb:312:in `block in handle_message'
/Users/ben/code/celluloid/lib/celluloid/task.rb:45:in `block in initialize'
restarts actors when they die (FAILED - 6)
E, [2012-07-25T13:34:24.281406 #96413] ERROR -- : Subordinate crashed!
SubordinateDead: the spec purposely crashed me :(
/Users/ben/code/celluloid/spec/celluloid/supervisor_spec.rb:19:in `crack_the_whip'
/Users/ben/code/celluloid/lib/celluloid/calls.rb:57:in `dispatch'
/Users/ben/code/celluloid/lib/celluloid/actor.rb:312:in `block in handle_message'
/Users/ben/code/celluloid/lib/celluloid/task.rb:45:in `block in initialize'
registers actors and reregisters them when they die (FAILED - 7)
E, [2012-07-25T13:34:24.385631 #96413] ERROR -- : Subordinate crashed!
SubordinateDead: the spec purposely crashed me :(
/Users/ben/code/celluloid/spec/celluloid/supervisor_spec.rb:19:in `crack_the_whip'
/Users/ben/code/celluloid/lib/celluloid/calls.rb:57:in `dispatch'
/Users/ben/code/celluloid/lib/celluloid/actor.rb:312:in `block in handle_message'
/Users/ben/code/celluloid/lib/celluloid/task.rb:45:in `block in initialize'
creates supervisors via Actor.supervise (FAILED - 8)
E, [2012-07-25T13:34:24.507437 #96413] ERROR -- : Subordinate crashed!
SubordinateDead: the spec purposely crashed me :(
/Users/ben/code/celluloid/spec/celluloid/supervisor_spec.rb:19:in `crack_the_whip'
/Users/ben/code/celluloid/lib/celluloid/calls.rb:57:in `dispatch'
/Users/ben/code/celluloid/lib/celluloid/actor.rb:312:in `block in handle_message'
/Users/ben/code/celluloid/lib/celluloid/task.rb:45:in `block in initialize'
creates supervisors and registers actors via Actor.supervise_as (FAILED - 9)
Celluloid::ThreadHandle
knows thread liveliness
joins to thread handles
Celluloid::UUID
should generate unique IDs across the BLOCK_SIZE boundary
Failures:
1) Celluloid behaves like a Celluloid Actor when #abort is called raises exceptions in the caller but keeps running
Failure/Error: Unable to find matching line from backtrace
NoMethodError:
undefined method `alive?' for #<Celluloid::Actor:0x007f8b6c8972a0>
Shared Example Group: "a Celluloid Actor" called from ./spec/celluloid/actor_spec.rb:4
# ./lib/celluloid.rb:206:in `alive?'
# ./vendor/ruby/1.9.1/gems/rspec-expectations-2.9.0/lib/rspec/matchers/built_in/be.rb:132:in `matches?'
# ./vendor/ruby/1.9.1/gems/rspec-expectations-2.9.0/lib/rspec/expectations/handler.rb:9:in `handle_matcher'
# ./vendor/ruby/1.9.1/gems/rspec-expectations-2.9.0/lib/rspec/expectations/extensions/kernel.rb:12:in `should'
# ./lib/celluloid/calls.rb:57:in `dispatch'
# ./lib/celluloid/actor.rb:312:in `block in handle_message'
# ./lib/celluloid/task.rb:45:in `block in initialize'
2) Celluloid behaves like a Celluloid Actor when #abort is called crashes the caller if we pass neither String nor Exception
Failure/Error: actor.should_not be_alive
Celluloid::DeadActorError:
attempted to call a dead actor
Shared Example Group: "a Celluloid Actor" called from ./spec/celluloid/actor_spec.rb:4
# ./lib/celluloid/actor.rb:60:in `rescue in call'
# ./lib/celluloid/actor.rb:57:in `call'
# ./lib/celluloid/actor_proxy.rb:96:in `method_missing'
# ./spec/support/actor_examples.rb:109:in `block (3 levels) in <top (required)>'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/example.rb:80:in `instance_eval'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/example.rb:80:in `block in run'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/example.rb:173:in `with_around_hooks'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/example.rb:77:in `run'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:355:in `block in run_examples'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:351:in `map'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:351:in `run_examples'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:337:in `run'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:338:in `block in run'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:338:in `map'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:338:in `run'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:338:in `block in run'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:338:in `map'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:338:in `run'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/command_line.rb:28:in `block (2 levels) in run'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/command_line.rb:28:in `map'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/command_line.rb:28:in `block in run'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/reporter.rb:34:in `report'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/command_line.rb:25:in `run'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/runner.rb:69:in `run'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/runner.rb:10:in `block in autorun'
3) Celluloid behaves like a Celluloid Actor termination terminates
Failure/Error: Unable to find matching line from backtrace
NoMethodError:
undefined method `alive?' for #<Celluloid::Actor:0x007f8b6c029b18>
Shared Example Group: "a Celluloid Actor" called from ./spec/celluloid/actor_spec.rb:4
# ./lib/celluloid.rb:206:in `alive?'
# ./vendor/ruby/1.9.1/gems/rspec-expectations-2.9.0/lib/rspec/matchers/built_in/be.rb:132:in `matches?'
# ./vendor/ruby/1.9.1/gems/rspec-expectations-2.9.0/lib/rspec/expectations/handler.rb:9:in `handle_matcher'
# ./vendor/ruby/1.9.1/gems/rspec-expectations-2.9.0/lib/rspec/expectations/extensions/kernel.rb:12:in `should'
# ./lib/celluloid/calls.rb:57:in `dispatch'
# ./lib/celluloid/actor.rb:312:in `block in handle_message'
# ./lib/celluloid/task.rb:45:in `block in initialize'
4) Celluloid behaves like a Celluloid Actor termination kills
Failure/Error: Unable to find matching line from backtrace
NoMethodError:
undefined method `alive?' for #<Celluloid::Actor:0x007f8b6c034f90>
Shared Example Group: "a Celluloid Actor" called from ./spec/celluloid/actor_spec.rb:4
# ./lib/celluloid.rb:206:in `alive?'
# ./vendor/ruby/1.9.1/gems/rspec-expectations-2.9.0/lib/rspec/matchers/built_in/be.rb:132:in `matches?'
# ./vendor/ruby/1.9.1/gems/rspec-expectations-2.9.0/lib/rspec/expectations/handler.rb:9:in `handle_matcher'
# ./vendor/ruby/1.9.1/gems/rspec-expectations-2.9.0/lib/rspec/expectations/extensions/kernel.rb:12:in `should'
# ./lib/celluloid/calls.rb:57:in `dispatch'
# ./lib/celluloid/actor.rb:312:in `block in handle_message'
# ./lib/celluloid/task.rb:45:in `block in initialize'
5) Celluloid behaves like a Celluloid Actor current_actor knows the current actor
Failure/Error: actor.current_actor.should == actor
expected: #<Celluloid::Actor(#<Class:0x007f8b6c84f248>:0x3fc5b6426b8c) @name="Roger Daltrey" @delegate=[:bar]>
got: #<Celluloid::Actor(#<Class:0x007f8b6c84f248>:0x3fc5b6426b8c) @name="Roger Daltrey" @delegate=[:bar]> (using ==)
Diff:
Shared Example Group: "a Celluloid Actor" called from ./spec/celluloid/actor_spec.rb:4
# ./vendor/ruby/1.9.1/gems/rspec-expectations-2.9.0/lib/rspec/expectations/fail_with.rb:32:in `fail_with'
# ./vendor/ruby/1.9.1/gems/rspec-expectations-2.9.0/lib/rspec/matchers/operator_matcher.rb:47:in `fail_with_message'
# ./vendor/ruby/1.9.1/gems/rspec-expectations-2.9.0/lib/rspec/matchers/operator_matcher.rb:69:in `__delegate_operator'
# ./vendor/ruby/1.9.1/gems/rspec-expectations-2.9.0/lib/rspec/matchers/operator_matcher.rb:59:in `eval_match'
# ./vendor/ruby/1.9.1/gems/rspec-expectations-2.9.0/lib/rspec/matchers/operator_matcher.rb:28:in `block in use_custom_matcher_or_delegate'
# ./spec/support/actor_examples.rb:221:in `block (3 levels) in <top (required)>'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/example.rb:80:in `instance_eval'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/example.rb:80:in `block in run'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/example.rb:173:in `with_around_hooks'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/example.rb:77:in `run'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:355:in `block in run_examples'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:351:in `map'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:351:in `run_examples'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:337:in `run'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:338:in `block in run'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:338:in `map'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:338:in `run'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:338:in `block in run'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:338:in `map'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:338:in `run'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/command_line.rb:28:in `block (2 levels) in run'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/command_line.rb:28:in `map'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/command_line.rb:28:in `block in run'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/reporter.rb:34:in `report'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/command_line.rb:25:in `run'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/runner.rb:69:in `run'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/runner.rb:10:in `block in autorun'
6) Celluloid::Supervisor restarts actors when they die
Failure/Error: subordinate.should_not be_alive
Celluloid::DeadActorError:
attempted to call a dead actor
# ./lib/celluloid/actor.rb:60:in `rescue in call'
# ./lib/celluloid/actor.rb:57:in `call'
# ./lib/celluloid/actor_proxy.rb:96:in `method_missing'
# ./spec/celluloid/supervisor_spec.rb:37:in `block (2 levels) in <top (required)>'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/example.rb:80:in `instance_eval'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/example.rb:80:in `block in run'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/example.rb:173:in `with_around_hooks'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/example.rb:77:in `run'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:355:in `block in run_examples'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:351:in `map'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:351:in `run_examples'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:337:in `run'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/command_line.rb:28:in `block (2 levels) in run'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/command_line.rb:28:in `map'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/command_line.rb:28:in `block in run'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/reporter.rb:34:in `report'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/command_line.rb:25:in `run'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/runner.rb:69:in `run'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/runner.rb:10:in `block in autorun'
7) Celluloid::Supervisor registers actors and reregisters them when they die
Failure/Error: subordinate.should_not be_alive
Celluloid::DeadActorError:
attempted to call a dead actor
# ./lib/celluloid/actor.rb:60:in `rescue in call'
# ./lib/celluloid/actor.rb:57:in `call'
# ./lib/celluloid/actor_proxy.rb:96:in `method_missing'
# ./spec/celluloid/supervisor_spec.rb:56:in `block (2 levels) in <top (required)>'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/example.rb:80:in `instance_eval'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/example.rb:80:in `block in run'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/example.rb:173:in `with_around_hooks'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/example.rb:77:in `run'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:355:in `block in run_examples'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:351:in `map'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:351:in `run_examples'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:337:in `run'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/command_line.rb:28:in `block (2 levels) in run'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/command_line.rb:28:in `map'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/command_line.rb:28:in `block in run'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/reporter.rb:34:in `report'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/command_line.rb:25:in `run'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/runner.rb:69:in `run'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/runner.rb:10:in `block in autorun'
8) Celluloid::Supervisor creates supervisors via Actor.supervise
Failure/Error: subordinate.should_not be_alive
Celluloid::DeadActorError:
attempted to call a dead actor
# ./lib/celluloid/actor.rb:60:in `rescue in call'
# ./lib/celluloid/actor.rb:57:in `call'
# ./lib/celluloid/actor_proxy.rb:96:in `method_missing'
# ./spec/celluloid/supervisor_spec.rb:72:in `block (2 levels) in <top (required)>'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/example.rb:80:in `instance_eval'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/example.rb:80:in `block in run'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/example.rb:173:in `with_around_hooks'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/example.rb:77:in `run'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:355:in `block in run_examples'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:351:in `map'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:351:in `run_examples'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:337:in `run'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/command_line.rb:28:in `block (2 levels) in run'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/command_line.rb:28:in `map'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/command_line.rb:28:in `block in run'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/reporter.rb:34:in `report'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/command_line.rb:25:in `run'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/runner.rb:69:in `run'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/runner.rb:10:in `block in autorun'
9) Celluloid::Supervisor creates supervisors and registers actors via Actor.supervise_as
Failure/Error: subordinate.should_not be_alive
Celluloid::DeadActorError:
attempted to call a dead actor
# ./lib/celluloid/actor.rb:60:in `rescue in call'
# ./lib/celluloid/actor.rb:57:in `call'
# ./lib/celluloid/actor_proxy.rb:96:in `method_missing'
# ./spec/celluloid/supervisor_spec.rb:88:in `block (2 levels) in <top (required)>'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/example.rb:80:in `instance_eval'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/example.rb:80:in `block in run'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/example.rb:173:in `with_around_hooks'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/example.rb:77:in `run'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:355:in `block in run_examples'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:351:in `map'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:351:in `run_examples'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:337:in `run'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/command_line.rb:28:in `block (2 levels) in run'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/command_line.rb:28:in `map'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/command_line.rb:28:in `block in run'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/reporter.rb:34:in `report'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/command_line.rb:25:in `run'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/runner.rb:69:in `run'
# ./vendor/ruby/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/runner.rb:10:in `block in autorun'
Finished in 7.2 seconds
85 examples, 9 failures
Failed examples:
rspec ./spec/support/actor_examples.rb:74 # Celluloid behaves like a Celluloid Actor when #abort is called raises exceptions in the caller but keeps running
rspec ./spec/support/actor_examples.rb:102 # Celluloid behaves like a Celluloid Actor when #abort is called crashes the caller if we pass neither String nor Exception
rspec ./spec/support/actor_examples.rb:192 # Celluloid behaves like a Celluloid Actor termination terminates
rspec ./spec/support/actor_examples.rb:200 # Celluloid behaves like a Celluloid Actor termination kills
rspec ./spec/support/actor_examples.rb:219 # Celluloid behaves like a Celluloid Actor current_actor knows the current actor
rspec ./spec/celluloid/supervisor_spec.rb:25 # Celluloid::Supervisor restarts actors when they die
rspec ./spec/celluloid/supervisor_spec.rb:44 # Celluloid::Supervisor registers actors and reregisters them when they die
rspec ./spec/celluloid/supervisor_spec.rb:63 # Celluloid::Supervisor creates supervisors via Actor.supervise
rspec ./spec/celluloid/supervisor_spec.rb:79 # Celluloid::Supervisor creates supervisors and registers actors via Actor.supervise_as
I, [2012-07-25T13:34:25.879966 #96413] INFO -- : Terminating 94 actors...
I, [2012-07-25T13:34:25.957299 #96413] INFO -- : Shutdown completed cleanly
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment