celluloid 0.17.1.2 → 0.17.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGES.md +16 -1
- data/culture/{CODE_OF_CONDUCT.md → CONDUCT.md} +0 -0
- data/culture/celluloid-culture.gemspec +1 -1
- data/culture/gems/dependencies.yml +9 -8
- data/culture/rubocop/perf.yml +0 -0
- data/culture/rubocop/rubocop.yml +1 -0
- data/culture/rubocop/style.yml +9 -0
- data/lib/celluloid.rb +2 -2
- data/lib/celluloid/exceptions.rb +1 -0
- data/lib/celluloid/group/spawner.rb +14 -16
- data/lib/celluloid/rspec.rb +61 -1
- data/lib/celluloid/version.rb +1 -1
- data/spec/celluloid/block_spec.rb +13 -13
- data/spec/celluloid/calls_spec.rb +0 -17
- data/spec/celluloid/condition_spec.rb +1 -1
- data/spec/celluloid/group/spawner_spec.rb +9 -0
- data/spec/celluloid/mailbox/evented_spec.rb +2 -2
- data/spec/deprecate/calls_spec.rb +0 -18
- data/spec/deprecate/future_spec.rb +2 -2
- data/spec/shared/actor_examples.rb +11 -16
- data/spec/spec_helper.rb +1 -94
- data/spec/support/configure_rspec.rb +77 -0
- data/spec/support/env.rb +13 -8
- data/spec/support/examples/actor_class.rb +1 -1
- data/spec/support/examples/call_class.rb +37 -0
- data/spec/support/includer.rb +1 -4
- data/spec/support/logging.rb +2 -10
- data/spec/support/loose_threads.rb +20 -9
- data/spec/support/sleep_and_wait.rb +1 -1
- metadata +33 -31
- data/spec/support/split_logs.rb +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7e4fef1274946e44231177bcac481a79c785e496
|
4
|
+
data.tar.gz: ddabf286ed4d0ac58f7f58f6ae9f843fd5b82a62
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8864299ee4256cc2fbe2f5cd32bd59f49f80033f6352a65ae76ac4381c9903835b563147d66ef19585d836e5a1bac92801269276dca003a093dc2c845c91c04d
|
7
|
+
data.tar.gz: fc79f37cf47fd47111cf2304c977c64d0d1e1e37b5c07f9d863e4975f1dd901ab2f43692a0cb656a36c98a93d9811bcdbcf10edecb027444ced46f916b19685d
|
data/CHANGES.md
CHANGED
@@ -1,4 +1,19 @@
|
|
1
|
-
0.17.
|
1
|
+
0.17.2 (2015-09-30)
|
2
|
+
-----
|
3
|
+
* Revamped test suite, using shared RSpec configuration layer provided by Celluloid itself.
|
4
|
+
* Updated gem dependencies provided by Celluloid::Sync... extraneous gems removed, or marked as development dependencies.
|
5
|
+
- Clean up deprecation notes.
|
6
|
+
|
7
|
+
0.17.1.2 (2015-08-21)
|
8
|
+
-----
|
9
|
+
- Fixes to posted markdown content.
|
10
|
+
- Pull in new gem dependencies.
|
11
|
+
|
12
|
+
0.17.1.1 (2015-08-07)
|
13
|
+
-----
|
14
|
+
- Revert "no task to suspend" code from #232.
|
15
|
+
|
16
|
+
0.17.1 (2015-08-06)
|
2
17
|
-----
|
3
18
|
* `Celluloid::ActorSystem` moved to `Celluloid::Actor::System`, and from `celluloid/actor_system.rb` to `celluloid/actor/system.rb`
|
4
19
|
* Added extensible API for defining new SystemEvents, and having them handled... without everyone changing `Actor#handle_system_event`.
|
File without changes
|
@@ -1,6 +1,11 @@
|
|
1
1
|
bundler:
|
2
|
+
dependency: development
|
3
|
+
|
2
4
|
nenv:
|
5
|
+
dependency: development
|
6
|
+
|
3
7
|
dotenv:
|
8
|
+
dependency: development
|
4
9
|
|
5
10
|
benchmark_suite:
|
6
11
|
dependency: development
|
@@ -23,6 +28,9 @@ rspec:
|
|
23
28
|
guard-rspec:
|
24
29
|
dependency: development
|
25
30
|
|
31
|
+
rspec-retry:
|
32
|
+
dependency: development
|
33
|
+
|
26
34
|
coveralls:
|
27
35
|
dependency: development
|
28
36
|
gemfile:
|
@@ -30,7 +38,7 @@ coveralls:
|
|
30
38
|
|
31
39
|
celluloid:
|
32
40
|
dependency: core
|
33
|
-
version: ">= 0.17.
|
41
|
+
version: ">= 0.17.2"
|
34
42
|
gemfile:
|
35
43
|
github: celluloid/celluloid
|
36
44
|
branch: master
|
@@ -75,10 +83,3 @@ timers:
|
|
75
83
|
version: ">= 4.1.1"
|
76
84
|
gemfile:
|
77
85
|
github: celluloid/timers
|
78
|
-
|
79
|
-
rspec-logsplit:
|
80
|
-
version: ">= 0.1.2"
|
81
|
-
gemfile:
|
82
|
-
github: "abstractive/rspec-logsplit"
|
83
|
-
branch: "master"
|
84
|
-
require: false
|
File without changes
|
data/culture/rubocop/rubocop.yml
CHANGED
data/culture/rubocop/style.yml
CHANGED
data/lib/celluloid.rb
CHANGED
@@ -24,7 +24,7 @@ module Celluloid
|
|
24
24
|
BARE_OBJECT_WARNING_MESSAGE = "WARNING: BARE CELLULOID OBJECT "
|
25
25
|
|
26
26
|
class << self
|
27
|
-
attr_writer :actor_system
|
27
|
+
attr_writer :actor_system # Default Actor System
|
28
28
|
attr_accessor :logger # Thread-safe logger class
|
29
29
|
attr_accessor :log_actor_crashes
|
30
30
|
attr_accessor :group_class # Default internal thread group to use
|
@@ -165,7 +165,7 @@ module Celluloid
|
|
165
165
|
# Terminate all actors at exit
|
166
166
|
at_exit do
|
167
167
|
sleep 0.126 # hax grace period for unnaturally terminating actors
|
168
|
-
|
168
|
+
# allows "reason" in exit_handler to resolve before being destroyed
|
169
169
|
if defined?(RUBY_ENGINE) && RUBY_ENGINE == "ruby" && RUBY_VERSION >= "1.9"
|
170
170
|
# workaround for MRI bug losing exit status in at_exit block
|
171
171
|
# http://bugs.ruby-lang.org/issues/5218
|
data/lib/celluloid/exceptions.rb
CHANGED
@@ -17,48 +17,46 @@ module Celluloid
|
|
17
17
|
|
18
18
|
def shutdown
|
19
19
|
@running = false
|
20
|
+
queue = []
|
20
21
|
@mutex.synchronize do
|
21
|
-
queue = Queue.new
|
22
22
|
loop do
|
23
23
|
break if @group.empty?
|
24
24
|
th = @group.shift
|
25
25
|
th.kill
|
26
26
|
queue << th
|
27
27
|
end
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
28
|
+
end
|
29
|
+
Thread.pass unless queue.empty?
|
30
|
+
loop do
|
31
|
+
break if queue.empty?
|
32
|
+
queue.pop.join
|
32
33
|
end
|
33
34
|
end
|
34
35
|
|
35
36
|
def idle?
|
36
|
-
to_a.select { |t| t[:
|
37
|
+
to_a.select { |t| t[:celluloid_thread_state] == :running }.empty?
|
37
38
|
end
|
38
39
|
|
39
40
|
def busy?
|
40
|
-
to_a.select { |t| t[:
|
41
|
+
to_a.select { |t| t[:celluloid_thread_state] == :running }.any?
|
41
42
|
end
|
42
43
|
|
43
44
|
private
|
44
45
|
|
45
46
|
def instantiate(proc)
|
46
47
|
thread = Thread.new do
|
47
|
-
Thread.current[:
|
48
|
-
started: Time.now,
|
49
|
-
state: :running,
|
50
|
-
}
|
51
|
-
|
48
|
+
Thread.current[:celluloid_thread_state] = :running
|
52
49
|
begin
|
53
50
|
proc.call
|
54
51
|
rescue ::Exception => ex
|
55
52
|
Internals::Logger.crash("thread crashed", ex)
|
56
|
-
Thread.current[:
|
53
|
+
Thread.current[:celluloid_thread_state] = :error
|
57
54
|
ensure
|
58
|
-
unless Thread.current[:
|
59
|
-
Thread.current[:
|
55
|
+
unless Thread.current[:celluloid_thread_state] == :error
|
56
|
+
Thread.current[:celluloid_thread_state] = :finished
|
60
57
|
end
|
61
|
-
Thread.current
|
58
|
+
@mutex.synchronize { @group.delete Thread.current }
|
59
|
+
Thread.exit
|
62
60
|
end
|
63
61
|
end
|
64
62
|
|
data/lib/celluloid/rspec.rb
CHANGED
@@ -1,12 +1,72 @@
|
|
1
|
+
require "dotenv"
|
2
|
+
require "nenv"
|
3
|
+
|
1
4
|
require "celluloid/test"
|
2
5
|
|
6
|
+
# To help produce better bug reports in Rubinius
|
7
|
+
if RUBY_ENGINE == "rbx"
|
8
|
+
# $DEBUG = true # would be nice if this didn't fail ... :(
|
9
|
+
require "rspec/matchers"
|
10
|
+
require "rspec/matchers/built_in/be"
|
11
|
+
end
|
12
|
+
|
13
|
+
require "rspec/retry"
|
14
|
+
|
15
|
+
module Specs
|
16
|
+
|
17
|
+
CHECK_LOOSE_THREADS = !Nenv.ci? unless defined? CHECK_LOOSE_THREADS
|
18
|
+
ALLOW_RETRIES = 3 unless defined? ALLOW_RETRIES
|
19
|
+
ALLOW_SLOW_MAILBOXES = false unless defined? ALLOW_SLOW_MAILBOXES
|
20
|
+
|
21
|
+
INCLUDE_SUPPORT = [
|
22
|
+
"env",
|
23
|
+
"logging",
|
24
|
+
"sleep_and_wait",
|
25
|
+
"reset_class_variables",
|
26
|
+
"crash_checking",
|
27
|
+
"loose_threads",
|
28
|
+
"stubbing",
|
29
|
+
"coverage",
|
30
|
+
"includer",
|
31
|
+
"configure_rspec"
|
32
|
+
]
|
33
|
+
|
34
|
+
INCLUDE_PATHS = [
|
35
|
+
"./spec/support/*.rb",
|
36
|
+
"./spec/support/examples/*.rb",
|
37
|
+
"./spec/shared/*.rb"
|
38
|
+
]
|
39
|
+
|
40
|
+
MAX_EXECUTION = 13
|
41
|
+
MAX_ATTEMPTS = 20
|
42
|
+
|
43
|
+
TIMER_QUANTUM = 0.05 # Timer accuracy enforced by the tests (50ms)
|
44
|
+
|
45
|
+
BACKTRACE_OMITTED = [
|
46
|
+
"rspec-expectations",
|
47
|
+
"rspec-core",
|
48
|
+
"rspec-mocks",
|
49
|
+
"rspec-retry",
|
50
|
+
"rubysl-thread",
|
51
|
+
"rubysl-timeout"
|
52
|
+
]
|
53
|
+
end
|
54
|
+
|
3
55
|
$CELLULOID_DEBUG = true
|
4
56
|
|
57
|
+
# Require but disable, so it has to be explicitly enabled in tests
|
58
|
+
require "celluloid/probe"
|
59
|
+
$CELLULOID_MONITORING = false
|
60
|
+
|
61
|
+
Celluloid.shutdown_timeout = 1
|
62
|
+
|
5
63
|
# Load shared examples and test support code for other gems to use.
|
6
64
|
|
7
|
-
|
65
|
+
Specs::INCLUDE_SUPPORT.each { |f|
|
8
66
|
require "#{File.expand_path('../../../spec/support', __FILE__)}/#{f}.rb"
|
9
67
|
}
|
10
68
|
|
69
|
+
Specs.reset_probe(nil)
|
70
|
+
|
11
71
|
Dir["#{File.expand_path('../../../spec/support/examples', __FILE__)}/*.rb"].map { |f| require f }
|
12
72
|
Dir["#{File.expand_path('../../../spec/shared', __FILE__)}/*.rb"].map { |f| require f }
|
data/lib/celluloid/version.rb
CHANGED
@@ -19,21 +19,21 @@ RSpec.describe "Blocks", actor_system: :global do
|
|
19
19
|
end
|
20
20
|
end
|
21
21
|
|
22
|
-
def deferred_excecution(value, &
|
23
|
-
defer
|
22
|
+
def deferred_excecution(value, &_block)
|
23
|
+
defer do
|
24
24
|
yield(value)
|
25
|
-
|
25
|
+
end
|
26
26
|
end
|
27
27
|
|
28
|
-
def deferred_current_actor(&
|
29
|
-
defer
|
28
|
+
def deferred_current_actor(&_block)
|
29
|
+
defer do
|
30
30
|
yield(current_actor.name)
|
31
|
-
|
31
|
+
end
|
32
32
|
end
|
33
33
|
|
34
|
-
def defer_for_something(other, &
|
34
|
+
def defer_for_something(other, &_block)
|
35
35
|
sender_actor = current_actor
|
36
|
-
defer
|
36
|
+
defer do
|
37
37
|
$data << [:outside, @name, current_actor.name]
|
38
38
|
other.do_something_and_callback do |value|
|
39
39
|
$data << [:yielded, @name, current_actor.name]
|
@@ -42,7 +42,7 @@ RSpec.describe "Blocks", actor_system: :global do
|
|
42
42
|
$data << sender_actor.receive_result(:sender)
|
43
43
|
:pete_the_polyglot_alien
|
44
44
|
end
|
45
|
-
|
45
|
+
end
|
46
46
|
end
|
47
47
|
|
48
48
|
def do_something_and_callback
|
@@ -76,14 +76,14 @@ RSpec.describe "Blocks", actor_system: :global do
|
|
76
76
|
expect($data).to eq(expected)
|
77
77
|
end
|
78
78
|
|
79
|
-
execute_deferred =
|
79
|
+
execute_deferred = proc do
|
80
80
|
a1 = MyBlockActor.new("one")
|
81
81
|
expect(a1.deferred_excecution(:pete_the_polyglot_alien) { |v| v })
|
82
|
-
|
83
|
-
|
82
|
+
.to eq(:pete_the_polyglot_alien)
|
83
|
+
end
|
84
84
|
|
85
85
|
# unless RUBY_ENGINE == 'jruby'
|
86
|
-
|
86
|
+
xit("can be deferred", &execute_deferred)
|
87
87
|
# else
|
88
88
|
# it("can be deferred", &execute_deferred)
|
89
89
|
# end
|
@@ -1,22 +1,5 @@
|
|
1
1
|
RSpec.describe Celluloid::Call::Sync, actor_system: :global do
|
2
2
|
# TODO: these should be Call::Sync unit tests (without working on actual actors)
|
3
|
-
class CallExampleActor
|
4
|
-
include Celluloid
|
5
|
-
|
6
|
-
def initialize(next_actor = nil)
|
7
|
-
@next = next_actor
|
8
|
-
end
|
9
|
-
|
10
|
-
def actual_method; end
|
11
|
-
|
12
|
-
def inspect
|
13
|
-
fail "Don't call!"
|
14
|
-
end
|
15
|
-
|
16
|
-
def chained_call_ids
|
17
|
-
[call_chain_id, @next.call_chain_id]
|
18
|
-
end
|
19
|
-
end
|
20
3
|
|
21
4
|
let(:actor) { CallExampleActor.new }
|
22
5
|
let(:logger) { Specs::FakeLogger.current }
|
@@ -4,5 +4,14 @@ require "celluloid/internals/logger"
|
|
4
4
|
if Celluloid.group_class == Celluloid::Group::Spawner
|
5
5
|
RSpec.describe Celluloid::Group::Spawner do
|
6
6
|
it_behaves_like "a Celluloid Group"
|
7
|
+
|
8
|
+
it "does not leak finished threads" do
|
9
|
+
queue = Queue.new
|
10
|
+
th = subject.get { queue.pop }
|
11
|
+
expect do
|
12
|
+
queue << nil
|
13
|
+
th.join
|
14
|
+
end.to change { subject.group.length }.by(-1)
|
15
|
+
end
|
7
16
|
end
|
8
17
|
end
|
@@ -13,7 +13,7 @@ RSpec.describe Celluloid::Mailbox::Evented do
|
|
13
13
|
#
|
14
14
|
unless RUBY_ENGINE == "rbx"
|
15
15
|
it "recovers from timeout exceeded to process mailbox message" do
|
16
|
-
timeout_interval =
|
16
|
+
timeout_interval = Specs::TIMER_QUANTUM + 0.1
|
17
17
|
started_at = Time.now
|
18
18
|
expect do
|
19
19
|
Kernel.send(:timeout, timeout_interval) do
|
@@ -21,7 +21,7 @@ RSpec.describe Celluloid::Mailbox::Evented do
|
|
21
21
|
end
|
22
22
|
end.to raise_exception(Timeout::Error)
|
23
23
|
|
24
|
-
expect(Time.now - started_at).to be_within(
|
24
|
+
expect(Time.now - started_at).to be_within(Specs::TIMER_QUANTUM).of timeout_interval
|
25
25
|
end
|
26
26
|
end
|
27
27
|
end
|
@@ -1,24 +1,6 @@
|
|
1
1
|
RSpec.describe "Deprecated Celluloid::SyncCall", actor_system: :global do
|
2
2
|
subject { Celluloid::SyncCall.new }
|
3
3
|
|
4
|
-
class DeprecatedCallExampleActor
|
5
|
-
include Celluloid
|
6
|
-
|
7
|
-
def initialize(next_actor = nil)
|
8
|
-
@next = next_actor
|
9
|
-
end
|
10
|
-
|
11
|
-
def actual_method; end
|
12
|
-
|
13
|
-
def inspect
|
14
|
-
fail "Please don't call me! I'm not ready yet!"
|
15
|
-
end
|
16
|
-
|
17
|
-
def chained_call_ids
|
18
|
-
[call_chain_id, @next.call_chain_id]
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
4
|
let(:actor) { DeprecatedCallExampleActor.new }
|
23
5
|
|
24
6
|
context "when obj does not respond to a method" do
|
@@ -19,9 +19,9 @@ RSpec.describe "Deprecated Celluloid::Future", actor_system: :global do
|
|
19
19
|
end
|
20
20
|
|
21
21
|
it "knows if it's got a value yet" do
|
22
|
-
future = Celluloid::Future.new { sleep
|
22
|
+
future = Celluloid::Future.new { sleep Specs::TIMER_QUANTUM * 5 }
|
23
23
|
expect(future).not_to be_ready
|
24
|
-
sleep
|
24
|
+
sleep Specs::TIMER_QUANTUM * 6
|
25
25
|
expect(future).to be_ready
|
26
26
|
end
|
27
27
|
|
@@ -1,9 +1,4 @@
|
|
1
1
|
RSpec.shared_examples "a Celluloid Actor" do
|
2
|
-
before(:each) do |example|
|
3
|
-
@fake_logger = Specs::FakeLogger.new(Celluloid.logger, example.description)
|
4
|
-
stub_const("Celluloid::Internals::Logger", @fake_logger)
|
5
|
-
end
|
6
|
-
|
7
2
|
around do |ex|
|
8
3
|
Celluloid.boot
|
9
4
|
ex.run
|
@@ -766,13 +761,13 @@ RSpec.shared_examples "a Celluloid Actor" do
|
|
766
761
|
|
767
762
|
def exclusive_with_block_log_task(task)
|
768
763
|
exclusive do
|
769
|
-
sleep
|
764
|
+
sleep Specs::TIMER_QUANTUM
|
770
765
|
log_task(task)
|
771
766
|
end
|
772
767
|
end
|
773
768
|
|
774
769
|
def exclusive_log_task(task)
|
775
|
-
sleep
|
770
|
+
sleep Specs::TIMER_QUANTUM
|
776
771
|
log_task(task)
|
777
772
|
end
|
778
773
|
exclusive :exclusive_log_task
|
@@ -794,14 +789,14 @@ RSpec.shared_examples "a Celluloid Actor" do
|
|
794
789
|
it "executes methods in the proper order with block form" do
|
795
790
|
subject.async.exclusive_with_block_log_task(:one)
|
796
791
|
subject.async.log_task(:two)
|
797
|
-
sleep
|
792
|
+
sleep Specs::TIMER_QUANTUM * 2
|
798
793
|
expect(subject.tasks).to eq([:one, :two])
|
799
794
|
end
|
800
795
|
|
801
796
|
it "executes methods in the proper order with a class-level annotation" do
|
802
797
|
subject.async.exclusive_log_task :one
|
803
798
|
subject.async.log_task :two
|
804
|
-
sleep
|
799
|
+
sleep Specs::TIMER_QUANTUM * 2
|
805
800
|
expect(subject.tasks).to eq([:one, :two])
|
806
801
|
end
|
807
802
|
|
@@ -828,7 +823,7 @@ RSpec.shared_examples "a Celluloid Actor" do
|
|
828
823
|
end
|
829
824
|
|
830
825
|
def eat_donuts
|
831
|
-
sleep
|
826
|
+
sleep Specs::TIMER_QUANTUM
|
832
827
|
@tasks << "donuts"
|
833
828
|
end
|
834
829
|
|
@@ -844,7 +839,7 @@ RSpec.shared_examples "a Celluloid Actor" do
|
|
844
839
|
before do
|
845
840
|
actor.async.eat_donuts
|
846
841
|
actor.async.drink_coffee
|
847
|
-
sleep
|
842
|
+
sleep Specs::TIMER_QUANTUM * 2
|
848
843
|
end
|
849
844
|
|
850
845
|
it "executes in an exclusive order" do
|
@@ -888,7 +883,7 @@ RSpec.shared_examples "a Celluloid Actor" do
|
|
888
883
|
ended_at = Time.now - started_at
|
889
884
|
|
890
885
|
expect(result).to_not be
|
891
|
-
expect(ended_at).to be_within(
|
886
|
+
expect(ended_at).to be_within(Specs::TIMER_QUANTUM).of interval
|
892
887
|
end
|
893
888
|
end
|
894
889
|
end
|
@@ -930,8 +925,8 @@ RSpec.shared_examples "a Celluloid Actor" do
|
|
930
925
|
end.new
|
931
926
|
end
|
932
927
|
|
933
|
-
let(:interval) {
|
934
|
-
let(:sleep_interval) { interval +
|
928
|
+
let(:interval) { Specs::TIMER_QUANTUM * 10 }
|
929
|
+
let(:sleep_interval) { interval + Specs::TIMER_QUANTUM } # wonky! #/
|
935
930
|
|
936
931
|
it "suspends execution of a method (but not the actor) for a given time" do
|
937
932
|
# Sleep long enough to ensure we're actually seeing behavior when asleep
|
@@ -944,7 +939,7 @@ RSpec.shared_examples "a Celluloid Actor" do
|
|
944
939
|
|
945
940
|
future.value
|
946
941
|
# I got 0.558 (in a slighly busy MRI) which is outside 0.05 of 0.5, so let's use (0.05 * 2)
|
947
|
-
expect(Time.now - started_at).to be_within(
|
942
|
+
expect(Time.now - started_at).to be_within(Specs::TIMER_QUANTUM * 2).of interval
|
948
943
|
end
|
949
944
|
|
950
945
|
it "schedules timers which fire in the future" do
|
@@ -1247,7 +1242,7 @@ RSpec.shared_examples "a Celluloid Actor" do
|
|
1247
1242
|
it "logs on unhandled messages" do
|
1248
1243
|
expect(logger).to receive(:debug).with("Discarded message (unhandled): first")
|
1249
1244
|
actor.mailbox << :first
|
1250
|
-
sleep
|
1245
|
+
sleep Specs::TIMER_QUANTUM
|
1251
1246
|
end
|
1252
1247
|
end
|
1253
1248
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,100 +1,7 @@
|
|
1
1
|
require "rubygems"
|
2
2
|
require "bundler/setup"
|
3
3
|
|
4
|
-
# To help produce better bug reports in Rubinius
|
5
|
-
if RUBY_ENGINE == "rbx"
|
6
|
-
# $DEBUG = true # would be nice if this didn't fail ... :(
|
7
|
-
require "rspec/matchers"
|
8
|
-
require "rspec/matchers/built_in/be"
|
9
|
-
end
|
10
|
-
|
11
|
-
# Require in order, so both CELLULOID_TEST and CELLULOID_DEBUG are true
|
12
4
|
require "celluloid/rspec"
|
13
5
|
require "celluloid/essentials"
|
14
6
|
|
15
|
-
|
16
|
-
|
17
|
-
# Require but disable, so it has to be explicitly enabled in tests
|
18
|
-
require "celluloid/probe"
|
19
|
-
$CELLULOID_MONITORING = false
|
20
|
-
Specs.reset_probe(nil)
|
21
|
-
|
22
|
-
Celluloid.shutdown_timeout = 1
|
23
|
-
|
24
|
-
Dir["./spec/support/*.rb", "./spec/shared/*.rb"].map { |f| require f }
|
25
|
-
|
26
|
-
RSpec.configure do |config|
|
27
|
-
config.filter_run focus: true unless Nenv.ci?
|
28
|
-
|
29
|
-
config.run_all_when_everything_filtered = true
|
30
|
-
config.disable_monkey_patching!
|
31
|
-
config.profile_examples = 3
|
32
|
-
|
33
|
-
Specs.configure(config)
|
34
|
-
|
35
|
-
config.before(:suite) do
|
36
|
-
Specs.stub_out_class_method(Celluloid::Internals::Logger, :crash) do |*args|
|
37
|
-
_name, ex = *args
|
38
|
-
fail "Unstubbed Logger.crash() was called:\n crash(\n #{args.map(&:inspect).join(",\n ")})"\
|
39
|
-
"\nException backtrace: \n (#{ex.class}) #{ex.backtrace * "\n (#{ex.class}) "}"
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
config.before(:each) do |example|
|
44
|
-
@fake_logger = Specs::FakeLogger.new(Celluloid.logger, example.description)
|
45
|
-
stub_const("Celluloid::Internals::Logger", @fake_logger)
|
46
|
-
end
|
47
|
-
|
48
|
-
config.around do |ex|
|
49
|
-
ex.run
|
50
|
-
if @fake_logger.crashes?
|
51
|
-
crashes = @fake_logger.crashes.map do |args, call_stack|
|
52
|
-
msg, ex = *args
|
53
|
-
"\n** Crash: #{msg.inspect}(#{ex.inspect})\n Backtrace:\n (crash) #{call_stack * "\n (crash) "}"\
|
54
|
-
"\n** Crash: \"Actor crashed!\"(#{ex.inspect})\n Backtrace:\n (crash) #{call_stack * "\n (crash) "}"\
|
55
|
-
"\n Exception Backtrace (#{ex.inspect}):\n (ex) #{ex.backtrace * "\n (ex) "}"
|
56
|
-
end.join("\n")
|
57
|
-
|
58
|
-
fail "Actor crashes occurred (please stub/mock if these are expected): #{crashes}"
|
59
|
-
end
|
60
|
-
@fake_logger = nil
|
61
|
-
end
|
62
|
-
|
63
|
-
config.around do |ex|
|
64
|
-
Celluloid.actor_system = nil
|
65
|
-
|
66
|
-
Specs.assert_no_loose_threads(ex.description) do
|
67
|
-
Specs.reset_class_variables(ex.description) do
|
68
|
-
ex.run
|
69
|
-
end
|
70
|
-
end
|
71
|
-
end
|
72
|
-
|
73
|
-
config.around actor_system: :global do |ex|
|
74
|
-
# Needed because some specs mock/stub/expect on the logger
|
75
|
-
Celluloid.logger = Specs.logger
|
76
|
-
|
77
|
-
Celluloid.boot
|
78
|
-
ex.run
|
79
|
-
Celluloid.shutdown
|
80
|
-
end
|
81
|
-
|
82
|
-
config.around actor_system: :within do |ex|
|
83
|
-
Celluloid::Actor::System.new.within do
|
84
|
-
ex.run
|
85
|
-
end
|
86
|
-
end
|
87
|
-
|
88
|
-
config.filter_gems_from_backtrace(*%w(rspec-expectations rspec-core rspec-mocks rspec-logsplit rubysl-thread rubysl-timeout))
|
89
|
-
|
90
|
-
config.mock_with :rspec do |mocks|
|
91
|
-
mocks.verify_doubled_constant_names = true
|
92
|
-
mocks.verify_partial_doubles = true
|
93
|
-
end
|
94
|
-
|
95
|
-
config.around(:each) do |example|
|
96
|
-
# Needed because some specs mock/stub/expect on the logger
|
97
|
-
Celluloid.logger = Specs.logger
|
98
|
-
example.run
|
99
|
-
end
|
100
|
-
end
|
7
|
+
Dir[*Specs::INCLUDE_PATHS].map { |f| require f }
|
@@ -0,0 +1,77 @@
|
|
1
|
+
RSpec.configure do |config|
|
2
|
+
config.filter_run focus: true unless Nenv.ci?
|
3
|
+
config.run_all_when_everything_filtered = true
|
4
|
+
config.disable_monkey_patching!
|
5
|
+
config.profile_examples = 3
|
6
|
+
config.filter_gems_from_backtrace(*Specs::BACKTRACE_OMITTED)
|
7
|
+
|
8
|
+
config.verbose_retry = true
|
9
|
+
config.default_retry_count = Specs::ALLOW_RETRIES
|
10
|
+
config.display_try_failure_messages = true
|
11
|
+
config.default_sleep_interval = 1
|
12
|
+
config.exceptions_to_retry = [Timeout::Error, Celluloid::ThreadLeak]
|
13
|
+
|
14
|
+
config.mock_with :rspec do |mocks|
|
15
|
+
mocks.verify_doubled_constant_names = true
|
16
|
+
mocks.verify_partial_doubles = true
|
17
|
+
end
|
18
|
+
|
19
|
+
config.before(:suite) do
|
20
|
+
Specs.stub_out_class_method(Celluloid::Internals::Logger, :crash) do |*args|
|
21
|
+
_name, ex = *args
|
22
|
+
fail "Unstubbed Logger.crash() was called:\n crash(\n #{args.map(&:inspect).join(",\n ")})"\
|
23
|
+
"\nException backtrace: \n (#{ex.class}) #{ex.backtrace * "\n (#{ex.class}) "}"
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
config.before(:each) do |example|
|
28
|
+
@fake_logger = Specs::FakeLogger.new(Celluloid.logger, example.description)
|
29
|
+
stub_const("Celluloid::Internals::Logger", @fake_logger)
|
30
|
+
end
|
31
|
+
|
32
|
+
config.around do |ex|
|
33
|
+
# Needed because some specs mock/stub/expect on the logger
|
34
|
+
Celluloid.logger = Specs.logger
|
35
|
+
Celluloid.actor_system = nil
|
36
|
+
Specs.reset_class_variables(ex.description) do
|
37
|
+
Timeout.timeout(Specs::MAX_EXECUTION) { ex.run }
|
38
|
+
end
|
39
|
+
if @fake_logger.crashes?
|
40
|
+
crashes = @fake_logger.crashes.map do |args, call_stack|
|
41
|
+
msg, ex = *args
|
42
|
+
"\n** Crash: #{msg.inspect}(#{ex.inspect})\n Backtrace:\n (crash) #{call_stack * "\n (crash) "}"\
|
43
|
+
"\n Exception Backtrace (#{ex.inspect}):\n (ex) #{ex.backtrace * "\n (ex) "}"
|
44
|
+
end.join("\n")
|
45
|
+
fail "Actor crashes occured (please stub/mock if these are expected): #{crashes}"
|
46
|
+
end
|
47
|
+
@fake_logger = nil
|
48
|
+
Specs.assert_no_loose_threads!("after example: #{ex.description}") if Specs::CHECK_LOOSE_THREADS
|
49
|
+
end
|
50
|
+
|
51
|
+
config.around :each, library: :IO do |ex|
|
52
|
+
Celluloid.boot
|
53
|
+
FileUtils.rm("/tmp/cell_sock") if File.exist?("/tmp/cell_sock")
|
54
|
+
ex.run
|
55
|
+
Celluloid.shutdown
|
56
|
+
end
|
57
|
+
|
58
|
+
config.around :each, library: :ZMQ do |ex|
|
59
|
+
Celluloid::ZMQ.init(1) unless ex.metadata[:no_init]
|
60
|
+
Celluloid.boot
|
61
|
+
ex.run
|
62
|
+
Celluloid.shutdown
|
63
|
+
Celluloid::ZMQ.terminate
|
64
|
+
end
|
65
|
+
|
66
|
+
config.around :each, actor_system: :global do |ex|
|
67
|
+
Celluloid.boot
|
68
|
+
ex.run
|
69
|
+
Celluloid.shutdown
|
70
|
+
end
|
71
|
+
|
72
|
+
config.around :each, actor_system: :within do |ex|
|
73
|
+
Celluloid::Actor::System.new.within do
|
74
|
+
ex.run
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
data/spec/support/env.rb
CHANGED
@@ -1,16 +1,21 @@
|
|
1
1
|
require "nenv"
|
2
2
|
require "dotenv"
|
3
|
-
Dotenv.load!(Nenv("celluloid").config_file || (Nenv.ci? ? ".env-ci" : ".env-dev"))
|
4
3
|
|
5
|
-
|
6
|
-
|
7
|
-
|
4
|
+
# Default to `pwd`/.env-* ( whatever is in the current directory )
|
5
|
+
# Otherwise take the `.env-*` from the gem itself.
|
6
|
+
unless env = Nenv("celluloid").config_file
|
7
|
+
env = Nenv.ci? ? ".env-ci" : ".env-dev"
|
8
|
+
unless File.exist?(env)
|
9
|
+
env = File.expand_path("../../../#{env}", __FILE__)
|
8
10
|
end
|
11
|
+
end
|
9
12
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
13
|
+
Dotenv.load!(env) rescue nil # If for some reason no .env-* files are available at all, use defaults.
|
14
|
+
|
15
|
+
module Specs
|
16
|
+
class << self
|
17
|
+
def env
|
18
|
+
@env ||= Nenv("celluloid_specs")
|
14
19
|
end
|
15
20
|
end
|
16
21
|
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
class CallExampleActor
|
2
|
+
include Celluloid
|
3
|
+
|
4
|
+
def initialize(next_actor = nil)
|
5
|
+
@next = next_actor
|
6
|
+
end
|
7
|
+
|
8
|
+
def actual_method; end
|
9
|
+
|
10
|
+
def inspect
|
11
|
+
fail "Don't call!"
|
12
|
+
end
|
13
|
+
|
14
|
+
def chained_call_ids
|
15
|
+
[call_chain_id, @next.call_chain_id]
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
# de DEPRECATE:
|
20
|
+
|
21
|
+
class DeprecatedCallExampleActor
|
22
|
+
include Celluloid
|
23
|
+
|
24
|
+
def initialize(next_actor = nil)
|
25
|
+
@next = next_actor
|
26
|
+
end
|
27
|
+
|
28
|
+
def actual_method; end
|
29
|
+
|
30
|
+
def inspect
|
31
|
+
fail "Please don't call me! I'm not ready yet!"
|
32
|
+
end
|
33
|
+
|
34
|
+
def chained_call_ids
|
35
|
+
[call_chain_id, @next.call_chain_id]
|
36
|
+
end
|
37
|
+
end
|
data/spec/support/includer.rb
CHANGED
@@ -1,9 +1,6 @@
|
|
1
1
|
module CelluloidSpecs
|
2
2
|
def self.included_module
|
3
3
|
# Celluloid::IO implements this with with 'Celluloid::IO'
|
4
|
-
Celluloid
|
4
|
+
(defined? INCLUDED_MODULE) ? INCLUDED_MODULE : Celluloid
|
5
5
|
end
|
6
|
-
|
7
|
-
# Timer accuracy enforced by the tests (50ms)
|
8
|
-
TIMER_QUANTUM = 0.05
|
9
6
|
end
|
data/spec/support/logging.rb
CHANGED
@@ -14,10 +14,6 @@ module Specs
|
|
14
14
|
end
|
15
15
|
end
|
16
16
|
|
17
|
-
def split_logs?
|
18
|
-
log.strategy == "split"
|
19
|
-
end
|
20
|
-
|
21
17
|
def logger
|
22
18
|
@logger ||= default_logger.tap { |logger| logger.level = log.level }
|
23
19
|
end
|
@@ -32,13 +28,9 @@ module Specs
|
|
32
28
|
Logger.new(STDERR)
|
33
29
|
when "single"
|
34
30
|
Logger.new(open_logfile(log.file, log.sync?))
|
35
|
-
when "split"
|
36
|
-
# Use Celluloid in case there's logging in a before/after handle
|
37
|
-
# (is that a bug in rspec-log_split?)
|
38
|
-
Celluloid.logger
|
39
31
|
else
|
40
32
|
fail "Unknown logger strategy: #{strategy.inspect}."\
|
41
|
-
" Expected '
|
33
|
+
" Expected 'single' or 'stderr'."
|
42
34
|
end
|
43
35
|
end
|
44
36
|
|
@@ -51,7 +43,7 @@ module Specs
|
|
51
43
|
end
|
52
44
|
|
53
45
|
def default_strategy
|
54
|
-
(Nenv.ci? ? "stderr" : "
|
46
|
+
(Nenv.ci? ? "stderr" : "single")
|
55
47
|
end
|
56
48
|
|
57
49
|
def default_level_for(env, level)
|
@@ -4,6 +4,11 @@ module Specs
|
|
4
4
|
Thread.list.map do |thread|
|
5
5
|
next unless thread
|
6
6
|
next if thread == Thread.current
|
7
|
+
|
8
|
+
# TODO: Remove Specs::ALLOW_SLOW_MAILBOXES hax.
|
9
|
+
# Allows slow shutdown of mailboxes.
|
10
|
+
# Find more graceful way to do shutdown.
|
11
|
+
|
7
12
|
if RUBY_PLATFORM == "java"
|
8
13
|
# Avoid disrupting jRuby's "fiber" threads.
|
9
14
|
name = thread.to_java.getNativeThread.get_name
|
@@ -16,25 +21,31 @@ module Specs
|
|
16
21
|
|
17
22
|
if RUBY_ENGINE == "rbx"
|
18
23
|
# Avoid disrupting Rubinious thread
|
19
|
-
next if thread.backtrace.empty?
|
20
24
|
next if thread.backtrace.first =~ %r{rubysl/timeout/timeout\.rb}
|
25
|
+
|
26
|
+
if Specs::ALLOW_SLOW_MAILBOXES
|
27
|
+
if thread.backtrace.first =~ /wait/
|
28
|
+
next if thread.backtrace[1] =~ /mailbox\.rb/ && thread.backtrace[1] =~ /check/
|
29
|
+
end
|
30
|
+
end
|
21
31
|
end
|
22
32
|
|
23
33
|
if RUBY_ENGINE == "ruby"
|
24
34
|
# Sometimes stays
|
25
|
-
next if thread.backtrace.
|
35
|
+
next if thread.backtrace.nil?
|
36
|
+
next unless thread.backtrace.is_a?(Array)
|
37
|
+
next if thread.backtrace.empty?
|
38
|
+
next if thread.backtrace.first =~ /timeout\.rb/
|
39
|
+
|
40
|
+
if Specs::ALLOW_SLOW_MAILBOXES
|
41
|
+
next if thread.backtrace[1] =~ /mailbox\.rb/ && thread.backtrace[1] =~ /sleep/
|
42
|
+
end
|
26
43
|
end
|
27
44
|
|
28
45
|
thread
|
29
46
|
end.compact
|
30
47
|
end
|
31
48
|
|
32
|
-
def assert_no_loose_threads(location)
|
33
|
-
Specs.assert_no_loose_threads!("before example: #{location}")
|
34
|
-
yield
|
35
|
-
Specs.assert_no_loose_threads!("after example: #{location}")
|
36
|
-
end
|
37
|
-
|
38
49
|
def thread_name(thread)
|
39
50
|
(RUBY_PLATFORM == "java") ? thread.to_java.getNativeThread.get_name : ""
|
40
51
|
end
|
@@ -58,7 +69,7 @@ module Specs
|
|
58
69
|
sleep
|
59
70
|
end
|
60
71
|
|
61
|
-
fail "Aborted due to runaway threads (#{location})\n"\
|
72
|
+
fail Celluloid::ThreadLeak, "Aborted due to runaway threads (#{location})\n"\
|
62
73
|
"List: (#{loose.map(&:inspect)})\n:#{backtraces.join("\n")}"
|
63
74
|
end
|
64
75
|
end
|
@@ -6,7 +6,7 @@ module Specs
|
|
6
6
|
end
|
7
7
|
|
8
8
|
diff = Time.now.to_f - t1
|
9
|
-
STDERR.puts "wait took a bit long: #{diff} seconds" if diff >
|
9
|
+
STDERR.puts "wait took a bit long: #{diff} seconds" if diff > Specs::TIMER_QUANTUM
|
10
10
|
rescue Timeout::Error
|
11
11
|
t2 = Time.now.to_f
|
12
12
|
raise "Timeout after: #{t2 - t1} seconds"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: celluloid
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.17.
|
4
|
+
version: 0.17.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tony Arcieri
|
@@ -9,16 +9,16 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-
|
12
|
+
date: 2015-09-30 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
|
+
name: bundler
|
15
16
|
version_requirements: !ruby/object:Gem::Requirement
|
16
17
|
requirements:
|
17
18
|
- - ">="
|
18
19
|
- !ruby/object:Gem::Version
|
19
20
|
version: '0'
|
20
|
-
|
21
|
-
type: :runtime
|
21
|
+
type: :development
|
22
22
|
prerelease: false
|
23
23
|
requirement: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
@@ -26,13 +26,13 @@ dependencies:
|
|
26
26
|
- !ruby/object:Gem::Version
|
27
27
|
version: '0'
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
|
+
name: nenv
|
29
30
|
version_requirements: !ruby/object:Gem::Requirement
|
30
31
|
requirements:
|
31
32
|
- - ">="
|
32
33
|
- !ruby/object:Gem::Version
|
33
34
|
version: '0'
|
34
|
-
|
35
|
-
type: :runtime
|
35
|
+
type: :development
|
36
36
|
prerelease: false
|
37
37
|
requirement: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
@@ -40,13 +40,13 @@ dependencies:
|
|
40
40
|
- !ruby/object:Gem::Version
|
41
41
|
version: '0'
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
|
+
name: dotenv
|
43
44
|
version_requirements: !ruby/object:Gem::Requirement
|
44
45
|
requirements:
|
45
46
|
- - ">="
|
46
47
|
- !ruby/object:Gem::Version
|
47
48
|
version: '0'
|
48
|
-
|
49
|
-
type: :runtime
|
49
|
+
type: :development
|
50
50
|
prerelease: false
|
51
51
|
requirement: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
@@ -54,12 +54,12 @@ dependencies:
|
|
54
54
|
- !ruby/object:Gem::Version
|
55
55
|
version: '0'
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
|
+
name: benchmark_suite
|
57
58
|
version_requirements: !ruby/object:Gem::Requirement
|
58
59
|
requirements:
|
59
60
|
- - ">="
|
60
61
|
- !ruby/object:Gem::Version
|
61
62
|
version: '0'
|
62
|
-
name: benchmark_suite
|
63
63
|
type: :development
|
64
64
|
prerelease: false
|
65
65
|
requirement: !ruby/object:Gem::Requirement
|
@@ -68,12 +68,12 @@ dependencies:
|
|
68
68
|
- !ruby/object:Gem::Version
|
69
69
|
version: '0'
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
|
+
name: rubocop
|
71
72
|
version_requirements: !ruby/object:Gem::Requirement
|
72
73
|
requirements:
|
73
74
|
- - ">="
|
74
75
|
- !ruby/object:Gem::Version
|
75
76
|
version: '0'
|
76
|
-
name: rubocop
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
79
|
requirement: !ruby/object:Gem::Requirement
|
@@ -82,12 +82,12 @@ dependencies:
|
|
82
82
|
- !ruby/object:Gem::Version
|
83
83
|
version: '0'
|
84
84
|
- !ruby/object:Gem::Dependency
|
85
|
+
name: transpec
|
85
86
|
version_requirements: !ruby/object:Gem::Requirement
|
86
87
|
requirements:
|
87
88
|
- - ">="
|
88
89
|
- !ruby/object:Gem::Version
|
89
90
|
version: '0'
|
90
|
-
name: transpec
|
91
91
|
type: :development
|
92
92
|
prerelease: false
|
93
93
|
requirement: !ruby/object:Gem::Requirement
|
@@ -96,12 +96,12 @@ dependencies:
|
|
96
96
|
- !ruby/object:Gem::Version
|
97
97
|
version: '0'
|
98
98
|
- !ruby/object:Gem::Dependency
|
99
|
+
name: pry
|
99
100
|
version_requirements: !ruby/object:Gem::Requirement
|
100
101
|
requirements:
|
101
102
|
- - ">="
|
102
103
|
- !ruby/object:Gem::Version
|
103
104
|
version: '0'
|
104
|
-
name: pry
|
105
105
|
type: :development
|
106
106
|
prerelease: false
|
107
107
|
requirement: !ruby/object:Gem::Requirement
|
@@ -110,12 +110,12 @@ dependencies:
|
|
110
110
|
- !ruby/object:Gem::Version
|
111
111
|
version: '0'
|
112
112
|
- !ruby/object:Gem::Dependency
|
113
|
+
name: rake
|
113
114
|
version_requirements: !ruby/object:Gem::Requirement
|
114
115
|
requirements:
|
115
116
|
- - ">="
|
116
117
|
- !ruby/object:Gem::Version
|
117
118
|
version: '0'
|
118
|
-
name: rake
|
119
119
|
type: :development
|
120
120
|
prerelease: false
|
121
121
|
requirement: !ruby/object:Gem::Requirement
|
@@ -124,12 +124,12 @@ dependencies:
|
|
124
124
|
- !ruby/object:Gem::Version
|
125
125
|
version: '0'
|
126
126
|
- !ruby/object:Gem::Dependency
|
127
|
+
name: rspec
|
127
128
|
version_requirements: !ruby/object:Gem::Requirement
|
128
129
|
requirements:
|
129
130
|
- - ">="
|
130
131
|
- !ruby/object:Gem::Version
|
131
132
|
version: '0'
|
132
|
-
name: rspec
|
133
133
|
type: :development
|
134
134
|
prerelease: false
|
135
135
|
requirement: !ruby/object:Gem::Requirement
|
@@ -138,12 +138,12 @@ dependencies:
|
|
138
138
|
- !ruby/object:Gem::Version
|
139
139
|
version: '0'
|
140
140
|
- !ruby/object:Gem::Dependency
|
141
|
+
name: guard-rspec
|
141
142
|
version_requirements: !ruby/object:Gem::Requirement
|
142
143
|
requirements:
|
143
144
|
- - ">="
|
144
145
|
- !ruby/object:Gem::Version
|
145
146
|
version: '0'
|
146
|
-
name: guard-rspec
|
147
147
|
type: :development
|
148
148
|
prerelease: false
|
149
149
|
requirement: !ruby/object:Gem::Requirement
|
@@ -152,12 +152,12 @@ dependencies:
|
|
152
152
|
- !ruby/object:Gem::Version
|
153
153
|
version: '0'
|
154
154
|
- !ruby/object:Gem::Dependency
|
155
|
+
name: rspec-retry
|
155
156
|
version_requirements: !ruby/object:Gem::Requirement
|
156
157
|
requirements:
|
157
158
|
- - ">="
|
158
159
|
- !ruby/object:Gem::Version
|
159
160
|
version: '0'
|
160
|
-
name: coveralls
|
161
161
|
type: :development
|
162
162
|
prerelease: false
|
163
163
|
requirement: !ruby/object:Gem::Requirement
|
@@ -166,13 +166,13 @@ dependencies:
|
|
166
166
|
- !ruby/object:Gem::Version
|
167
167
|
version: '0'
|
168
168
|
- !ruby/object:Gem::Dependency
|
169
|
+
name: coveralls
|
169
170
|
version_requirements: !ruby/object:Gem::Requirement
|
170
171
|
requirements:
|
171
172
|
- - ">="
|
172
173
|
- !ruby/object:Gem::Version
|
173
174
|
version: '0'
|
174
|
-
|
175
|
-
type: :runtime
|
175
|
+
type: :development
|
176
176
|
prerelease: false
|
177
177
|
requirement: !ruby/object:Gem::Requirement
|
178
178
|
requirements:
|
@@ -180,12 +180,12 @@ dependencies:
|
|
180
180
|
- !ruby/object:Gem::Version
|
181
181
|
version: '0'
|
182
182
|
- !ruby/object:Gem::Dependency
|
183
|
+
name: celluloid-essentials
|
183
184
|
version_requirements: !ruby/object:Gem::Requirement
|
184
185
|
requirements:
|
185
186
|
- - ">="
|
186
187
|
- !ruby/object:Gem::Version
|
187
188
|
version: '0'
|
188
|
-
name: celluloid-supervision
|
189
189
|
type: :runtime
|
190
190
|
prerelease: false
|
191
191
|
requirement: !ruby/object:Gem::Requirement
|
@@ -194,12 +194,12 @@ dependencies:
|
|
194
194
|
- !ruby/object:Gem::Version
|
195
195
|
version: '0'
|
196
196
|
- !ruby/object:Gem::Dependency
|
197
|
+
name: celluloid-supervision
|
197
198
|
version_requirements: !ruby/object:Gem::Requirement
|
198
199
|
requirements:
|
199
200
|
- - ">="
|
200
201
|
- !ruby/object:Gem::Version
|
201
202
|
version: '0'
|
202
|
-
name: celluloid-pool
|
203
203
|
type: :runtime
|
204
204
|
prerelease: false
|
205
205
|
requirement: !ruby/object:Gem::Requirement
|
@@ -208,12 +208,12 @@ dependencies:
|
|
208
208
|
- !ruby/object:Gem::Version
|
209
209
|
version: '0'
|
210
210
|
- !ruby/object:Gem::Dependency
|
211
|
+
name: celluloid-pool
|
211
212
|
version_requirements: !ruby/object:Gem::Requirement
|
212
213
|
requirements:
|
213
214
|
- - ">="
|
214
215
|
- !ruby/object:Gem::Version
|
215
216
|
version: '0'
|
216
|
-
name: celluloid-fsm
|
217
217
|
type: :runtime
|
218
218
|
prerelease: false
|
219
219
|
requirement: !ruby/object:Gem::Requirement
|
@@ -222,12 +222,12 @@ dependencies:
|
|
222
222
|
- !ruby/object:Gem::Version
|
223
223
|
version: '0'
|
224
224
|
- !ruby/object:Gem::Dependency
|
225
|
+
name: celluloid-fsm
|
225
226
|
version_requirements: !ruby/object:Gem::Requirement
|
226
227
|
requirements:
|
227
228
|
- - ">="
|
228
229
|
- !ruby/object:Gem::Version
|
229
230
|
version: '0'
|
230
|
-
name: celluloid-extras
|
231
231
|
type: :runtime
|
232
232
|
prerelease: false
|
233
233
|
requirement: !ruby/object:Gem::Requirement
|
@@ -236,33 +236,33 @@ dependencies:
|
|
236
236
|
- !ruby/object:Gem::Version
|
237
237
|
version: '0'
|
238
238
|
- !ruby/object:Gem::Dependency
|
239
|
+
name: celluloid-extras
|
239
240
|
version_requirements: !ruby/object:Gem::Requirement
|
240
241
|
requirements:
|
241
242
|
- - ">="
|
242
243
|
- !ruby/object:Gem::Version
|
243
|
-
version:
|
244
|
-
name: timers
|
244
|
+
version: '0'
|
245
245
|
type: :runtime
|
246
246
|
prerelease: false
|
247
247
|
requirement: !ruby/object:Gem::Requirement
|
248
248
|
requirements:
|
249
249
|
- - ">="
|
250
250
|
- !ruby/object:Gem::Version
|
251
|
-
version:
|
251
|
+
version: '0'
|
252
252
|
- !ruby/object:Gem::Dependency
|
253
|
+
name: timers
|
253
254
|
version_requirements: !ruby/object:Gem::Requirement
|
254
255
|
requirements:
|
255
256
|
- - ">="
|
256
257
|
- !ruby/object:Gem::Version
|
257
|
-
version:
|
258
|
-
name: rspec-logsplit
|
258
|
+
version: 4.1.1
|
259
259
|
type: :runtime
|
260
260
|
prerelease: false
|
261
261
|
requirement: !ruby/object:Gem::Requirement
|
262
262
|
requirements:
|
263
263
|
- - ">="
|
264
264
|
- !ruby/object:Gem::Version
|
265
|
-
version:
|
265
|
+
version: 4.1.1
|
266
266
|
description: Celluloid enables people to build concurrent programs out of concurrent
|
267
267
|
objects just as easily as they build sequential programs out of sequential objects
|
268
268
|
email:
|
@@ -275,7 +275,7 @@ files:
|
|
275
275
|
- CHANGES.md
|
276
276
|
- LICENSE.txt
|
277
277
|
- README.md
|
278
|
-
- culture/
|
278
|
+
- culture/CONDUCT.md
|
279
279
|
- culture/Gemfile
|
280
280
|
- culture/LICENSE.txt
|
281
281
|
- culture/README.md
|
@@ -288,6 +288,7 @@ files:
|
|
288
288
|
- culture/rubocop/README.md
|
289
289
|
- culture/rubocop/lint.yml
|
290
290
|
- culture/rubocop/metrics.yml
|
291
|
+
- culture/rubocop/perf.yml
|
291
292
|
- culture/rubocop/rubocop.yml
|
292
293
|
- culture/rubocop/style.yml
|
293
294
|
- culture/spec/gems_spec.rb
|
@@ -373,18 +374,19 @@ files:
|
|
373
374
|
- spec/shared/mailbox_examples.rb
|
374
375
|
- spec/shared/task_examples.rb
|
375
376
|
- spec/spec_helper.rb
|
377
|
+
- spec/support/configure_rspec.rb
|
376
378
|
- spec/support/coverage.rb
|
377
379
|
- spec/support/crash_checking.rb
|
378
380
|
- spec/support/debugging.rb
|
379
381
|
- spec/support/env.rb
|
380
382
|
- spec/support/examples/actor_class.rb
|
383
|
+
- spec/support/examples/call_class.rb
|
381
384
|
- spec/support/examples/evented_mailbox_class.rb
|
382
385
|
- spec/support/includer.rb
|
383
386
|
- spec/support/logging.rb
|
384
387
|
- spec/support/loose_threads.rb
|
385
388
|
- spec/support/reset_class_variables.rb
|
386
389
|
- spec/support/sleep_and_wait.rb
|
387
|
-
- spec/support/split_logs.rb
|
388
390
|
- spec/support/stubbing.rb
|
389
391
|
homepage: https://github.com/celluloid/celluloid
|
390
392
|
licenses:
|
@@ -398,7 +400,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
398
400
|
requirements:
|
399
401
|
- - ">="
|
400
402
|
- !ruby/object:Gem::Version
|
401
|
-
version: 1.9.
|
403
|
+
version: 1.9.3
|
402
404
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
403
405
|
requirements:
|
404
406
|
- - ">="
|
data/spec/support/split_logs.rb
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
require "rspec/log_split" if Specs.split_logs?
|