mutant 0.5.19 → 0.5.20

Sign up to get free protection for your applications and to get access to all the features.
Files changed (165) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +1 -4
  3. data/Changelog.md +9 -0
  4. data/Gemfile.devtools +15 -11
  5. data/README.md +10 -6
  6. data/config/flay.yml +1 -1
  7. data/config/reek.yml +3 -1
  8. data/lib/mutant.rb +41 -41
  9. data/lib/mutant/cache.rb +0 -2
  10. data/lib/mutant/cli.rb +6 -8
  11. data/lib/mutant/color.rb +0 -2
  12. data/lib/mutant/config.rb +0 -2
  13. data/lib/mutant/context.rb +0 -2
  14. data/lib/mutant/context/scope.rb +0 -2
  15. data/lib/mutant/delegator.rb +2 -0
  16. data/lib/mutant/diff.rb +4 -16
  17. data/lib/mutant/expression.rb +8 -7
  18. data/lib/mutant/expression/method.rb +3 -9
  19. data/lib/mutant/isolation.rb +65 -0
  20. data/lib/mutant/killer.rb +1 -3
  21. data/lib/mutant/loader.rb +0 -2
  22. data/lib/mutant/matcher.rb +0 -2
  23. data/lib/mutant/matcher/chain.rb +0 -2
  24. data/lib/mutant/matcher/filter.rb +0 -2
  25. data/lib/mutant/matcher/method.rb +1 -2
  26. data/lib/mutant/matcher/method/finder.rb +0 -2
  27. data/lib/mutant/matcher/method/instance.rb +1 -3
  28. data/lib/mutant/matcher/method/singleton.rb +0 -2
  29. data/lib/mutant/matcher/methods.rb +0 -2
  30. data/lib/mutant/matcher/namespace.rb +2 -6
  31. data/lib/mutant/matcher/null.rb +0 -2
  32. data/lib/mutant/matcher/scope.rb +0 -2
  33. data/lib/mutant/meta/example.rb +57 -18
  34. data/lib/mutant/meta/example/dsl.rb +10 -13
  35. data/lib/mutant/mutation.rb +0 -2
  36. data/lib/mutant/mutation/evil.rb +0 -2
  37. data/lib/mutant/mutation/neutral.rb +0 -2
  38. data/lib/mutant/mutator.rb +4 -31
  39. data/lib/mutant/mutator/node.rb +19 -18
  40. data/lib/mutant/mutator/node/and_asgn.rb +3 -6
  41. data/lib/mutant/mutator/node/argument.rb +0 -2
  42. data/lib/mutant/mutator/node/arguments.rb +47 -4
  43. data/lib/mutant/mutator/node/begin.rb +3 -10
  44. data/lib/mutant/mutator/node/binary.rb +0 -2
  45. data/lib/mutant/mutator/node/block.rb +0 -2
  46. data/lib/mutant/mutator/node/blockarg.rb +0 -2
  47. data/lib/mutant/mutator/node/break.rb +0 -2
  48. data/lib/mutant/mutator/node/case.rb +3 -6
  49. data/lib/mutant/mutator/node/conditional_loop.rb +0 -2
  50. data/lib/mutant/mutator/node/const.rb +1 -3
  51. data/lib/mutant/mutator/node/define.rb +0 -2
  52. data/lib/mutant/mutator/node/defined.rb +1 -3
  53. data/lib/mutant/mutator/node/dstr.rb +0 -2
  54. data/lib/mutant/mutator/node/dsym.rb +0 -2
  55. data/lib/mutant/mutator/node/generic.rb +0 -2
  56. data/lib/mutant/mutator/node/if.rb +8 -12
  57. data/lib/mutant/mutator/node/kwbegin.rb +0 -2
  58. data/lib/mutant/mutator/node/literal.rb +0 -2
  59. data/lib/mutant/mutator/node/literal/array.rb +2 -5
  60. data/lib/mutant/mutator/node/literal/boolean.rb +0 -2
  61. data/lib/mutant/mutator/node/literal/fixnum.rb +0 -2
  62. data/lib/mutant/mutator/node/literal/float.rb +0 -2
  63. data/lib/mutant/mutator/node/literal/hash.rb +0 -2
  64. data/lib/mutant/mutator/node/literal/nil.rb +0 -2
  65. data/lib/mutant/mutator/node/literal/range.rb +0 -2
  66. data/lib/mutant/mutator/node/literal/regex.rb +2 -4
  67. data/lib/mutant/mutator/node/literal/string.rb +0 -2
  68. data/lib/mutant/mutator/node/literal/symbol.rb +0 -2
  69. data/lib/mutant/mutator/node/masgn.rb +0 -2
  70. data/lib/mutant/mutator/node/mlhs.rb +0 -2
  71. data/lib/mutant/mutator/node/named_value/access.rb +0 -2
  72. data/lib/mutant/mutator/node/named_value/constant_assignment.rb +0 -2
  73. data/lib/mutant/mutator/node/named_value/variable_assignment.rb +0 -2
  74. data/lib/mutant/mutator/node/next.rb +0 -3
  75. data/lib/mutant/mutator/node/noop.rb +0 -2
  76. data/lib/mutant/mutator/node/nthref.rb +0 -2
  77. data/lib/mutant/mutator/node/op_asgn.rb +2 -4
  78. data/lib/mutant/mutator/node/or_asgn.rb +4 -7
  79. data/lib/mutant/mutator/node/resbody.rb +1 -1
  80. data/lib/mutant/mutator/node/rescue.rb +0 -2
  81. data/lib/mutant/mutator/node/restarg.rb +0 -2
  82. data/lib/mutant/mutator/node/return.rb +3 -6
  83. data/lib/mutant/mutator/node/send.rb +14 -8
  84. data/lib/mutant/mutator/node/send/attribute_assignment.rb +0 -2
  85. data/lib/mutant/mutator/node/send/binary.rb +1 -3
  86. data/lib/mutant/mutator/node/splat.rb +0 -2
  87. data/lib/mutant/mutator/node/super.rb +0 -2
  88. data/lib/mutant/mutator/node/when.rb +0 -2
  89. data/lib/mutant/mutator/node/yield.rb +0 -2
  90. data/lib/mutant/mutator/node/zsuper.rb +0 -2
  91. data/lib/mutant/mutator/registry.rb +0 -2
  92. data/lib/mutant/mutator/util.rb +0 -2
  93. data/lib/mutant/mutator/util/array.rb +0 -2
  94. data/lib/mutant/mutator/util/symbol.rb +0 -2
  95. data/lib/mutant/node_helpers.rb +11 -2
  96. data/lib/mutant/reporter.rb +0 -2
  97. data/lib/mutant/reporter/cli.rb +0 -2
  98. data/lib/mutant/reporter/cli/printer.rb +0 -2
  99. data/lib/mutant/reporter/cli/progress.rb +0 -2
  100. data/lib/mutant/reporter/cli/report.rb +0 -2
  101. data/lib/mutant/reporter/cli/report/config.rb +0 -2
  102. data/lib/mutant/reporter/cli/report/mutation.rb +5 -5
  103. data/lib/mutant/reporter/cli/report/subject.rb +0 -2
  104. data/lib/mutant/reporter/null.rb +0 -2
  105. data/lib/mutant/runner.rb +0 -2
  106. data/lib/mutant/runner/config.rb +0 -2
  107. data/lib/mutant/runner/mutation.rb +0 -2
  108. data/lib/mutant/runner/subject.rb +0 -2
  109. data/lib/mutant/strategy.rb +0 -2
  110. data/lib/mutant/subject.rb +0 -2
  111. data/lib/mutant/subject/method.rb +0 -2
  112. data/lib/mutant/subject/method/instance.rb +1 -3
  113. data/lib/mutant/subject/method/singleton.rb +0 -2
  114. data/lib/mutant/version.rb +1 -3
  115. data/lib/mutant/zombifier.rb +0 -2
  116. data/meta/begin.rb +10 -0
  117. data/meta/case.rb +0 -2
  118. data/meta/def.rb +19 -0
  119. data/mutant-rspec.gemspec +1 -1
  120. data/mutant.gemspec +1 -1
  121. data/spec/integration/mutant/corpus_spec.rb +81 -22
  122. data/spec/integration/mutant/null_spec.rb +1 -3
  123. data/spec/integration/mutant/rspec_spec.rb +6 -8
  124. data/spec/integration/mutant/test_mutator_handles_types_spec.rb +0 -2
  125. data/spec/integration/mutant/zombie_spec.rb +0 -2
  126. data/spec/integrations.yml +12 -1
  127. data/spec/shared/method_matcher_behavior.rb +0 -2
  128. data/spec/spec_helper.rb +0 -2
  129. data/spec/support/compress_helper.rb +0 -2
  130. data/spec/support/ice_nine_config.rb +0 -2
  131. data/spec/support/rspec.rb +0 -2
  132. data/spec/support/test_app.rb +0 -2
  133. data/spec/unit/mutant/cli_new_spec.rb +0 -2
  134. data/spec/unit/mutant/cli_run_spec.rb +0 -2
  135. data/spec/unit/mutant/context/root_spec.rb +0 -2
  136. data/spec/unit/mutant/context/scope/root_spec.rb +0 -2
  137. data/spec/unit/mutant/context/scope/unqualified_name_spec.rb +0 -2
  138. data/spec/unit/mutant/diff_spec.rb +0 -2
  139. data/spec/unit/mutant/expression/method_spec.rb +2 -4
  140. data/spec/unit/mutant/expression/namespace/flat_spec.rb +1 -3
  141. data/spec/unit/mutant/expression/namespace/recursive_spec.rb +10 -6
  142. data/spec/unit/mutant/isolation_spec.rb +61 -0
  143. data/spec/unit/mutant/loader/eval_spec.rb +0 -2
  144. data/spec/unit/mutant/matcher/chain_spec.rb +4 -15
  145. data/spec/unit/mutant/matcher/method/instance_spec.rb +0 -2
  146. data/spec/unit/mutant/matcher/method/singleton_spec.rb +0 -2
  147. data/spec/unit/mutant/matcher/methods/instance_spec.rb +0 -2
  148. data/spec/unit/mutant/matcher/methods/singleton_spec.rb +0 -2
  149. data/spec/unit/mutant/matcher/namespace_spec.rb +33 -31
  150. data/spec/unit/mutant/mutation_spec.rb +0 -2
  151. data/spec/unit/mutant/runner/config_spec.rb +0 -2
  152. data/spec/unit/mutant/runner/mutation_spec.rb +0 -2
  153. data/spec/unit/mutant/runner/subject_spec.rb +0 -2
  154. data/spec/unit/mutant/strategy_spec.rb +0 -2
  155. data/spec/unit/mutant/subject/context_spec.rb +0 -2
  156. data/spec/unit/mutant/subject/mutations_spec.rb +0 -2
  157. data/spec/unit/mutant/subject/node_spec.rb +0 -2
  158. data/spec/unit/mutant/subject_spec.rb +0 -2
  159. data/spec/unit/mutant/warning_filter_spec.rb +6 -0
  160. data/spec/unit/mutant_spec.rb +0 -55
  161. data/test_app/Gemfile.devtools +15 -11
  162. data/test_app/Gemfile.rspec3 +2 -2
  163. metadata +7 -7
  164. data/lib/mutant/constants.rb +0 -45
  165. data/spec/unit/mutant/mutator_spec.rb +0 -29
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  module Mutant
4
2
  class Subject
