mutant 0.5.19 → 0.5.20
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/.travis.yml +1 -4
- data/Changelog.md +9 -0
- data/Gemfile.devtools +15 -11
- data/README.md +10 -6
- data/config/flay.yml +1 -1
- data/config/reek.yml +3 -1
- data/lib/mutant.rb +41 -41
- data/lib/mutant/cache.rb +0 -2
- data/lib/mutant/cli.rb +6 -8
- data/lib/mutant/color.rb +0 -2
- data/lib/mutant/config.rb +0 -2
- data/lib/mutant/context.rb +0 -2
- data/lib/mutant/context/scope.rb +0 -2
- data/lib/mutant/delegator.rb +2 -0
- data/lib/mutant/diff.rb +4 -16
- data/lib/mutant/expression.rb +8 -7
- data/lib/mutant/expression/method.rb +3 -9
- data/lib/mutant/isolation.rb +65 -0
- data/lib/mutant/killer.rb +1 -3
- data/lib/mutant/loader.rb +0 -2
- data/lib/mutant/matcher.rb +0 -2
- data/lib/mutant/matcher/chain.rb +0 -2
- data/lib/mutant/matcher/filter.rb +0 -2
- data/lib/mutant/matcher/method.rb +1 -2
- data/lib/mutant/matcher/method/finder.rb +0 -2
- data/lib/mutant/matcher/method/instance.rb +1 -3
- data/lib/mutant/matcher/method/singleton.rb +0 -2
- data/lib/mutant/matcher/methods.rb +0 -2
- data/lib/mutant/matcher/namespace.rb +2 -6
- data/lib/mutant/matcher/null.rb +0 -2
- data/lib/mutant/matcher/scope.rb +0 -2
- data/lib/mutant/meta/example.rb +57 -18
- data/lib/mutant/meta/example/dsl.rb +10 -13
- data/lib/mutant/mutation.rb +0 -2
- data/lib/mutant/mutation/evil.rb +0 -2
- data/lib/mutant/mutation/neutral.rb +0 -2
- data/lib/mutant/mutator.rb +4 -31
- data/lib/mutant/mutator/node.rb +19 -18
- data/lib/mutant/mutator/node/and_asgn.rb +3 -6
- data/lib/mutant/mutator/node/argument.rb +0 -2
- data/lib/mutant/mutator/node/arguments.rb +47 -4
- data/lib/mutant/mutator/node/begin.rb +3 -10
- data/lib/mutant/mutator/node/binary.rb +0 -2
- data/lib/mutant/mutator/node/block.rb +0 -2
- data/lib/mutant/mutator/node/blockarg.rb +0 -2
- data/lib/mutant/mutator/node/break.rb +0 -2
- data/lib/mutant/mutator/node/case.rb +3 -6
- data/lib/mutant/mutator/node/conditional_loop.rb +0 -2
- data/lib/mutant/mutator/node/const.rb +1 -3
- data/lib/mutant/mutator/node/define.rb +0 -2
- data/lib/mutant/mutator/node/defined.rb +1 -3
- data/lib/mutant/mutator/node/dstr.rb +0 -2
- data/lib/mutant/mutator/node/dsym.rb +0 -2
- data/lib/mutant/mutator/node/generic.rb +0 -2
- data/lib/mutant/mutator/node/if.rb +8 -12
- data/lib/mutant/mutator/node/kwbegin.rb +0 -2
- data/lib/mutant/mutator/node/literal.rb +0 -2
- data/lib/mutant/mutator/node/literal/array.rb +2 -5
- data/lib/mutant/mutator/node/literal/boolean.rb +0 -2
- data/lib/mutant/mutator/node/literal/fixnum.rb +0 -2
- data/lib/mutant/mutator/node/literal/float.rb +0 -2
- data/lib/mutant/mutator/node/literal/hash.rb +0 -2
- data/lib/mutant/mutator/node/literal/nil.rb +0 -2
- data/lib/mutant/mutator/node/literal/range.rb +0 -2
- data/lib/mutant/mutator/node/literal/regex.rb +2 -4
- data/lib/mutant/mutator/node/literal/string.rb +0 -2
- data/lib/mutant/mutator/node/literal/symbol.rb +0 -2
- data/lib/mutant/mutator/node/masgn.rb +0 -2
- data/lib/mutant/mutator/node/mlhs.rb +0 -2
- data/lib/mutant/mutator/node/named_value/access.rb +0 -2
- data/lib/mutant/mutator/node/named_value/constant_assignment.rb +0 -2
- data/lib/mutant/mutator/node/named_value/variable_assignment.rb +0 -2
- data/lib/mutant/mutator/node/next.rb +0 -3
- data/lib/mutant/mutator/node/noop.rb +0 -2
- data/lib/mutant/mutator/node/nthref.rb +0 -2
- data/lib/mutant/mutator/node/op_asgn.rb +2 -4
- data/lib/mutant/mutator/node/or_asgn.rb +4 -7
- data/lib/mutant/mutator/node/resbody.rb +1 -1
- data/lib/mutant/mutator/node/rescue.rb +0 -2
- data/lib/mutant/mutator/node/restarg.rb +0 -2
- data/lib/mutant/mutator/node/return.rb +3 -6
- data/lib/mutant/mutator/node/send.rb +14 -8
- data/lib/mutant/mutator/node/send/attribute_assignment.rb +0 -2
- data/lib/mutant/mutator/node/send/binary.rb +1 -3
- data/lib/mutant/mutator/node/splat.rb +0 -2
- data/lib/mutant/mutator/node/super.rb +0 -2
- data/lib/mutant/mutator/node/when.rb +0 -2
- data/lib/mutant/mutator/node/yield.rb +0 -2
- data/lib/mutant/mutator/node/zsuper.rb +0 -2
- data/lib/mutant/mutator/registry.rb +0 -2
- data/lib/mutant/mutator/util.rb +0 -2
- data/lib/mutant/mutator/util/array.rb +0 -2
- data/lib/mutant/mutator/util/symbol.rb +0 -2
- data/lib/mutant/node_helpers.rb +11 -2
- data/lib/mutant/reporter.rb +0 -2
- data/lib/mutant/reporter/cli.rb +0 -2
- data/lib/mutant/reporter/cli/printer.rb +0 -2
- data/lib/mutant/reporter/cli/progress.rb +0 -2
- data/lib/mutant/reporter/cli/report.rb +0 -2
- data/lib/mutant/reporter/cli/report/config.rb +0 -2
- data/lib/mutant/reporter/cli/report/mutation.rb +5 -5
- data/lib/mutant/reporter/cli/report/subject.rb +0 -2
- data/lib/mutant/reporter/null.rb +0 -2
- data/lib/mutant/runner.rb +0 -2
- data/lib/mutant/runner/config.rb +0 -2
- data/lib/mutant/runner/mutation.rb +0 -2
- data/lib/mutant/runner/subject.rb +0 -2
- data/lib/mutant/strategy.rb +0 -2
- data/lib/mutant/subject.rb +0 -2
- data/lib/mutant/subject/method.rb +0 -2
- data/lib/mutant/subject/method/instance.rb +1 -3
- data/lib/mutant/subject/method/singleton.rb +0 -2
- data/lib/mutant/version.rb +1 -3
- data/lib/mutant/zombifier.rb +0 -2
- data/meta/begin.rb +10 -0
- data/meta/case.rb +0 -2
- data/meta/def.rb +19 -0
- data/mutant-rspec.gemspec +1 -1
- data/mutant.gemspec +1 -1
- data/spec/integration/mutant/corpus_spec.rb +81 -22
- data/spec/integration/mutant/null_spec.rb +1 -3
- data/spec/integration/mutant/rspec_spec.rb +6 -8
- data/spec/integration/mutant/test_mutator_handles_types_spec.rb +0 -2
- data/spec/integration/mutant/zombie_spec.rb +0 -2
- data/spec/integrations.yml +12 -1
- data/spec/shared/method_matcher_behavior.rb +0 -2
- data/spec/spec_helper.rb +0 -2
- data/spec/support/compress_helper.rb +0 -2
- data/spec/support/ice_nine_config.rb +0 -2
- data/spec/support/rspec.rb +0 -2
- data/spec/support/test_app.rb +0 -2
- data/spec/unit/mutant/cli_new_spec.rb +0 -2
- data/spec/unit/mutant/cli_run_spec.rb +0 -2
- data/spec/unit/mutant/context/root_spec.rb +0 -2
- data/spec/unit/mutant/context/scope/root_spec.rb +0 -2
- data/spec/unit/mutant/context/scope/unqualified_name_spec.rb +0 -2
- data/spec/unit/mutant/diff_spec.rb +0 -2
- data/spec/unit/mutant/expression/method_spec.rb +2 -4
- data/spec/unit/mutant/expression/namespace/flat_spec.rb +1 -3
- data/spec/unit/mutant/expression/namespace/recursive_spec.rb +10 -6
- data/spec/unit/mutant/isolation_spec.rb +61 -0
- data/spec/unit/mutant/loader/eval_spec.rb +0 -2
- data/spec/unit/mutant/matcher/chain_spec.rb +4 -15
- data/spec/unit/mutant/matcher/method/instance_spec.rb +0 -2
- data/spec/unit/mutant/matcher/method/singleton_spec.rb +0 -2
- data/spec/unit/mutant/matcher/methods/instance_spec.rb +0 -2
- data/spec/unit/mutant/matcher/methods/singleton_spec.rb +0 -2
- data/spec/unit/mutant/matcher/namespace_spec.rb +33 -31
- data/spec/unit/mutant/mutation_spec.rb +0 -2
- data/spec/unit/mutant/runner/config_spec.rb +0 -2
- data/spec/unit/mutant/runner/mutation_spec.rb +0 -2
- data/spec/unit/mutant/runner/subject_spec.rb +0 -2
- data/spec/unit/mutant/strategy_spec.rb +0 -2
- data/spec/unit/mutant/subject/context_spec.rb +0 -2
- data/spec/unit/mutant/subject/mutations_spec.rb +0 -2
- data/spec/unit/mutant/subject/node_spec.rb +0 -2
- data/spec/unit/mutant/subject_spec.rb +0 -2
- data/spec/unit/mutant/warning_filter_spec.rb +6 -0
- data/spec/unit/mutant_spec.rb +0 -55
- data/test_app/Gemfile.devtools +15 -11
- data/test_app/Gemfile.rspec3 +2 -2
- metadata +7 -7
- data/lib/mutant/constants.rb +0 -45
- data/spec/unit/mutant/mutator_spec.rb +0 -29
data/lib/mutant/version.rb
CHANGED
data/lib/mutant/zombifier.rb
CHANGED
data/meta/begin.rb
CHANGED
@@ -13,3 +13,13 @@ Mutant::Meta::Example.add do
|
|
13
13
|
mutation 'true'
|
14
14
|
mutation 'false'
|
15
15
|
end
|
16
|
+
|
17
|
+
# encoding: utf-8
|
18
|
+
|
19
|
+
Mutant::Meta::Example.add do
|
20
|
+
|
21
|
+
source s(:begin, s(:true))
|
22
|
+
# Mutation of each statement in block
|
23
|
+
mutation s(:begin, s(:false))
|
24
|
+
mutation s(:begin, s(:nil))
|
25
|
+
end
|
data/meta/case.rb
CHANGED
data/meta/def.rb
CHANGED
@@ -69,6 +69,25 @@ Mutant::Meta::Example.add do
|
|
69
69
|
mutation 'def foo; end'
|
70
70
|
end
|
71
71
|
|
72
|
+
Mutant::Meta::Example.add do
|
73
|
+
source 'def foo(a = 0, b = 0); end'
|
74
|
+
mutation 'def foo(a = 0, b__mutant__ = 0); end'
|
75
|
+
mutation 'def foo(a__mutant__ = 0, b = 0); end'
|
76
|
+
mutation 'def foo(a = 0, b = 1); end'
|
77
|
+
mutation 'def foo(a = 0, b = -1); end'
|
78
|
+
mutation 'def foo(a = 0, b = self); end'
|
79
|
+
mutation 'def foo(a = 0, b = nil); end'
|
80
|
+
mutation 'def foo(a = -1, b = 0); end'
|
81
|
+
mutation 'def foo(a = self, b = 0); end'
|
82
|
+
mutation 'def foo(a = nil, b = 0); end'
|
83
|
+
mutation 'def foo(a = 1, b = 0); end'
|
84
|
+
mutation 'def foo(a = 0); end'
|
85
|
+
mutation 'def foo(b = 0); end'
|
86
|
+
mutation 'def foo(a, b = 0); end'
|
87
|
+
mutation 'def foo; end'
|
88
|
+
mutation 'def foo(a = 0, b = 0); raise; end'
|
89
|
+
end
|
90
|
+
|
72
91
|
Mutant::Meta::Example.add do
|
73
92
|
source 'def foo(a = true); end'
|
74
93
|
|
data/mutant-rspec.gemspec
CHANGED
@@ -18,7 +18,7 @@ Gem::Specification.new do |gem|
|
|
18
18
|
gem.extra_rdoc_files = %w[TODO LICENSE]
|
19
19
|
|
20
20
|
gem.add_runtime_dependency('mutant', "~> #{gem.version}")
|
21
|
-
gem.add_runtime_dependency('rspec-core', '>= 2.14.1', '<= 3.0.0
|
21
|
+
gem.add_runtime_dependency('rspec-core', '>= 2.14.1', '<= 3.0.0')
|
22
22
|
|
23
23
|
gem.add_development_dependency('bundler', '~> 1.3', '>= 1.3.5')
|
24
24
|
end
|
data/mutant.gemspec
CHANGED
@@ -29,7 +29,7 @@ Gem::Specification.new do |gem|
|
|
29
29
|
gem.add_runtime_dependency('morpher', '~> 0.2.3')
|
30
30
|
gem.add_runtime_dependency('procto', '~> 0.0.2')
|
31
31
|
gem.add_runtime_dependency('abstract_type', '~> 0.0.7')
|
32
|
-
gem.add_runtime_dependency('unparser', '~> 0.1.
|
32
|
+
gem.add_runtime_dependency('unparser', '~> 0.1.13')
|
33
33
|
gem.add_runtime_dependency('ice_nine', '~> 0.11.0')
|
34
34
|
gem.add_runtime_dependency('adamantium', '~> 0.2.0')
|
35
35
|
gem.add_runtime_dependency('memoizable', '~> 0.4.2')
|
@@ -10,15 +10,46 @@ describe 'Mutant on ruby corpus' do
|
|
10
10
|
TMP = ROOT.join('tmp').freeze
|
11
11
|
|
12
12
|
before do
|
13
|
-
|
13
|
+
skip 'Corpus test is deactivated on 1.9.3' if RUBY_VERSION.eql?('1.9.3')
|
14
|
+
skip 'Corpus test is deactivated on RBX' if RUBY_ENGINE.eql?('rbx')
|
14
15
|
end
|
15
16
|
|
16
17
|
MUTEX = Mutex.new
|
17
18
|
|
18
19
|
class Project
|
19
|
-
include Anima.new(
|
20
|
+
include Adamantium, Anima.new(
|
21
|
+
:name,
|
22
|
+
:repo_uri,
|
23
|
+
:exclude,
|
24
|
+
:mutation_coverage,
|
25
|
+
:mutation_generation,
|
26
|
+
:namespace,
|
27
|
+
:expect_coverage
|
28
|
+
)
|
29
|
+
|
30
|
+
# Verify mutation coverage
|
31
|
+
#
|
32
|
+
# @return [self]
|
33
|
+
# if successufl
|
34
|
+
#
|
35
|
+
# @raise [Exception]
|
36
|
+
#
|
37
|
+
def verify_mutation_coverage
|
38
|
+
checkout
|
39
|
+
Dir.chdir(repo_path) do
|
40
|
+
relative = ROOT.relative_path_from(repo_path)
|
41
|
+
devtools = ROOT.join('Gemfile.devtools').read
|
42
|
+
devtools << "gem 'mutant', path: '#{relative}'\n"
|
43
|
+
devtools << "gem 'mutant-rspec', path: '#{relative}'\n"
|
44
|
+
File.write(repo_path.join('Gemfile.devtools'), devtools)
|
45
|
+
Bundler.with_clean_env do
|
46
|
+
system('bundle install')
|
47
|
+
system(%W[bundle exec mutant -I lib -r #{name} --score #{expect_coverage} --use rspec #{namespace}*])
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
20
51
|
|
21
|
-
#
|
52
|
+
# Verify mutation generation
|
22
53
|
#
|
23
54
|
# @return [self]
|
24
55
|
# if successful
|
@@ -27,17 +58,19 @@ describe 'Mutant on ruby corpus' do
|
|
27
58
|
# otherwise
|
28
59
|
#
|
29
60
|
# rubocop:disable MethodLength
|
30
|
-
def
|
61
|
+
def verify_mutation_generation
|
31
62
|
checkout
|
32
63
|
start = Time.now
|
33
|
-
|
64
|
+
paths = Pathname.glob(repo_path.join('**/*.rb')).sort_by(&:size).reverse
|
65
|
+
total = Parallel.map(paths, finish: method(:finish), start: method(:start)) do |path|
|
34
66
|
count = 0
|
35
67
|
node =
|
36
68
|
begin
|
37
69
|
Parser::CurrentRuby.parse(path.read)
|
38
70
|
rescue EncodingError, ArgumentError
|
71
|
+
nil # Make rubocop happy
|
39
72
|
end
|
40
|
-
|
73
|
+
if node
|
41
74
|
Mutant::Mutator::Node.each(node) do
|
42
75
|
count += 1
|
43
76
|
end
|
@@ -72,6 +105,7 @@ describe 'Mutant on ruby corpus' do
|
|
72
105
|
end
|
73
106
|
self
|
74
107
|
end
|
108
|
+
memoize :checkout
|
75
109
|
|
76
110
|
private
|
77
111
|
|
@@ -85,7 +119,7 @@ describe 'Mutant on ruby corpus' do
|
|
85
119
|
TMP.join(name)
|
86
120
|
end
|
87
121
|
|
88
|
-
# Print progress
|
122
|
+
# Print start progress
|
89
123
|
#
|
90
124
|
# @param [Pathname] path
|
91
125
|
# @param [Fixnum] _index
|
@@ -93,9 +127,23 @@ describe 'Mutant on ruby corpus' do
|
|
93
127
|
#
|
94
128
|
# @return [undefined]
|
95
129
|
#
|
96
|
-
def
|
130
|
+
def start(path, _index)
|
97
131
|
MUTEX.synchronize do
|
98
|
-
puts '
|
132
|
+
puts format('Starting - %s', path)
|
133
|
+
end
|
134
|
+
end
|
135
|
+
|
136
|
+
# Print finish progress
|
137
|
+
#
|
138
|
+
# @param [Pathname] path
|
139
|
+
# @param [Fixnum] _index
|
140
|
+
# @param [Fixnum] count
|
141
|
+
#
|
142
|
+
# @return [undefined]
|
143
|
+
#
|
144
|
+
def finish(path, _index, count)
|
145
|
+
MUTEX.synchronize do
|
146
|
+
puts format('Mutations - %4i - %s', count, path)
|
99
147
|
end
|
100
148
|
end
|
101
149
|
|
@@ -106,12 +154,11 @@ describe 'Mutant on ruby corpus' do
|
|
106
154
|
# @api private
|
107
155
|
#
|
108
156
|
def system(arguments)
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
end
|
157
|
+
return if Kernel.system(*arguments)
|
158
|
+
if block_given?
|
159
|
+
yield
|
160
|
+
else
|
161
|
+
raise 'System command failed!'
|
115
162
|
end
|
116
163
|
end
|
117
164
|
|
@@ -122,15 +169,21 @@ describe 'Mutant on ruby corpus' do
|
|
122
169
|
s(:block,
|
123
170
|
s(:guard, s(:primitive, Hash)),
|
124
171
|
s(:hash_transform,
|
125
|
-
s(:key_symbolize, :repo_uri,
|
126
|
-
s(:key_symbolize, :name,
|
127
|
-
s(:key_symbolize, :
|
172
|
+
s(:key_symbolize, :repo_uri, s(:guard, s(:primitive, String))),
|
173
|
+
s(:key_symbolize, :name, s(:guard, s(:primitive, String))),
|
174
|
+
s(:key_symbolize, :namespace, s(:guard, s(:primitive, String))),
|
175
|
+
s(:key_symbolize, :expect_coverage, s(:guard, s(:primitive, Float))),
|
176
|
+
s(:key_symbolize, :mutation_coverage,
|
177
|
+
s(:guard, s(:or, s(:primitive, TrueClass), s(:primitive, FalseClass)))),
|
178
|
+
s(:key_symbolize, :mutation_generation,
|
179
|
+
s(:guard, s(:or, s(:primitive, TrueClass), s(:primitive, FalseClass)))),
|
180
|
+
s(:key_symbolize, :exclude, s(:map, s(:guard, s(:primitive, String))))
|
128
181
|
),
|
129
182
|
s(:load_attribute_hash,
|
130
183
|
# NOTE: The domain param has no DSL currently!
|
131
184
|
Morpher::Evaluator::Transformer::Domain::Param.new(
|
132
185
|
Project,
|
133
|
-
[:repo_uri, :name, :exclude]
|
186
|
+
[:repo_uri, :name, :exclude, :mutation_coverage, :mutation_generation]
|
134
187
|
)
|
135
188
|
)
|
136
189
|
)
|
@@ -141,9 +194,15 @@ describe 'Mutant on ruby corpus' do
|
|
141
194
|
ALL = LOADER.call(YAML.load_file(ROOT.join('spec', 'integrations.yml')))
|
142
195
|
end
|
143
196
|
|
144
|
-
Project::ALL.each do |project|
|
145
|
-
specify "
|
146
|
-
project.
|
197
|
+
Project::ALL.select(&:mutation_generation).each do |project|
|
198
|
+
specify "#{project.name} does not fail on mutation generation" do
|
199
|
+
project.verify_mutation_generation
|
200
|
+
end
|
201
|
+
end
|
202
|
+
|
203
|
+
Project::ALL.select(&:mutation_coverage).each do |project|
|
204
|
+
specify "#{project.name} does have expected mutaiton coverage" do
|
205
|
+
project.verify_mutation_coverage
|
147
206
|
end
|
148
207
|
end
|
149
208
|
end
|
@@ -1,10 +1,8 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
1
|
require 'spec_helper'
|
4
2
|
|
5
3
|
describe 'null integration' do
|
6
4
|
|
7
|
-
let(:base_cmd) { 'bundle exec mutant -I lib --require test_app "
|
5
|
+
let(:base_cmd) { 'bundle exec mutant -I lib --require test_app "TestApp*"' }
|
8
6
|
|
9
7
|
around do |example|
|
10
8
|
Dir.chdir(TestApp.root) do
|
@@ -1,5 +1,3 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
1
|
require 'spec_helper'
|
4
2
|
|
5
3
|
describe 'rspec integration' do
|
@@ -18,26 +16,26 @@ describe 'rspec integration' do
|
|
18
16
|
end
|
19
17
|
|
20
18
|
specify 'it allows to kill mutations' do
|
21
|
-
expect(Kernel.system("#{base_cmd}
|
19
|
+
expect(Kernel.system("#{base_cmd} TestApp::Literal#string")).to be(true)
|
22
20
|
end
|
23
21
|
|
24
22
|
specify 'it allows to exclude mutations' do
|
25
23
|
cli = <<-CMD.split("\n").join(' ')
|
26
24
|
#{base_cmd}
|
27
|
-
|
28
|
-
|
29
|
-
--ignore-subject
|
25
|
+
TestApp::Literal#string
|
26
|
+
TestApp::Literal#uncovered_string
|
27
|
+
--ignore-subject TestApp::Literal#uncovered_string
|
30
28
|
CMD
|
31
29
|
expect(Kernel.system(cli)).to be(true)
|
32
30
|
end
|
33
31
|
|
34
32
|
specify 'fails to kill mutations when they are not covered' do
|
35
|
-
cli = "#{base_cmd}
|
33
|
+
cli = "#{base_cmd} TestApp::Literal#uncovered_string"
|
36
34
|
expect(Kernel.system(cli)).to be(false)
|
37
35
|
end
|
38
36
|
|
39
37
|
specify 'fails when some mutations are not covered' do
|
40
|
-
cli = "#{base_cmd}
|
38
|
+
cli = "#{base_cmd} TestApp::Literal"
|
41
39
|
expect(Kernel.system(cli)).to be(false)
|
42
40
|
end
|
43
41
|
end
|
data/spec/integrations.yml
CHANGED
@@ -1,8 +1,12 @@
|
|
1
1
|
---
|
2
2
|
- name: rubyspec
|
3
|
+
namespace: Rubyspec
|
3
4
|
repo_uri: 'https://github.com/rubyspec/rubyspec.git'
|
5
|
+
mutation_coverage: false
|
6
|
+
mutation_generation: true
|
7
|
+
expect_coverage: 0.0 # not run
|
4
8
|
exclude:
|
5
|
-
# Binary encoded source subjected to limitations see
|
9
|
+
# Binary encoded source subjected to limitations see README of unparser
|
6
10
|
- core/array/pack/{b,h,u}_spec.rb
|
7
11
|
- language/versions/*1.8*
|
8
12
|
- core/array/pack/shared/float.rb
|
@@ -21,3 +25,10 @@
|
|
21
25
|
- core/string/unpack/shared/integer.rb
|
22
26
|
- core/symbol/casecmp_spec.rb
|
23
27
|
- optional/capi/integer_spec.rb
|
28
|
+
- name: auom
|
29
|
+
namespace: AUOM
|
30
|
+
repo_uri: 'https://github.com/mbj/auom.git'
|
31
|
+
mutation_coverage: true
|
32
|
+
mutation_generation: true
|
33
|
+
exclude: []
|
34
|
+
expect_coverage: 99.81
|
data/spec/spec_helper.rb
CHANGED
data/spec/support/rspec.rb
CHANGED
data/spec/support/test_app.rb
CHANGED
@@ -1,13 +1,11 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
1
|
require 'spec_helper'
|
4
2
|
|
5
3
|
describe Mutant::Expression::Method do
|
6
4
|
|
7
5
|
let(:object) { described_class.parse(input) }
|
8
6
|
let(:cache) { Mutant::Cache.new }
|
9
|
-
let(:instance_method) { '
|
10
|
-
let(:singleton_method) { '
|
7
|
+
let(:instance_method) { 'TestApp::Literal#string' }
|
8
|
+
let(:singleton_method) { 'TestApp::Literal.string' }
|
11
9
|
|
12
10
|
describe '#match_length' do
|
13
11
|
let(:input) { instance_method }
|