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.
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 }