5
3
  class Method
@@ -1,6 +1,4 @@
1
- # encoding: utf-8
2
-
3
1
  module Mutant
4
2
  # The current mutant version
5
- VERSION = '0.5.19'.freeze
3
+ VERSION = '0.5.20'.freeze
6
4
  end # Mutant
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  module Mutant
4
2
  # Zombifier namespace
5
3
  class Zombifier
@@ -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
@@ -220,5 +220,3 @@ Mutant::Meta::Example.add do
220
220
  end
221
221
  RUBY
222
222
  end
223
-
224
-
@@ -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
 
@@ -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.rc1')
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
@@ -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.12')
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
- pending 'Corpus test is deactivated on 1.9.3' if RUBY_VERSION.eql?('1.9.3')
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(:name, :repo_uri, :exclude)
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
- # Perform verification via unparser cli
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 verify
61
+ def verify_mutation_generation
31
62
  checkout
32
63
  start = Time.now
33
- total = Parallel.map(Pathname.glob(repo_path.join('**/*.rb')).sort_by(&:size).reverse, finish: method(:progress)) do |path|
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
- unless node.nil?
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 progress(path, _index, count)
130
+ def start(path, _index)
97
131
  MUTEX.synchronize do
98
- puts 'Mutations - %4i - %s' % [count, path]
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
- unless Kernel.system(*arguments)
110
- if block_given?
111
- yield
112
- else
113
- raise 'System command failed!'
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, s(:guard, s(:primitive, String))),
126
- s(:key_symbolize, :name, s(:guard, s(:primitive, String))),
127
- s(:key_symbolize, :exclude, s(:map, s(:guard, s(:primitive, String))))
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 "unparsing #{project.name}" do
146
- project.verify
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 "::TestApp*"' }
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} ::TestApp::Literal#string")).to be(true)
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
- ::TestApp::Literal#string
28
- ::TestApp::Literal#uncovered_string
29
- --ignore-subject ::TestApp::Literal#uncovered_string
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} ::TestApp::Literal#uncovered_string"
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} ::TestApp::Literal"
38
+ cli = "#{base_cmd} TestApp::Literal"
41
39
  expect(Kernel.system(cli)).to be(false)
