mutant 0.6.7 → 0.7.1

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.
Files changed (70) hide show
  1. checksums.yaml +4 -4
  2. data/Changelog.md +10 -0
  3. data/README.md +1 -1
  4. data/config/flay.yml +1 -1
  5. data/config/reek.yml +11 -40
  6. data/config/rubocop.yml +1 -1
  7. data/lib/mutant.rb +10 -2
  8. data/lib/mutant/actor.rb +64 -0
  9. data/lib/mutant/actor/actor.rb +50 -0
  10. data/lib/mutant/actor/env.rb +35 -0
  11. data/lib/mutant/actor/mailbox.rb +53 -0
  12. data/lib/mutant/actor/receiver.rb +48 -0
  13. data/lib/mutant/actor/sender.rb +27 -0
  14. data/lib/mutant/ast/types.rb +1 -1
  15. data/lib/mutant/cli.rb +2 -0
  16. data/lib/mutant/config.rb +2 -1
  17. data/lib/mutant/env.rb +6 -2
  18. data/lib/mutant/expression/methods.rb +1 -1
  19. data/lib/mutant/integration.rb +11 -1
  20. data/lib/mutant/isolation.rb +1 -2
  21. data/lib/mutant/meta/example.rb +1 -1
  22. data/lib/mutant/mutation.rb +47 -21
  23. data/lib/mutant/mutator/node.rb +1 -1
  24. data/lib/mutant/mutator/node/literal/symbol.rb +1 -1
  25. data/lib/mutant/mutator/node/send.rb +4 -3
  26. data/lib/mutant/reporter/cli.rb +2 -0
  27. data/lib/mutant/reporter/cli/format.rb +23 -36
  28. data/lib/mutant/reporter/cli/printer.rb +66 -27
  29. data/lib/mutant/result.rb +45 -58
  30. data/lib/mutant/runner.rb +47 -154
  31. data/lib/mutant/runner/master.rb +174 -0
  32. data/lib/mutant/runner/scheduler.rb +141 -0
  33. data/lib/mutant/runner/worker.rb +93 -0
  34. data/lib/mutant/subject/method/instance.rb +1 -15
  35. data/lib/mutant/test.rb +2 -15
  36. data/lib/mutant/version.rb +1 -1
  37. data/meta/send.rb +16 -0
  38. data/mutant-rspec.gemspec +1 -1
  39. data/mutant.gemspec +1 -1
  40. data/spec/integration/mutant/rspec_spec.rb +0 -6
  41. data/spec/spec_helper.rb +9 -1
  42. data/spec/support/fake_actor.rb +93 -0
  43. data/spec/support/shared_context.rb +135 -0
  44. data/spec/unit/mutant/actor/actor_spec.rb +35 -0
  45. data/spec/unit/mutant/actor/binding_spec.rb +32 -0
  46. data/spec/unit/mutant/actor/env_spec.rb +49 -0
  47. data/spec/unit/mutant/actor/message_spec.rb +23 -0
  48. data/spec/unit/mutant/actor/receiver_spec.rb +60 -0
  49. data/spec/unit/mutant/actor/sender_spec.rb +22 -0
  50. data/spec/unit/mutant/cli_spec.rb +17 -4
  51. data/spec/unit/mutant/env_spec.rb +2 -2
  52. data/spec/unit/mutant/mailbox_spec.rb +33 -0
  53. data/spec/unit/mutant/mutation_spec.rb +52 -18
  54. data/spec/unit/mutant/mutator/registry_spec.rb +4 -4
  55. data/spec/unit/mutant/reporter/cli_spec.rb +131 -249
  56. data/spec/unit/mutant/result/env_spec.rb +55 -0
  57. data/spec/unit/mutant/result/subject_spec.rb +43 -0
  58. data/spec/unit/mutant/runner/master_spec.rb +199 -0
  59. data/spec/unit/mutant/runner/scheduler_spec.rb +161 -0
  60. data/spec/unit/mutant/runner/worker_spec.rb +73 -0
  61. data/spec/unit/mutant/runner_spec.rb +60 -118
  62. data/spec/unit/mutant/subject/method/instance_spec.rb +18 -31
  63. data/spec/unit/mutant/warning_filter_spec.rb +1 -1
  64. metadata +39 -14
  65. data/lib/mutant/runner/collector.rb +0 -133
  66. data/lib/mutant/warning_expectation.rb +0 -47
  67. data/spec/unit/mutant/runner/collector_spec.rb +0 -198
  68. data/spec/unit/mutant/test_spec.rb +0 -23
  69. data/spec/unit/mutant/warning_expectation_spec.rb +0 -80
  70. data/test_app/Gemfile.rspec2 +0 -6
