mutant 0.5.19 → 0.5.20
Sign up to get free protection for your applications and to get access to all the features.
- 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 }
|