mutant 0.8.3 → 0.8.4
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/Changelog.md +8 -0
- data/Gemfile +1 -4
- data/Gemfile.shared +3 -0
- data/Rakefile +0 -2
- data/config/flay.yml +1 -1
- data/config/rubocop.yml +8 -0
- data/lib/mutant.rb +2 -0
- data/lib/mutant/ast/meta/restarg.rb +15 -0
- data/lib/mutant/ast/meta/symbol.rb +15 -0
- data/lib/mutant/cli.rb +11 -11
- data/lib/mutant/config.rb +1 -1
- data/lib/mutant/env.rb +1 -1
- data/lib/mutant/matcher/config.rb +2 -2
- data/lib/mutant/mutator/node/block.rb +16 -0
- data/lib/mutant/mutator/node/define.rb +14 -0
- data/lib/mutant/mutator/node/send.rb +12 -1
- data/lib/mutant/mutator/node/send/binary.rb +25 -1
- data/lib/mutant/parallel.rb +2 -2
- data/lib/mutant/result.rb +1 -1
- data/lib/mutant/runner/sink.rb +2 -2
- data/lib/mutant/version.rb +1 -1
- data/meta/begin.rb +0 -2
- data/meta/block.rb +15 -0
- data/meta/def.rb +25 -0
- data/meta/or_asgn.rb +9 -0
- data/meta/send.rb +41 -1
- data/mutant-rspec.gemspec +0 -2
- data/mutant.gemspec +5 -6
- data/spec/spec_helper.rb +1 -1
- data/spec/support/corpus.rb +1 -0
- data/spec/support/shared_context.rb +5 -5
- data/spec/unit/mutant/cli_spec.rb +6 -6
- data/spec/unit/mutant/env/boostrap_spec.rb +3 -3
- data/spec/unit/mutant/env_spec.rb +1 -1
- data/spec/unit/mutant/matcher/compiler_spec.rb +1 -1
- data/spec/unit/mutant/parallel/master_spec.rb +2 -2
- data/spec/unit/mutant/reporter/cli/printer/config_spec.rb +1 -1
- data/spec/unit/mutant/reporter/cli/printer/env_progress_spec.rb +3 -3
- data/spec/unit/mutant/reporter/cli/printer/env_result_spec.rb +1 -1
- data/spec/unit/mutant/reporter/cli/printer/mutation_progress_result_spec.rb +2 -2
- data/spec/unit/mutant/reporter/cli/printer/mutation_result_spec.rb +3 -3
- data/spec/unit/mutant/reporter/cli/printer/status_progressive_spec.rb +5 -5
- data/spec/unit/mutant/reporter/cli/printer/status_spec.rb +5 -5
- data/spec/unit/mutant/reporter/cli/printer/subject_progress_spec.rb +2 -2
- data/spec/unit/mutant/reporter/cli/printer/subject_result_spec.rb +2 -2
- data/spec/unit/mutant/reporter/cli_spec.rb +6 -4
- data/spec/unit/mutant/result_spec.rb +23 -0
- data/spec/unit/mutant/runner/sink/mutation_spec.rb +8 -8
- data/spec/unit/mutant/selector/expression_spec.rb +1 -1
- data/test_app/Gemfile.rspec3.2 +1 -0
- data/test_app/Gemfile.rspec3.3 +1 -0
- data/test_app/spec/unit/test_app/literal_spec.rb +0 -2
- metadata +27 -18
- data/Guardfile +0 -16
- data/test_app/Gemfile.rspec3.0 +0 -6
- data/test_app/Gemfile.rspec3.1 +0 -6
@@ -12,7 +12,7 @@ RSpec.describe Mutant::Reporter::CLI::Printer::SubjectResult do
|
|
12
12
|
end
|
13
13
|
|
14
14
|
context 'on partial coverage' do
|
15
|
-
|
15
|
+
with(:mutation_a_test_result) { { passed: true } }
|
16
16
|
|
17
17
|
it_reports <<-'STR'
|
18
18
|
subject-a
|
@@ -26,7 +26,7 @@ RSpec.describe Mutant::Reporter::CLI::Printer::SubjectResult do
|
|
26
26
|
end
|
27
27
|
|
28
28
|
context 'without results' do
|
29
|
-
|
29
|
+
with(:subject_a_result) { { mutation_results: [] } }
|
30
30
|
|
31
31
|
it_reports <<-'STR'
|
32
32
|
subject-a
|
@@ -132,7 +132,8 @@ RSpec.describe Mutant::Reporter::CLI do
|
|
132
132
|
|
133
133
|
context 'with non default coverage expectation' do
|
134
134
|
let(:format) { progressive_format }
|
135
|
-
|
135
|
+
|
136
|
+
with(:config) { { expected_coverage: 0.1r } }
|
136
137
|
|
137
138
|
it_reports(<<-REPORT)
|
138
139
|
Mutant configuration:
|
@@ -204,7 +205,7 @@ RSpec.describe Mutant::Reporter::CLI do
|
|
204
205
|
let(:format) { progressive_format }
|
205
206
|
|
206
207
|
context 'with empty scheduler' do
|
207
|
-
|
208
|
+
with(:env_result) { { subject_results: [] } }
|
208
209
|
|
209
210
|
let(:tty?) { true }
|
210
211
|
|
@@ -212,14 +213,15 @@ RSpec.describe Mutant::Reporter::CLI do
|
|
212
213
|
end
|
213
214
|
|
214
215
|
context 'with last mutation present' do
|
215
|
-
|
216
|
+
with(:env_result) { { subject_results: [subject_a_result] } }
|
216
217
|
|
217
218
|
context 'when mutation is successful' do
|
218
219
|
it_reports "(02/02) 100% - killtime: 2.00s runtime: 4.00s overhead: 2.00s\n"
|
219
220
|
end
|
220
221
|
|
221
222
|
context 'when mutation is NOT successful' do
|
222
|
-
|
223
|
+
with(:mutation_a_test_result) { { passed: true } }
|
224
|
+
|
223
225
|
it_reports "(01/02) 50% - killtime: 2.00s runtime: 4.00s overhead: 2.00s\n"
|
224
226
|
end
|
225
227
|
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
RSpec.describe Mutant::Result do
|
2
|
+
describe '.included' do
|
3
|
+
let(:object) do
|
4
|
+
Class.new do
|
5
|
+
include Mutant::Result
|
6
|
+
|
7
|
+
def collection
|
8
|
+
[[1]]
|
9
|
+
end
|
10
|
+
|
11
|
+
sum :length, :collection
|
12
|
+
end.new
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'includes mixin to freeze instances' do
|
16
|
+
expect(object.frozen?).to be(true)
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'it makes DSL methods from Mutant::Result available' do
|
20
|
+
expect(object.length).to be(1)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -52,7 +52,7 @@ describe Mutant::Runner::Sink::Mutation do
|
|
52
52
|
context 'one result' do
|
53
53
|
include_context 'one result'
|
54
54
|
|
55
|
-
|
55
|
+
with(:subject_a_result) { { mutation_results: [mutation_a_result] } }
|
56
56
|
|
57
57
|
let(:expected_status) do
|
58
58
|
Mutant::Result::Env.new(env: env, runtime: 0.0, subject_results: [subject_a_result])
|
@@ -88,7 +88,7 @@ describe Mutant::Runner::Sink::Mutation do
|
|
88
88
|
end
|
89
89
|
|
90
90
|
context 'when result failed' do
|
91
|
-
|
91
|
+
with(:mutation_a_test_result) { { passed: true } }
|
92
92
|
|
93
93
|
it { should be(false) }
|
94
94
|
end
|
@@ -102,13 +102,13 @@ describe Mutant::Runner::Sink::Mutation do
|
|
102
102
|
end
|
103
103
|
|
104
104
|
context 'when first result is unsuccessful' do
|
105
|
-
|
105
|
+
with(:mutation_a_test_result) { { passed: true } }
|
106
106
|
|
107
107
|
it { should be(false) }
|
108
108
|
end
|
109
109
|
|
110
110
|
context 'when second result is unsuccessful' do
|
111
|
-
|
111
|
+
with(:mutation_b_test_result) { { passed: true } }
|
112
112
|
|
113
113
|
it { should be(false) }
|
114
114
|
end
|
@@ -116,7 +116,7 @@ describe Mutant::Runner::Sink::Mutation do
|
|
116
116
|
end
|
117
117
|
|
118
118
|
context 'with fail fast' do
|
119
|
-
|
119
|
+
with(:config) { { fail_fast: true } }
|
120
120
|
|
121
121
|
context 'no results' do
|
122
122
|
it { should be(false) }
|
@@ -130,7 +130,7 @@ describe Mutant::Runner::Sink::Mutation do
|
|
130
130
|
end
|
131
131
|
|
132
132
|
context 'when result failed' do
|
133
|
-
|
133
|
+
with(:mutation_a_test_result) { { passed: true } }
|
134
134
|
|
135
135
|
it { should be(true) }
|
136
136
|
end
|
@@ -144,13 +144,13 @@ describe Mutant::Runner::Sink::Mutation do
|
|
144
144
|
end
|
145
145
|
|
146
146
|
context 'when first result is unsuccessful' do
|
147
|
-
|
147
|
+
with(:mutation_a_test_result) { { passed: true } }
|
148
148
|
|
149
149
|
it { should be(true) }
|
150
150
|
end
|
151
151
|
|
152
152
|
context 'when second result is unsuccessful' do
|
153
|
-
|
153
|
+
with(:mutation_b_test_result) { { passed: true } }
|
154
154
|
|
155
155
|
it { should be(true) }
|
156
156
|
end
|
@@ -19,7 +19,7 @@ RSpec.describe Mutant::Selector::Expression do
|
|
19
19
|
let(:mutation_subject) { subject_class.new(context, node) }
|
20
20
|
let(:context) { double('Context') }
|
21
21
|
let(:node) { double('Node') }
|
22
|
-
let(:config) { Mutant::Config::DEFAULT.
|
22
|
+
let(:config) { Mutant::Config::DEFAULT.with(integration: integration) }
|
23
23
|
let(:integration) { double('Integration', all_tests: all_tests) }
|
24
24
|
let(:test_a) { double('test a', expression: parse_expression('SubjectA')) }
|
25
25
|
let(:test_b) { double('test b', expression: parse_expression('SubjectB')) }
|
data/test_app/Gemfile.rspec3.2
CHANGED
data/test_app/Gemfile.rspec3.3
CHANGED
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.8.
|
4
|
+
version: 0.8.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Markus Schirp
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-09-
|
11
|
+
date: 2015-09-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: parser
|
@@ -72,14 +72,14 @@ dependencies:
|
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: 0.2.
|
75
|
+
version: 0.2.5
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: 0.2.
|
82
|
+
version: 0.2.5
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: procto
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -184,14 +184,14 @@ dependencies:
|
|
184
184
|
requirements:
|
185
185
|
- - "~>"
|
186
186
|
- !ruby/object:Gem::Version
|
187
|
-
version: 0.
|
187
|
+
version: 0.3.0
|
188
188
|
type: :runtime
|
189
189
|
prerelease: false
|
190
190
|
version_requirements: !ruby/object:Gem::Requirement
|
191
191
|
requirements:
|
192
192
|
- - "~>"
|
193
193
|
- !ruby/object:Gem::Version
|
194
|
-
version: 0.
|
194
|
+
version: 0.3.0
|
195
195
|
- !ruby/object:Gem::Dependency
|
196
196
|
name: concord
|
197
197
|
requirement: !ruby/object:Gem::Requirement
|
@@ -207,25 +207,33 @@ dependencies:
|
|
207
207
|
- !ruby/object:Gem::Version
|
208
208
|
version: 0.1.5
|
209
209
|
- !ruby/object:Gem::Dependency
|
210
|
-
name:
|
210
|
+
name: devtools
|
211
211
|
requirement: !ruby/object:Gem::Requirement
|
212
212
|
requirements:
|
213
213
|
- - "~>"
|
214
214
|
- !ruby/object:Gem::Version
|
215
|
-
version:
|
216
|
-
- - ">="
|
217
|
-
- !ruby/object:Gem::Version
|
218
|
-
version: 1.3.5
|
215
|
+
version: 0.1.1
|
219
216
|
type: :development
|
220
217
|
prerelease: false
|
221
218
|
version_requirements: !ruby/object:Gem::Requirement
|
222
219
|
requirements:
|
223
220
|
- - "~>"
|
224
221
|
- !ruby/object:Gem::Version
|
225
|
-
version:
|
226
|
-
|
222
|
+
version: 0.1.1
|
223
|
+
- !ruby/object:Gem::Dependency
|
224
|
+
name: bundler
|
225
|
+
requirement: !ruby/object:Gem::Requirement
|
226
|
+
requirements:
|
227
|
+
- - "~>"
|
228
|
+
- !ruby/object:Gem::Version
|
229
|
+
version: '1.10'
|
230
|
+
type: :development
|
231
|
+
prerelease: false
|
232
|
+
version_requirements: !ruby/object:Gem::Requirement
|
233
|
+
requirements:
|
234
|
+
- - "~>"
|
227
235
|
- !ruby/object:Gem::Version
|
228
|
-
version: 1.
|
236
|
+
version: '1.10'
|
229
237
|
- !ruby/object:Gem::Dependency
|
230
238
|
name: ffi
|
231
239
|
requirement: !ruby/object:Gem::Requirement
|
@@ -256,7 +264,7 @@ files:
|
|
256
264
|
- ".ruby-gemset"
|
257
265
|
- Changelog.md
|
258
266
|
- Gemfile
|
259
|
-
-
|
267
|
+
- Gemfile.shared
|
260
268
|
- LICENSE
|
261
269
|
- README.md
|
262
270
|
- Rakefile
|
@@ -281,7 +289,9 @@ files:
|
|
281
289
|
- lib/mutant/ast/meta.rb
|
282
290
|
- lib/mutant/ast/meta/optarg.rb
|
283
291
|
- lib/mutant/ast/meta/resbody.rb
|
292
|
+
- lib/mutant/ast/meta/restarg.rb
|
284
293
|
- lib/mutant/ast/meta/send.rb
|
294
|
+
- lib/mutant/ast/meta/symbol.rb
|
285
295
|
- lib/mutant/ast/named_children.rb
|
286
296
|
- lib/mutant/ast/node_predicates.rb
|
287
297
|
- lib/mutant/ast/nodes.rb
|
@@ -560,6 +570,7 @@ files:
|
|
560
570
|
- spec/unit/mutant/require_highjack_spec.rb
|
561
571
|
- spec/unit/mutant/result/env_spec.rb
|
562
572
|
- spec/unit/mutant/result/subject_spec.rb
|
573
|
+
- spec/unit/mutant/result_spec.rb
|
563
574
|
- spec/unit/mutant/runner/driver_spec.rb
|
564
575
|
- spec/unit/mutant/runner/sink/mutation_spec.rb
|
565
576
|
- spec/unit/mutant/runner_spec.rb
|
@@ -571,8 +582,6 @@ files:
|
|
571
582
|
- spec/unit/mutant/zombifier_spec.rb
|
572
583
|
- spec/unit/mutant_spec.rb
|
573
584
|
- test_app/.rspec
|
574
|
-
- test_app/Gemfile.rspec3.0
|
575
|
-
- test_app/Gemfile.rspec3.1
|
576
585
|
- test_app/Gemfile.rspec3.2
|
577
586
|
- test_app/Gemfile.rspec3.3
|
578
587
|
- test_app/lib/test_app.rb
|
@@ -677,6 +686,7 @@ test_files:
|
|
677
686
|
- spec/unit/mutant/require_highjack_spec.rb
|
678
687
|
- spec/unit/mutant/result/env_spec.rb
|
679
688
|
- spec/unit/mutant/result/subject_spec.rb
|
689
|
+
- spec/unit/mutant/result_spec.rb
|
680
690
|
- spec/unit/mutant/runner/driver_spec.rb
|
681
691
|
- spec/unit/mutant/runner/sink/mutation_spec.rb
|
682
692
|
- spec/unit/mutant/runner_spec.rb
|
@@ -687,4 +697,3 @@ test_files:
|
|
687
697
|
- spec/unit/mutant/warning_filter_spec.rb
|
688
698
|
- spec/unit/mutant/zombifier_spec.rb
|
689
699
|
- spec/unit/mutant_spec.rb
|
690
|
-
has_rdoc:
|
data/Guardfile
DELETED
@@ -1,16 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
guard :bundler do
|
4
|
-
watch('Gemfile')
|
5
|
-
end
|
6
|
-
|
7
|
-
guard :rspec, :all_after_pass => false, :all_on_start => false, :cmd => 'bundle exec rspec --fail-fast --seed 0' do
|
8
|
-
# run all specs if the spec_helper or supporting files files are modified
|
9
|
-
watch('spec/spec_helper.rb') { 'spec/unit' }
|
10
|
-
watch(%r{\Aspec/(?:lib|support|shared)/.+\.rb\z}) { 'spec/unit' }
|
11
|
-
|
12
|
-
watch(%r{lib/.*.rb}) { 'spec/unit' }
|
13
|
-
|
14
|
-
# run a spec if it is modified
|
15
|
-
watch(%r{\Aspec/.+_spec\.rb\z})
|
16
|
-
end
|
data/test_app/Gemfile.rspec3.0
DELETED