@@ -0,0 +1,73 @@
1
+ RSpec.describe Mutant::Runner::Worker do
2
+ setup_shared_context
3
+
4
+ let(:actor) { actor_env.actor(:worker) }
5
+ let(:parent) { actor_env.actor(:parent).sender }
6
+
7
+ before do
8
+ message_sequence.add(:parent, :ready, actor.sender)
9
+ end
10
+
11
+ let(:attributes) do
12
+ {
13
+ config: config,
14
+ parent: parent,
15
+ id: 1
16
+ }
17
+ end
18
+
19
+ describe '.run' do
20
+ subject { described_class.run(attributes) }
21
+
22
+ let(:actor_names) { [:worker] }
23
+
24
+ context 'when receving :job command' do
25
+
26
+ let(:test_result) { double('Test Result') }
27
+
28
+ before do
29
+ expect(mutation).to receive(:kill).with(config.isolation, config.integration).and_return(test_result).ordered
30
+
31
+ message_sequence.add(:worker, :job, job)
32
+ message_sequence.add(:parent, :result, job_result)
33
+ message_sequence.add(:parent, :ready, actor.sender)
34
+ message_sequence.add(:worker, :stop)
35
+ end
36
+
37
+ let(:test) { double('Test') }
38
+ let(:index) { double('Index') }
39
+ let(:test_result) { double('Test Result') }
40
+ let(:mutation) { double('Mutation') }
41
+ let(:job_result) { Mutant::Runner::JobResult.new(job: job, result: mutation_result) }
42
+ let(:job) { Mutant::Runner::Job.new(index: index, mutation: mutation) }
43
+
44
+ let(:mutation_result) do
45
+ Mutant::Result::Mutation.new(
46
+ mutation: mutation,
47
+ index: job.index,
48
+ test_result: test_result
49
+ )
50
+ end
51
+
52
+ it 'signals ready and status to parent' do
53
+ subject
54
+ end
55
+
56
+ it { should eql(actor.sender) }
57
+
58
+ it 'consumes all messages' do
59
+ expect { subject }.to change(&message_sequence.method(:consumed?)).from(false).to(true)
60
+ end
61
+ end
62
+
63
+ context 'when receiving unknown command' do
64
+ before do
65
+ message_sequence.add(:worker, :other)
66
+ end
67
+
68
+ it 'raises error' do
69
+ expect { subject }.to raise_error(Mutant::Actor::ProtocolError, 'Unknown command: :other')
70
+ end
71
+ end
72
+ end
73
+ end
@@ -1,143 +1,85 @@
1
- class Double
2
- include Concord.new(:name, :attributes)
3
-
4
- def self.new(name, attributes = {})
5
- super
6
- end
7
-
8
- def update(_attributes)
9
- self
10
- end
11
-
12
- def method_missing(name, *arguments)
13
- super unless attributes.key?(name)
14
- fail "Arguments provided for #{name}" if arguments.any?
15
- attributes.fetch(name)
16
- end
17
- end
18
-
19
- # FIXME: This is not even close to a mutation covering spec.
20
1
  RSpec.describe Mutant::Runner do
21
- let(:object) { described_class.new(env) }
2
+ setup_shared_context
22
3
 
23
- let(:reporter) { Mutant::Reporter::Trace.new }
24
- let(:config) { Mutant::Config::DEFAULT.update(reporter: reporter, isolation: Mutant::Isolation::None) }
25
- let(:subjects) { [subject_a, subject_b] }
4
+ let(:integration) { double('Integration') }
5
+ let(:master_sender) { actor_env.spawn }
6
+ let(:runner_actor) { actor_env.actor(:runner) }
26
7
 
27
- let(:subject_a) { Double.new('Subject A', mutations: mutations_a, tests: subject_a_tests) }
28
- let(:subject_b) { Double.new('Subject B', mutations: mutations_b) }
29
-
30
- let(:subject_a_tests) { [test_a1, test_a2] }
31
-
32
- let(:env) do
33
- subjects = self.subjects
34
- Class.new(Mutant::Env) do
35
- define_method(:subjects) { subjects }
36
- end.new(config)
8
+ before do
9
+ expect(integration).to receive(:setup).ordered
10
+ expect(Mutant::Runner::Master).to receive(:call).with(env).and_return(master_sender).ordered
37
11
  end