42
40
  end
43
41
  end
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  require 'spec_helper'
4
2
 
5
3
  describe do
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  require 'spec_helper'
4
2
 
5
3
  describe 'as a zombie' do
@@ -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 Readme
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
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  shared_examples_for 'a method matcher' do
4
2
 
5
3
  before { subject }
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  if ENV['COVERAGE'] == 'true'
4
2
  require 'simplecov'
5
3
 
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  module CompressHelper
4
2
  def strip_indent(string)
5
3
  lines = string.lines
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  require 'ice_nine'
4
2
 
5
3
  module IceNine
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  # Patch rspec to allow nested execution
4
2
  module Rspec
5
3
  # Run block in clean rspec environment
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  module TestApp
4
2
  def self.root
5
3
  File.expand_path('../../../test_app', __FILE__)
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  require 'spec_helper'
4
2
 
5
3
  shared_examples_for 'an invalid cli run' do
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  require 'spec_helper'
4
2
 
5
3
  describe Mutant::CLI, '.run' do
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  require 'spec_helper'
4
2
 
5
3
  describe Mutant::Context, '#root' do
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  require 'spec_helper'
4
2
 
5
3
  describe Mutant::Context::Scope, '#root' do
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  require 'spec_helper'
4
2
 
5
3
  describe Mutant::Context::Scope, '#unqualified_name' do
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  require 'spec_helper'
4
2
 
5
3
  describe Mutant::Diff do
@@ -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) { '::TestApp::Literal#string' }
10
- let(:singleton_method) { '::TestApp::Literal.string' }
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 }