38
12
 
39
- let(:mutations_a) { [mutation_a1, mutation_a2] }
40
- let(:mutations_b) { [] }
13
+ describe '.call' do
14
+ update(:config) { { integration: integration } }
15
+ let(:actor_names) { [:runner, :master] }
41
16
 
42
- let(:mutation_a1) { Double.new('Mutation A1') }
43
- let(:mutation_a2) { Double.new('Mutation A2') }
17
+ subject { described_class.call(env) }
44
18
 
45
- let(:test_a1) { Double.new('Test A1') }
46
- let(:test_a2) { Double.new('Test A2') }
19
+ context 'when status done gets returned immediately' do
20
+ before do
21
+ message_sequence.add(:runner, :status, actor_env.actor(:current).sender)
22
+ message_sequence.add(:current, :status, status)
23
+ message_sequence.add(:runner, :stop, actor_env.actor(:current).sender)
24
+ message_sequence.add(:current, :stop)
25
+ end
47
26
 
48
- let(:test_report_a1) { Double.new('Test Report A1') }
27
+ it 'returns env result' do
28
+ should be(status.env_result)
29
+ end
49
30
 
50
- before do
51
- allow(mutation_a1).to receive(:subject).and_return(subject_a)
52
- allow(mutation_a1).to receive(:insert)
53
- allow(mutation_a2).to receive(:subject).and_return(subject_a)
54
- allow(mutation_a2).to receive(:insert)
55
- allow(test_a1).to receive(:run).and_return(test_report_a1)
56
- allow(mutation_a1).to receive(:killed_by?).with(test_report_a1).and_return(true)
57
- allow(mutation_a2).to receive(:killed_by?).with(test_report_a1).and_return(true)
58
- end
31
+ it 'logs start' do
32
+ expect { subject }.to change { config.reporter.start_calls }.from([]).to([env])
33
+ end
59
34
 
60
- before do
61
- time = Time.at(0)
62
- allow(Time).to receive(:now).and_return(time)
63
- end
35
+ it 'logs process' do
36
+ expect { subject }.to change { config.reporter.progress_calls }.from([]).to([status])
37
+ end
64
38
 
65
- let(:expected_subject_results) do
66
- [
67
- Mutant::Result::Subject.new(
68
- subject: subject_a,
69
- mutation_results: [
70
- Mutant::Result::Mutation.new(
71
- index: 0,
72
- mutation: mutation_a1,
73
- runtime: 0.0,
74
- test_results: [test_report_a1]
75
- ),
76
- Mutant::Result::Mutation.new(
77
- index: 1,
78
- mutation: mutation_a2,
79
- runtime: 0.0,
80
- test_results: [test_report_a1]
81
- )
82
- ],
83
- runtime: 0.0
84
- ),
85
- Mutant::Result::Subject.new(
86
- subject: subject_b,
87
- mutation_results: [],
88
- runtime: 0.0
89
- )
90
- ]
91
- end
39
+ it 'logs result' do
40
+ expect { subject }.to change { config.reporter.report_calls }.from([]).to([status.env_result])
41
+ end
92
42
 
93
- describe '#result' do
94
- let(:expected_result) do
95
- Mutant::Result::Env.new(
96
- env: env,
97
- runtime: 0.0,
98
- subject_results: expected_subject_results
99
- )
43
+ it 'consumes all messages' do
44
+ expect { subject }.to change(&message_sequence.method(:consumed?)).from(false).to(true)
45
+ end
100
46
  end
101
47
 
102
- context 'on error free execution' do
103
- subject { object.result }
104
-
105
- its(:env) { should be(env) }
48
+ context 'when status done gets returned immediately' do
49
+ let(:incomplete_status) { status.update(done: false) }
106
50
 
107
- it 'reports result' do
108
- expect { subject }.to change { config.reporter.report_calls }.from([]).to([expected_result])
51
+ before do
52
+ expect(Kernel).to receive(:sleep).with(1 / 20.0).exactly(2).times.ordered
53
+ message_sequence.add(:runner, :status, actor_env.actor(:current).sender)
54
+ message_sequence.add(:current, :status, incomplete_status)
55
+ message_sequence.add(:runner, :status, actor_env.actor(:current).sender)
56
+ message_sequence.add(:current, :status, incomplete_status)
57
+ message_sequence.add(:runner, :status, actor_env.actor(:current).sender)
58
+ message_sequence.add(:current, :status, status)
59
+ message_sequence.add(:runner, :stop, actor_env.actor(:current).sender)
60
+ message_sequence.add(:current, :stop)
109
61
  end
110
- end
111
62
 
112
- context 'when isolation raises error' do
113
- subject { object.result }
63
+ it 'returns env result' do
64
+ should be(status.env_result)
65
+ end
114
66
 
115
- its(:env) { should be(env) }
116
- its(:subject_results) { should eql(expected_subject_results) }
67
+ it 'logs start' do
68
+ expect { subject }.to change { config.reporter.start_calls }.from([]).to([env])
69
+ end
117
70
 
118
- it { should eql(expected_result) }
71
+ it 'logs result' do
72
+ expect { subject }.to change { config.reporter.report_calls }.from([]).to([status.env_result])
73
+ end
119
74
 
120
- before do
121
- expect(Mutant::Isolation::None).to receive(:call)
122
- .twice
123
- .and_raise(Mutant::Isolation::Error.new('test-exception-message'))
124
-
125
- expect(Mutant::Result::Test).to receive(:new).with(
126
- test: test_a1,
127
- mutation: mutation_a1,
128
- runtime: 0.0,
129
- output: 'test-exception-message',
130
- passed: false
131
- ).and_return(test_report_a1)
132
- expect(Mutant::Result::Test).to receive(:new).with(
133
- test: test_a1,
134
- mutation: mutation_a2,
135
- runtime: 0.0,
136
- output: 'test-exception-message',
137
- passed: false
138
- ).and_return(test_report_a1)
75
+ it 'logs process' do
76
+ expected = [incomplete_status, incomplete_status, status]
77
+ expect { subject }.to change { config.reporter.progress_calls }.from([]).to(expected)
139
78
  end
140
79
 
80
+ it 'consumes all messages' do
81
+ expect { subject }.to change(&message_sequence.method(:consumed?)).from(false).to(true)
82
+ end
141
83
  end
142
84
  end
143
85
  end
@@ -48,36 +48,11 @@ RSpec.describe Mutant::Subject::Method::Instance do
48
48
 
49
49
  subject { object.prepare }
50
50
 
51
- context 'on non initialize methods' do
52
-
53
- it 'undefines method on scope' do
54
- expect { subject }.to change { scope.instance_methods.include?(:foo) }.from(true).to(false)
55
- end
56
-
57
- it_should_behave_like 'a command method'
58
-
51
+ it 'undefines method on scope' do
52
+ expect { subject }.to change { scope.instance_methods.include?(:foo) }.from(true).to(false)
59
53
  end
60
54
 
61
- context 'on initialize method' do
62
-
63
- let(:node) do
64
- s(:def, :initialize, s(:args))
65
- end
66
-
67
- it 'does not write warnings' do
68
- warnings = Mutant::WarningFilter.use do
69
- subject
70
- end
71
- expect(warnings).to eql([])
72
- end
73
-
74
- it 'undefines method on scope' do
75
- subject
76
- expect { scope.new }.to raise_error(NoMethodError)
77
- end
78
-
79
- it_should_behave_like 'a command method'
80
- end
55
+ it_should_behave_like 'a command method'
81
56
  end
82
57
 
83
58
  describe '#source' do
@@ -157,9 +132,21 @@ RSpec.describe Mutant::Subject::Method::Instance::Memoized do
157
132
 
158
133
  let(:expected) do
159
134
  [
160
- Mutant::Mutation::Neutral.new(object, s(:begin, s(:def, :foo, s(:args)), s(:send, nil, :memoize, s(:args, s(:sym, :foo))))),
161
- Mutant::Mutation::Evil.new(object, s(:begin, s(:def, :foo, s(:args), s(:send, nil, :raise)), s(:send, nil, :memoize, s(:args, s(:sym, :foo))))),
162
- Mutant::Mutation::Evil.new(object, s(:begin, s(:def, :foo, s(:args), nil), s(:send, nil, :memoize, s(:args, s(:sym, :foo))))),
135
+ Mutant::Mutation::Neutral.new(
136
+ object,
137
+ s(:begin,
138
+ s(:def, :foo, s(:args)), s(:send, nil, :memoize, s(:args, s(:sym, :foo))))
139
+ ),
140
+ Mutant::Mutation::Evil.new(
141
+ object,
142
+ s(:begin,
143
+ s(:def, :foo, s(:args), s(:send, nil, :raise)), s(:send, nil, :memoize, s(:args, s(:sym, :foo))))
144
+ ),
145
+ Mutant::Mutation::Evil.new(
146
+ object,
147
+ s(:begin,
148
+ s(:def, :foo, s(:args), nil), s(:send, nil, :memoize, s(:args, s(:sym, :foo))))
149
+ )
163
150
  ]
164
151
  end
165
152
 
@@ -59,7 +59,7 @@ RSpec.describe Mutant::WarningFilter do
59
59
  expect(found).to be(true)
60
60
  end
61
61
 
62
- it 'resets to original stderr after execution with exeception ' do
62
+ it 'resets to original stderr after execution with exception ' do
63
63
  original = $stderr
64
64
  begin
65
65
  object.use { fail }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mutant
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.7
4
+ version: 0.7.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Markus Schirp
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-17 00:00:00.000000000 Z
11
+ date: 2014-12-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: parser
@@ -128,14 +128,14 @@ dependencies:
128
128
  requirements:
129
129
  - - "~>"
130
130
  - !ruby/object:Gem::Version
131
- version: 0.11.0
131
+ version: 0.11.1
132
132
  type: :runtime
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
- version: 0.11.0
138
+ version: 0.11.1
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: adamantium
141
141
  requirement: !ruby/object:Gem::Requirement
@@ -274,6 +274,12 @@ files:
274
274
  - config/triage.yml
275
275
  - config/yardstick.yml
276
276
  - lib/mutant.rb
277
+ - lib/mutant/actor.rb
278
+ - lib/mutant/actor/actor.rb
279
+ - lib/mutant/actor/env.rb
280
+ - lib/mutant/actor/mailbox.rb
281
+ - lib/mutant/actor/receiver.rb
282
+ - lib/mutant/actor/sender.rb
277
283
  - lib/mutant/ast.rb
278
284
  - lib/mutant/ast/meta.rb
279
285
  - lib/mutant/ast/named_children.rb
@@ -382,14 +388,15 @@ files:
382
388
  - lib/mutant/require_highjack.rb
383
389
  - lib/mutant/result.rb
384
390
  - lib/mutant/runner.rb
385
- - lib/mutant/runner/collector.rb
391
+ - lib/mutant/runner/master.rb
392
+ - lib/mutant/runner/scheduler.rb
393
+ - lib/mutant/runner/worker.rb
386
394
  - lib/mutant/subject.rb
387
395
  - lib/mutant/subject/method.rb
388
396
  - lib/mutant/subject/method/instance.rb
389
397
  - lib/mutant/subject/method/singleton.rb
390
398
  - lib/mutant/test.rb
391
399
  - lib/mutant/version.rb
392
- - lib/mutant/warning_expectation.rb
393
400
  - lib/mutant/warning_filter.rb
394
401
  - lib/mutant/zombifier.rb
395
402
  - lib/mutant/zombifier/file.rb
@@ -460,11 +467,19 @@ files:
460
467
  - spec/spec_helper.rb
461
468
  - spec/support/compress_helper.rb
462
469
  - spec/support/corpus.rb
470
+ - spec/support/fake_actor.rb
463
471
  - spec/support/ice_nine_config.rb
464
472
  - spec/support/mutation_verifier.rb
465
473
  - spec/support/rb_bug.rb
466
474
  - spec/support/rspec.rb
475
+ - spec/support/shared_context.rb
467
476
  - spec/support/test_app.rb
477
+ - spec/unit/mutant/actor/actor_spec.rb
478
+ - spec/unit/mutant/actor/binding_spec.rb
479
+ - spec/unit/mutant/actor/env_spec.rb
480
+ - spec/unit/mutant/actor/message_spec.rb
481
+ - spec/unit/mutant/actor/receiver_spec.rb
482
+ - spec/unit/mutant/actor/sender_spec.rb
468
483
  - spec/unit/mutant/ast_spec.rb
469
484
  - spec/unit/mutant/cli_spec.rb
470
485
  - spec/unit/mutant/context/root_spec.rb
@@ -481,6 +496,7 @@ files:
481
496
  - spec/unit/mutant/integration_spec.rb
482
497
  - spec/unit/mutant/isolation_spec.rb
483
498
  - spec/unit/mutant/loader/eval_spec.rb
499
+ - spec/unit/mutant/mailbox_spec.rb
484
500
  - spec/unit/mutant/matcher/chain_spec.rb
485
501
  - spec/unit/mutant/matcher/compiler/subject_prefix_spec.rb
486
502
  - spec/unit/mutant/matcher/compiler_spec.rb
@@ -497,19 +513,20 @@ files:
497
513
  - spec/unit/mutant/reporter/cli_spec.rb
498
514
  - spec/unit/mutant/reporter/null_spec.rb
499
515
  - spec/unit/mutant/require_highjack_spec.rb
500
- - spec/unit/mutant/runner/collector_spec.rb
516
+ - spec/unit/mutant/result/env_spec.rb
517
+ - spec/unit/mutant/result/subject_spec.rb
518
+ - spec/unit/mutant/runner/master_spec.rb
519
+ - spec/unit/mutant/runner/scheduler_spec.rb
520
+ - spec/unit/mutant/runner/worker_spec.rb
501
521
  - spec/unit/mutant/runner_spec.rb
502
522
  - spec/unit/mutant/subject/context_spec.rb
503
523
  - spec/unit/mutant/subject/method/instance_spec.rb
504
524
  - spec/unit/mutant/subject/method/singleton_spec.rb
505
525
  - spec/unit/mutant/subject_spec.rb
506
- - spec/unit/mutant/test_spec.rb
507
- - spec/unit/mutant/warning_expectation_spec.rb
508
526
  - spec/unit/mutant/warning_filter_spec.rb
509
527
  - spec/unit/mutant_spec.rb
510
528
  - test_app/.rspec
511
529
  - test_app/Gemfile.devtools
512
- - test_app/Gemfile.rspec2
513
530
  - test_app/Gemfile.rspec3.0
514
531
  - test_app/Gemfile.rspec3.1
515
532
  - test_app/lib/test_app.rb
@@ -547,6 +564,12 @@ test_files:
547
564
  - spec/integration/mutant/rspec_spec.rb
548
565
  - spec/integration/mutant/test_mutator_handles_types_spec.rb
549
566
  - spec/integration/mutant/zombie_spec.rb
567
+ - spec/unit/mutant/actor/actor_spec.rb
568
+ - spec/unit/mutant/actor/binding_spec.rb
569
+ - spec/unit/mutant/actor/env_spec.rb
570
+ - spec/unit/mutant/actor/message_spec.rb
571
+ - spec/unit/mutant/actor/receiver_spec.rb
572
+ - spec/unit/mutant/actor/sender_spec.rb
550
573
  - spec/unit/mutant/ast_spec.rb
551
574
  - spec/unit/mutant/cli_spec.rb
552
575
  - spec/unit/mutant/context/root_spec.rb
@@ -563,6 +586,7 @@ test_files:
563
586
  - spec/unit/mutant/integration_spec.rb
564
587
  - spec/unit/mutant/isolation_spec.rb
565
588
  - spec/unit/mutant/loader/eval_spec.rb
589
+ - spec/unit/mutant/mailbox_spec.rb
566
590
  - spec/unit/mutant/matcher/chain_spec.rb
567
591
  - spec/unit/mutant/matcher/compiler/subject_prefix_spec.rb
568
592
  - spec/unit/mutant/matcher/compiler_spec.rb
@@ -579,14 +603,15 @@ test_files:
579
603
  - spec/unit/mutant/reporter/cli_spec.rb
580
604
  - spec/unit/mutant/reporter/null_spec.rb
581
605
  - spec/unit/mutant/require_highjack_spec.rb
582
- - spec/unit/mutant/runner/collector_spec.rb
606
+ - spec/unit/mutant/result/env_spec.rb
607
+ - spec/unit/mutant/result/subject_spec.rb
608
+ - spec/unit/mutant/runner/master_spec.rb
609
+ - spec/unit/mutant/runner/scheduler_spec.rb
610
+ - spec/unit/mutant/runner/worker_spec.rb
583
611
  - spec/unit/mutant/runner_spec.rb
584
612
  - spec/unit/mutant/subject/context_spec.rb
585
613
  - spec/unit/mutant/subject/method/instance_spec.rb
586
614
  - spec/unit/mutant/subject/method/singleton_spec.rb
587
615
  - spec/unit/mutant/subject_spec.rb
588
- - spec/unit/mutant/test_spec.rb
589
- - spec/unit/mutant/warning_expectation_spec.rb
590
616
  - spec/unit/mutant/warning_filter_spec.rb
591
617
  - spec/unit/mutant_spec.rb
592
- has_rdoc: