mutant 0.5.17 → 0.5.18

Sign up to get free protection for your applications and to get access to all the features.
Files changed (146) hide show
  1. checksums.yaml +4 -4
  2. data/Changelog.md +6 -0
  3. data/Rakefile +13 -0
  4. data/config/flay.yml +1 -1
  5. data/config/reek.yml +8 -1
  6. data/lib/mutant.rb +18 -3
  7. data/lib/mutant/cli.rb +6 -3
  8. data/lib/mutant/constants.rb +3 -0
  9. data/lib/mutant/expression.rb +110 -0
  10. data/lib/mutant/expression/method.rb +92 -0
  11. data/lib/mutant/expression/namespace.rb +90 -0
  12. data/lib/mutant/matcher/namespace.rb +3 -4
  13. data/lib/mutant/meta.rb +31 -0
  14. data/lib/mutant/meta/example.rb +152 -0
  15. data/lib/mutant/meta/example/dsl.rb +105 -0
  16. data/lib/mutant/mutator/node.rb +6 -6
  17. data/lib/mutant/mutator/node/arguments.rb +1 -1
  18. data/lib/mutant/mutator/node/begin.rb +1 -1
  19. data/lib/mutant/mutator/node/const.rb +1 -1
  20. data/lib/mutant/mutator/node/if.rb +6 -6
  21. data/lib/mutant/mutator/node/literal/array.rb +2 -2
  22. data/lib/mutant/mutator/node/literal/hash.rb +2 -2
  23. data/lib/mutant/mutator/node/literal/range.rb +3 -3
  24. data/lib/mutant/mutator/node/literal/regex.rb +2 -2
  25. data/lib/mutant/mutator/node/literal/symbol.rb +1 -1
  26. data/lib/mutant/mutator/node/op_asgn.rb +1 -3
  27. data/lib/mutant/mutator/node/or_asgn.rb +31 -0
  28. data/lib/mutant/mutator/node/send.rb +1 -1
  29. data/lib/mutant/mutator/node/send/attribute_assignment.rb +1 -1
  30. data/lib/mutant/reporter/cli/report/mutation.rb +11 -1
  31. data/lib/mutant/strategy.rb +1 -1
  32. data/lib/mutant/version.rb +1 -1
  33. data/meta/and.rb +12 -0
  34. data/meta/and_asgn.rb +12 -0
  35. data/meta/array.rb +30 -0
  36. data/meta/begin.rb +15 -0
  37. data/meta/binary.rb +12 -0
  38. data/meta/block.rb +55 -0
  39. data/meta/block_pass.rb +8 -0
  40. data/meta/blockarg.rb +10 -0
  41. data/meta/boolean.rb +15 -0
  42. data/meta/break.rb +11 -0
  43. data/meta/case.rb +303 -0
  44. data/meta/casgn.rb +9 -0
  45. data/meta/cbase.rb +8 -0
  46. data/meta/const.rb +9 -0
  47. data/meta/cvar.rb +7 -0
  48. data/meta/cvasgn.rb +10 -0
  49. data/meta/define.rb +118 -0
  50. data/meta/defined.rb +7 -0
  51. data/meta/dstr.rb +10 -0
  52. data/meta/dsym.rb +11 -0
  53. data/meta/ensure.rb +9 -0
  54. data/meta/fixnum.rb +19 -0
  55. data/meta/float.rb +38 -0
  56. data/meta/gvar.rb +7 -0
  57. data/meta/gvasgn.rb +10 -0
  58. data/meta/hash.rb +25 -0
  59. data/meta/if.rb +57 -0
  60. data/meta/ivasgn.rb +10 -0
  61. data/meta/kwbegin.rb +9 -0
  62. data/meta/lvar.rb +14 -0
  63. data/meta/lvasgn.rb +10 -0
  64. data/meta/masgn.rb +7 -0
  65. data/meta/match_current_line.rb +14 -0
  66. data/meta/next.rb +11 -0
  67. data/meta/nil.rb +5 -0
  68. data/meta/nthref.rb +14 -0
  69. data/meta/op_assgn.rb +15 -0
  70. data/meta/or_asgn.rb +22 -0
  71. data/meta/range.rb +41 -0
  72. data/meta/redo.rb +5 -0
  73. data/meta/regex.rb +20 -0
  74. data/meta/rescue.rb +38 -0
  75. data/meta/restarg.rb +11 -0
  76. data/meta/return.rb +15 -0
  77. data/meta/self.rb +7 -0
  78. data/meta/send.rb +240 -0
  79. data/meta/string.rb +7 -0
  80. data/meta/super.rb +26 -0
  81. data/meta/symbol.rb +8 -0
  82. data/meta/unless.rb +15 -0
  83. data/meta/while.rb +24 -0
  84. data/meta/yield.rb +10 -0
  85. data/mutant.gemspec +1 -0
  86. data/spec/integration/mutant/corpus_spec.rb +29 -25
  87. data/spec/spec_helper.rb +2 -0
  88. data/spec/support/mutation_verifier.rb +1 -0
  89. data/spec/unit/mutant/cli_new_spec.rb +6 -6
  90. data/spec/unit/mutant/expression/method_spec.rb +50 -0
  91. data/spec/unit/mutant/expression/namespace/flat_spec.rb +32 -0
  92. data/spec/unit/mutant/expression/namespace/recursive_spec.rb +37 -0
  93. data/spec/unit/mutant/matcher/namespace_spec.rb +2 -2
  94. data/spec/unit/mutant/mutation_spec.rb +1 -1
  95. data/spec/unit/mutant/mutator/node_spec.rb +14 -0
  96. metadata +123 -139
  97. data/lib/mutant/cli/classifier.rb +0 -139
  98. data/lib/mutant/cli/classifier/method.rb +0 -105
  99. data/lib/mutant/cli/classifier/namespace.rb +0 -49
  100. data/spec/unit/mutant/cli/classifier/method_spec.rb +0 -77
  101. data/spec/unit/mutant/cli/classifier/namespace/flat_spec.rb +0 -58
  102. data/spec/unit/mutant/cli/classifier/namespace/recursive_spec.rb +0 -58
  103. data/spec/unit/mutant/cli/classifier_spec.rb +0 -59
  104. data/spec/unit/mutant/mutator/node/and_asgn_spec.rb +0 -19
  105. data/spec/unit/mutant/mutator/node/begin_spec.rb +0 -32
  106. data/spec/unit/mutant/mutator/node/binary_spec.rb +0 -41
  107. data/spec/unit/mutant/mutator/node/block_pass_spec.rb +0 -15
  108. data/spec/unit/mutant/mutator/node/block_spec.rb +0 -83
  109. data/spec/unit/mutant/mutator/node/blockarg_spec.rb +0 -17
  110. data/spec/unit/mutant/mutator/node/case_spec.rb +0 -329
  111. data/spec/unit/mutant/mutator/node/cbase_spec.rb +0 -15
  112. data/spec/unit/mutant/mutator/node/conditional_loop_spec.rb +0 -58
  113. data/spec/unit/mutant/mutator/node/const_spec.rb +0 -16
  114. data/spec/unit/mutant/mutator/node/define_spec.rb +0 -171
  115. data/spec/unit/mutant/mutator/node/defined_spec.rb +0 -14
  116. data/spec/unit/mutant/mutator/node/dstr_spec.rb +0 -17
  117. data/spec/unit/mutant/mutator/node/dsym_spec.rb +0 -18
  118. data/spec/unit/mutant/mutator/node/ensure_spec.rb +0 -16
  119. data/spec/unit/mutant/mutator/node/if_spec.rb +0 -77
  120. data/spec/unit/mutant/mutator/node/kwbegin_spec.rb +0 -16
  121. data/spec/unit/mutant/mutator/node/literal/array_spec.rb +0 -47
  122. data/spec/unit/mutant/mutator/node/literal/boolean_spec.rb +0 -25
  123. data/spec/unit/mutant/mutator/node/literal/fixnum_spec.rb +0 -13
  124. data/spec/unit/mutant/mutator/node/literal/float_spec.rb +0 -53
  125. data/spec/unit/mutant/mutator/node/literal/hash_spec.rb +0 -33
  126. data/spec/unit/mutant/mutator/node/literal/nil_spec.rb +0 -10
  127. data/spec/unit/mutant/mutator/node/literal/range_spec.rb +0 -56
  128. data/spec/unit/mutant/mutator/node/literal/regex_spec.rb +0 -36
  129. data/spec/unit/mutant/mutator/node/literal/string_spec.rb +0 -15
  130. data/spec/unit/mutant/mutator/node/literal/symbol_spec.rb +0 -15
  131. data/spec/unit/mutant/mutator/node/loop_ctrl_spec.rb +0 -37
  132. data/spec/unit/mutant/mutator/node/masgn_spec.rb +0 -14
  133. data/spec/unit/mutant/mutator/node/match_current_line_spec.rb +0 -21
  134. data/spec/unit/mutant/mutator/node/named_value/access_spec.rb +0 -78
  135. data/spec/unit/mutant/mutator/node/named_value/constant_assignment_spec.rb +0 -16
  136. data/spec/unit/mutant/mutator/node/named_value/variable_assignment_spec.rb +0 -61
  137. data/spec/unit/mutant/mutator/node/nthref_spec.rb +0 -19
  138. data/spec/unit/mutant/mutator/node/op_assgn_spec.rb +0 -22
  139. data/spec/unit/mutant/mutator/node/or_asgn_spec.rb +0 -19
  140. data/spec/unit/mutant/mutator/node/redo_spec.rb +0 -10
  141. data/spec/unit/mutant/mutator/node/rescue_spec.rb +0 -63
  142. data/spec/unit/mutant/mutator/node/restarg_spec.rb +0 -18
  143. data/spec/unit/mutant/mutator/node/return_spec.rb +0 -31
  144. data/spec/unit/mutant/mutator/node/send_spec.rb +0 -382
  145. data/spec/unit/mutant/mutator/node/super_spec.rb +0 -46
  146. data/spec/unit/mutant/mutator/node/yield_spec.rb +0 -17
data/meta/string.rb ADDED
@@ -0,0 +1,7 @@
1
+ # encoding: utf-8
2
+
3
+ Mutant::Meta::Example.add do
4
+ source '"foo"'
5
+
6
+ mutation 'nil'
7
+ end
data/meta/super.rb ADDED
@@ -0,0 +1,26 @@
1
+ # encoding: utf-8
2
+
3
+ Mutant::Meta::Example.add do
4
+ source 'super'
5
+
6
+ mutation 'nil'
7
+ end
8
+
9
+ Mutant::Meta::Example.add do
10
+ source 'super()'
11
+
12
+ mutation 'super'
13
+ mutation 'nil'
14
+ end
15
+
16
+ Mutant::Meta::Example.add do
17
+ source 'super(foo, bar)'
18
+
19
+ mutation 'super'
20
+ mutation 'super()'
21
+ mutation 'super(foo)'
22
+ mutation 'super(bar)'
23
+ mutation 'super(foo, nil)'
24
+ mutation 'super(nil, bar)'
25
+ mutation 'nil'
26
+ end
data/meta/symbol.rb ADDED
@@ -0,0 +1,8 @@
1
+ # encoding: utf-8
2
+
3
+ Mutant::Meta::Example.add do
4
+ source ':foo'
5
+
6
+ mutation 'nil'
7
+ mutation ':foo__mutant__'
8
+ end
data/meta/unless.rb ADDED
@@ -0,0 +1,15 @@
1
+ # encoding: utf-8
2
+
3
+ Mutant::Meta::Example.add do
4
+ source 'until true; foo; bar; end'
5
+
6
+ mutation 'until true; bar; end'
7
+ mutation 'until true; foo; end'
8
+ mutation 'until true; end'
9
+ mutation 'until false; foo; bar; end'
10
+ mutation 'until nil; foo; bar; end'
11
+ mutation 'until true; foo; nil; end'
12
+ mutation 'until true; nil; bar; end'
13
+ mutation 'until true; raise; end'
14
+ mutation 'nil'
15
+ end
data/meta/while.rb ADDED
@@ -0,0 +1,24 @@
1
+ # encoding: utf-8
2
+
3
+ Mutant::Meta::Example.add do
4
+ source 'while true; foo; bar; end'
5
+
6
+ mutation 'while true; bar; end'
7
+ mutation 'while true; foo; end'
8
+ mutation 'while true; end'
9
+ mutation 'while false; foo; bar; end'
10
+ mutation 'while nil; foo; bar; end'
11
+ mutation 'while true; foo; nil; end'
12
+ mutation 'while true; nil; bar; end'
13
+ mutation 'while true; raise; end'
14
+ mutation 'nil'
15
+ end
16
+
17
+ Mutant::Meta::Example.add do
18
+ source 'while true; end'
19
+
20
+ mutation 'while true; raise; end'
21
+ mutation 'while false; end'
22
+ mutation 'while nil; end'
23
+ mutation 'nil'
24
+ end
data/meta/yield.rb ADDED
@@ -0,0 +1,10 @@
1
+ # encoding: utf-8
2
+
3
+ Mutant::Meta::Example.add do
4
+ source 'yield true'
5
+
6
+ mutation 'yield false'
7
+ mutation 'yield nil'
8
+ mutation 'yield'
9
+ mutation 'nil'
10
+ end
data/mutant.gemspec CHANGED
@@ -39,4 +39,5 @@ Gem::Specification.new do |gem|
39
39
  gem.add_runtime_dependency('concord', '~> 0.1.5')
40
40
 
41
41
  gem.add_development_dependency('bundler', '~> 1.3', '>= 1.3.5')
42
+ gem.add_development_dependency('parallel', '~> 1.0.0')
42
43
  end
@@ -1,5 +1,6 @@
1
1
  # encoding: UTF-8
2
2
 
3
+ require 'parallel'
3
4
  require 'spec_helper'
4
5
 
5
6
  describe 'Mutant on ruby corpus' do
@@ -12,6 +13,8 @@ describe 'Mutant on ruby corpus' do
12
13
  pending 'Corpus test is deactivated on 1.9.3' if RUBY_VERSION.eql?('1.9.3')
13
14
  end
14
15
 
16
+ MUTEX = Mutex.new
17
+
15
18
  class Project
16
19
  include Anima.new(:name, :repo_uri, :exclude)
17
20
 
@@ -26,41 +29,28 @@ describe 'Mutant on ruby corpus' do
26
29
  # rubocop:disable MethodLength
27
30
  def verify
28
31
  checkout
29
- total = 0
30
- parse_errors = []
31
32
  start = Time.now
32
- Pathname.glob(repo_path.join('**/*.rb')).sort.each do |path|
33
- puts "Generating mutations for: #{path}"
34
- begin
35
- node = Parser::CurrentRuby.parse(path.read)
36
- # Ignore known parser bugs
37
- rescue ArgumentError, EncodingError
38
- parse_errors << path
39
- next
40
- end
41
- next if node.nil?
33
+ total = Parallel.map(Pathname.glob(repo_path.join('**/*.rb')).sort_by(&:size).reverse, finish: method(:progress)) do |path|
42
34
  count = 0
43
- Mutant::Mutator::Node.each(node) do
44
- count += 1
45
- if (count % 1000).zero?
46
- puts count
35
+ node =
36
+ begin
37
+ Parser::CurrentRuby.parse(path.read)
38
+ rescue EncodingError, ArgumentError
39
+ end
40
+ unless node.nil?
41
+ Mutant::Mutator::Node.each(node) do
42
+ count += 1
47
43
  end
48
44
  end
49
- puts "Mutations: #{count}"
50
- total += count
51
- end
45
+ count
46
+ end.inject(0, :+)
52
47
  took = Time.now - start
53
48
  puts format(
54
- 'Total Mutations/Time/Parse-Errors: %s/%0.2fs/%i - %0.2f/s',
49
+ 'Total Mutations/Time/Parse-Errors: %s/%0.2fs - %0.2f/s',
55
50
  total,
56
51
  took,
57
- parse_errors.size,
58
52
  total / took
59
53
  )
60
- if parse_errors.any?
61
- puts 'Files with parse errors:'
62
- parse_errors.each(&method(:puts))
63
- end
64
54
  self
65
55
  end
66
56
 
@@ -95,6 +85,20 @@ describe 'Mutant on ruby corpus' do
95
85
  TMP.join(name)
96
86
  end
97
87
 
88
+ # Print progress
89
+ #
90
+ # @param [Pathname] path
91
+ # @param [Fixnum] _index
92
+ # @param [Fixnum] count
93
+ #
94
+ # @return [undefined]
95
+ #
96
+ def progress(path, _index, count)
97
+ MUTEX.synchronize do
98
+ puts 'Mutations - %4i - %s' % [count, path]
99
+ end
100
+ end
101
+
98
102
  # Helper method to execute system commands
99
103
  #
100
104
  # @param [Array<String>] arguments
data/spec/spec_helper.rb CHANGED
@@ -14,6 +14,7 @@ if ENV['COVERAGE'] == 'true'
14
14
  add_filter 'spec'
15
15
  add_filter 'vendor'
16
16
  add_filter 'test_app'
17
+ add_filter 'lib/mutant/meta/**/*.rb'
17
18
 
18
19
  minimum_coverage 89.77 # TODO: raise this to 100, then mutation test
19
20
  end
@@ -24,6 +25,7 @@ require 'adamantium'
24
25
  require 'devtools/spec_helper'
25
26
  require 'unparser/cli'
26
27
  require 'mutant'
28
+ require 'mutant/meta'
27
29
 
28
30
  $LOAD_PATH << File.join(TestApp.root, 'lib')
29
31
 
@@ -92,4 +92,5 @@ private
92
92
  Unparser::CLI::Source::Node.new(Unparser::Preprocessor.run(original_node))
93
93
  end
94
94
  memoize :unparser
95
+
95
96
  end # MutationVerifier
@@ -80,9 +80,9 @@ describe Mutant::CLI, '.new' do
80
80
  end
81
81
 
82
82
  context 'with debug flag' do
83
- let(:pattern) { '::TestApp*' }
83
+ let(:pattern) { 'TestApp*' }
84
84
  let(:arguments) { %W[--debug #{pattern}] }
85
- let(:expected_matcher) { ns::Namespace.new(cache, TestApp) }
85
+ let(:expected_matcher) { ns::Namespace.new(cache, 'TestApp') }
86
86
 
87
87
  it_should_behave_like 'a cli parser'
88
88
 
@@ -92,9 +92,9 @@ describe Mutant::CLI, '.new' do
92
92
  end
93
93
 
94
94
  context 'with zombie flag' do
95
- let(:pattern) { '::TestApp*' }
95
+ let(:pattern) { 'TestApp*' }
96
96
  let(:arguments) { %W[--zombie #{pattern}] }
97
- let(:expected_matcher) { ns::Namespace.new(cache, TestApp) }
97
+ let(:expected_matcher) { ns::Namespace.new(cache, 'TestApp') }
98
98
 
99
99
  it_should_behave_like 'a cli parser'
100
100
 
@@ -104,9 +104,9 @@ describe Mutant::CLI, '.new' do
104
104
  end
105
105
 
106
106
  context 'with namespace pattern' do
107
- let(:pattern) { '::TestApp*' }
107
+ let(:pattern) { 'TestApp*' }
108
108
  let(:arguments) { [pattern] }
109
- let(:expected_matcher) { ns::Namespace.new(cache, TestApp) }
109
+ let(:expected_matcher) { ns::Namespace.new(cache, 'TestApp') }
110
110
 
111
111
  it_should_behave_like 'a cli parser'
112
112
  end
@@ -0,0 +1,50 @@
1
+ # encoding: utf-8
2
+
3
+ require 'spec_helper'
4
+
5
+ describe Mutant::Expression::Method do
6
+
7
+ let(:object) { described_class.parse(input) }
8
+ let(:cache) { Mutant::Cache.new }
9
+ let(:instance_method) { '::TestApp::Literal#string' }
10
+ let(:singleton_method) { '::TestApp::Literal.string' }
11
+
12
+ describe '#match_length' do
13
+ let(:input) { instance_method }
14
+
15
+ subject { object.match_length(other) }
16
+
17
+ context 'when other is an equivalent expression' do
18
+ let(:other) { described_class.parse(object.syntax) }
19
+
20
+ it { should be(object.syntax.length) }
21
+ end
22
+
23
+ context 'when other is an unequivalent expression' do
24
+ let(:other) { described_class.parse('Foo*') }
25
+
26
+ it { should be(0) }
27
+ end
28
+ end
29
+
30
+ describe '#matcher' do
31
+ subject { object.matcher(cache) }
32
+
33
+ context 'with an instance method' do
34
+ let(:input) { instance_method }
35
+
36
+ it 'returns correct matcher' do
37
+ should eql(Mutant::Matcher::Method::Instance.new(
38
+ cache,
39
+ TestApp::Literal, TestApp::Literal.instance_method(:string)
40
+ ))
41
+ end
42
+ end
43
+
44
+ context 'with a singleton method' do
45
+ let(:input) { singleton_method }
46
+
47
+ it { should eql(Mutant::Matcher::Method::Singleton.new(cache, TestApp::Literal, TestApp::Literal.method(:string))) }
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,32 @@
1
+ # encoding: utf-8
2
+
3
+ require 'spec_helper'
4
+
5
+ describe Mutant::Expression::Namespace::Exact do
6
+
7
+ let(:object) { described_class.parse(input) }
8
+ let(:cache) { Mutant::Cache.new }
9
+ let(:input) { '::TestApp::Literal' }
10
+
11
+ describe '#matcher' do
12
+ subject { object.matcher(cache) }
13
+
14
+ it { should eql(Mutant::Matcher::Namespace::Scope.new(cache, TestApp::Literal)) }
15
+ end
16
+
17
+ describe '#match_length' do
18
+ subject { object.match_length(other) }
19
+
20
+ context 'when other is an equivalent expression' do
21
+ let(:other) { described_class.parse(object.syntax) }
22
+
23
+ it { should be(object.syntax.length) }
24
+ end
25
+
26
+ context 'when other is an unequivalent expression' do
27
+ let(:other) { described_class.parse('Foo*') }
28
+
29
+ it { should be(0) }
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,37 @@
1
+ # encoding: utf-8
2
+
3
+ require 'spec_helper'
4
+
5
+ describe Mutant::Expression::Namespace::Recursive do
6
+
7
+ let(:object) { described_class.parse(input) }
8
+ let(:cache) { Mutant::Cache.new }
9
+ let(:input) { '::TestApp::Literal*' }
10
+
11
+ describe '#matcher' do
12
+ subject { object.matcher(cache) }
13
+ it { should eql(Mutant::Matcher::Namespace.new(cache, '::TestApp::Literal')) }
14
+ end
15
+
16
+ describe '#match_length' do
17
+ subject { object.match_length(other) }
18
+
19
+ context 'when other is an equivalent expression' do
20
+ let(:other) { described_class.parse(object.syntax) }
21
+
22
+ it { should be(0) }
23
+ end
24
+
25
+ context 'when other expression describes a shorter prefix' do
26
+ let(:other) { described_class.parse('::TestApp') }
27
+
28
+ it { should be(0) }
29
+ end
30
+
31
+ context 'when other expression describes a longer prefix' do
32
+ let(:other) { described_class.parse('::TestApp::Literal::Deep') }
33
+
34
+ it { should be(input[0..-2].length) }
35
+ end
36
+ end
37
+ end
@@ -5,8 +5,8 @@ require 'spec_helper'
5
5
  describe Mutant::Matcher::Namespace, '#each' do
6
6
  subject { object.each { |item| yields << item } }
7
7
 
8
- let(:yields) { [] }
9
- let(:object) { described_class.new(cache, TestApp::Literal) }
8
+ let(:yields) { [] }
9
+ let(:object) { described_class.new(cache, 'TestApp::Literal') }
10
10
 
11
11
  let(:cache) { Mutant::Cache.new }
12
12
 
@@ -5,7 +5,7 @@ require 'spec_helper'
5
5
  describe Mutant::Mutation do
6
6
 
7
7
  class TestMutation < Mutant::Mutation
8
- SYMBOL = 'test'
8
+ SYMBOL = 'test'.freeze
9
9
  end
10
10
 
11
11
  let(:object) { TestMutation.new(mutation_subject, Mutant::NodeHelpers::N_NIL) }
@@ -0,0 +1,14 @@
1
+ require 'spec_helper'
2
+
3
+ describe Mutant::Mutator::Node do
4
+ Mutant::Meta::Example::ALL.each do |example|
5
+ context "on #{example.node.type.inspect}" do
6
+ it 'generates the correct mutations' do
7
+ verification = example.verification
8
+ unless verification.success?
9
+ fail verification.error_report
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
metadata CHANGED
@@ -1,231 +1,245 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mutant
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.17
4
+ version: 0.5.18
5
5
  platform: ruby
6
6
  authors:
7
7
  - Markus Schirp
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-05-27 00:00:00.000000000 Z
11
+ date: 2014-06-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: parser
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '2.1'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '2.1'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: ast
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ~>
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
33
  version: '2.0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ~>
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '2.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: diff-lcs
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ~>
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
47
  version: '1.2'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ~>
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '1.2'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: morpher
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ~>
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
61
  version: 0.2.3
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ~>
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: 0.2.3
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: procto
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ~>
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
75
  version: 0.0.2
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
82
  version: 0.0.2
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: abstract_type
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ~>
87
+ - - "~>"
88
88
  - !ruby/object:Gem::Version
89
89
  version: 0.0.7
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ~>
94
+ - - "~>"
95
95
  - !ruby/object:Gem::Version
96
96
  version: 0.0.7
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: unparser
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ~>
101
+ - - "~>"
102
102
  - !ruby/object:Gem::Version
103
103
  version: 0.1.12
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ~>
108
+ - - "~>"
109
109
  - !ruby/object:Gem::Version
110
110
  version: 0.1.12
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: ice_nine
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - ~>
115
+ - - "~>"
116
116
  - !ruby/object:Gem::Version
117
117
  version: 0.11.0
118
118
  type: :runtime
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - ~>
122
+ - - "~>"
123
123
  - !ruby/object:Gem::Version
124
124
  version: 0.11.0
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: adamantium
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - ~>
129
+ - - "~>"
130
130
  - !ruby/object:Gem::Version
131
131
  version: 0.2.0
132
132
  type: :runtime
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
- - - ~>
136
+ - - "~>"
137
137
  - !ruby/object:Gem::Version
138
138
  version: 0.2.0
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: memoizable
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
- - - ~>
143
+ - - "~>"
144
144
  - !ruby/object:Gem::Version
145
145
  version: 0.4.2
146
146
  type: :runtime
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
- - - ~>
150
+ - - "~>"
151
151
  - !ruby/object:Gem::Version
152
152
  version: 0.4.2
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: equalizer
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
- - - ~>
157
+ - - "~>"
158
158
  - !ruby/object:Gem::Version
159
159
  version: 0.0.9
160
160
  type: :runtime
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
- - - ~>
164
+ - - "~>"
165
165
  - !ruby/object:Gem::Version
166
166
  version: 0.0.9
167
167
  - !ruby/object:Gem::Dependency
168
168
  name: inflecto
169
169
  requirement: !ruby/object:Gem::Requirement
170
170
  requirements:
171
- - - ~>
171
+ - - "~>"
172
172
  - !ruby/object:Gem::Version
173
173
  version: 0.0.2
174
174
  type: :runtime
175
175
  prerelease: false
176
176
  version_requirements: !ruby/object:Gem::Requirement
177
177
  requirements:
178
- - - ~>
178
+ - - "~>"
179
179
  - !ruby/object:Gem::Version
180
180
  version: 0.0.2
181
181
  - !ruby/object:Gem::Dependency
182
182
  name: anima
183
183
  requirement: !ruby/object:Gem::Requirement
184
184
  requirements:
185
- - - ~>
185
+ - - "~>"
186
186
  - !ruby/object:Gem::Version
187
187
  version: 0.2.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
194
  version: 0.2.0
195
195
  - !ruby/object:Gem::Dependency
196
196
  name: concord
197
197
  requirement: !ruby/object:Gem::Requirement
198
198
  requirements:
199
- - - ~>
199
+ - - "~>"
200
200
  - !ruby/object:Gem::Version
201
201
  version: 0.1.5
202
202
  type: :runtime
203
203
  prerelease: false
204
204
  version_requirements: !ruby/object:Gem::Requirement
205
205
  requirements:
206
- - - ~>
206
+ - - "~>"
207
207
  - !ruby/object:Gem::Version
208
208
  version: 0.1.5
209
209
  - !ruby/object:Gem::Dependency
210
210
  name: bundler
211
211
  requirement: !ruby/object:Gem::Requirement
212
212
  requirements:
213
- - - ~>
213
+ - - "~>"
214
214
  - !ruby/object:Gem::Version
215
215
  version: '1.3'
216
- - - '>='
216
+ - - ">="
217
217
  - !ruby/object:Gem::Version
218
218
  version: 1.3.5
219
219
  type: :development
220
220
  prerelease: false
221
221
  version_requirements: !ruby/object:Gem::Requirement
222
222
  requirements:
223
- - - ~>
223
+ - - "~>"
224
224
  - !ruby/object:Gem::Version
225
225
  version: '1.3'
226
- - - '>='
226
+ - - ">="
227
227
  - !ruby/object:Gem::Version
228
228
  version: 1.3.5
229
+ - !ruby/object:Gem::Dependency
230
+ name: parallel
231
+ requirement: !ruby/object:Gem::Requirement
232
+ requirements:
233
+ - - "~>"
234
+ - !ruby/object:Gem::Version
235
+ version: 1.0.0
236
+ type: :development
237
+ prerelease: false
238
+ version_requirements: !ruby/object:Gem::Requirement
239
+ requirements:
240
+ - - "~>"
241
+ - !ruby/object:Gem::Version
242
+ version: 1.0.0
229
243
  description: Mutation testing for ruby
230
244
  email:
231
245
  - mbj@schirp-dso.com
@@ -236,11 +250,11 @@ extra_rdoc_files:
236
250
  - TODO
237
251
  - LICENSE
238
252
  files:
239
- - .gitignore
240
- - .rspec
241
- - .rubocop.yml
242
- - .ruby-gemset
243
- - .travis.yml
253
+ - ".gitignore"
254
+ - ".rspec"
255
+ - ".rubocop.yml"
256
+ - ".ruby-gemset"
257
+ - ".travis.yml"
244
258
  - Changelog.md
245
259
  - Gemfile
246
260
  - Gemfile.devtools
@@ -262,9 +276,6 @@ files:
262
276
  - lib/mutant.rb
263
277
  - lib/mutant/cache.rb
264
278
  - lib/mutant/cli.rb
265
- - lib/mutant/cli/classifier.rb
266
- - lib/mutant/cli/classifier/method.rb
267
- - lib/mutant/cli/classifier/namespace.rb
268
279
  - lib/mutant/color.rb
269
280
  - lib/mutant/config.rb
270
281
  - lib/mutant/constants.rb
@@ -272,6 +283,9 @@ files:
272
283
  - lib/mutant/context/scope.rb
273
284
  - lib/mutant/delegator.rb
274
285
  - lib/mutant/diff.rb
286
+ - lib/mutant/expression.rb
287
+ - lib/mutant/expression/method.rb
288
+ - lib/mutant/expression/namespace.rb
275
289
  - lib/mutant/killer.rb
276
290
  - lib/mutant/loader.rb
277
291
  - lib/mutant/matcher.rb
@@ -285,6 +299,9 @@ files:
285
299
  - lib/mutant/matcher/namespace.rb
286
300
  - lib/mutant/matcher/null.rb
287
301
  - lib/mutant/matcher/scope.rb
302
+ - lib/mutant/meta.rb
303
+ - lib/mutant/meta/example.rb
304
+ - lib/mutant/meta/example/dsl.rb
288
305
  - lib/mutant/mutation.rb
289
306
  - lib/mutant/mutation/evil.rb
290
307
  - lib/mutant/mutation/neutral.rb
@@ -326,6 +343,7 @@ files:
326
343
  - lib/mutant/mutator/node/noop.rb
327
344
  - lib/mutant/mutator/node/nthref.rb
328
345
  - lib/mutant/mutator/node/op_asgn.rb
346
+ - lib/mutant/mutator/node/or_asgn.rb
329
347
  - lib/mutant/mutator/node/resbody.rb
330
348
  - lib/mutant/mutator/node/rescue.rb
331
349
  - lib/mutant/mutator/node/restarg.rb
@@ -378,6 +396,58 @@ files:
378
396
  - lib/mutant/zombifier.rb
379
397
  - lib/mutant/zombifier/file.rb
380
398
  - lib/parser_extensions.rb
399
+ - meta/and.rb
400
+ - meta/and_asgn.rb
401
+ - meta/array.rb
402
+ - meta/begin.rb
403
+ - meta/binary.rb
404
+ - meta/block.rb
405
+ - meta/block_pass.rb
406
+ - meta/blockarg.rb
407
+ - meta/boolean.rb
408
+ - meta/break.rb
409
+ - meta/case.rb
410
+ - meta/casgn.rb
411
+ - meta/cbase.rb
412
+ - meta/const.rb
413
+ - meta/cvar.rb
414
+ - meta/cvasgn.rb
415
+ - meta/define.rb
416
+ - meta/defined.rb
417
+ - meta/dstr.rb
418
+ - meta/dsym.rb
419
+ - meta/ensure.rb
420
+ - meta/fixnum.rb
421
+ - meta/float.rb
422
+ - meta/gvar.rb
423
+ - meta/gvasgn.rb
424
+ - meta/hash.rb
425
+ - meta/if.rb
426
+ - meta/ivasgn.rb
427
+ - meta/kwbegin.rb
428
+ - meta/lvar.rb
429
+ - meta/lvasgn.rb
430
+ - meta/masgn.rb
431
+ - meta/match_current_line.rb
432
+ - meta/next.rb
433
+ - meta/nil.rb
434
+ - meta/nthref.rb
435
+ - meta/op_assgn.rb
436
+ - meta/or_asgn.rb
437
+ - meta/range.rb
438
+ - meta/redo.rb
439
+ - meta/regex.rb
440
+ - meta/rescue.rb
441
+ - meta/restarg.rb
442
+ - meta/return.rb
443
+ - meta/self.rb
444
+ - meta/send.rb
445
+ - meta/string.rb
446
+ - meta/super.rb
447
+ - meta/symbol.rb
448
+ - meta/unless.rb
449
+ - meta/while.rb
450
+ - meta/yield.rb
381
451
  - mutant-rspec.gemspec
382
452
  - mutant.gemspec
383
453
  - spec/integration/mutant/corpus_spec.rb
@@ -395,16 +465,15 @@ files:
395
465
  - spec/support/mutation_verifier.rb
396
466
  - spec/support/rspec.rb
397
467
  - spec/support/test_app.rb
398
- - spec/unit/mutant/cli/classifier/method_spec.rb
399
- - spec/unit/mutant/cli/classifier/namespace/flat_spec.rb
400
- - spec/unit/mutant/cli/classifier/namespace/recursive_spec.rb
401
- - spec/unit/mutant/cli/classifier_spec.rb
402
468
  - spec/unit/mutant/cli_new_spec.rb
403
469
  - spec/unit/mutant/cli_run_spec.rb
404
470
  - spec/unit/mutant/context/root_spec.rb
405
471
  - spec/unit/mutant/context/scope/root_spec.rb
406
472
  - spec/unit/mutant/context/scope/unqualified_name_spec.rb
407
473
  - spec/unit/mutant/diff_spec.rb
474
+ - spec/unit/mutant/expression/method_spec.rb
475
+ - spec/unit/mutant/expression/namespace/flat_spec.rb
476
+ - spec/unit/mutant/expression/namespace/recursive_spec.rb
408
477
  - spec/unit/mutant/loader/eval_spec.rb
409
478
  - spec/unit/mutant/matcher/chain_spec.rb
410
479
  - spec/unit/mutant/matcher/method/instance_spec.rb
@@ -413,49 +482,7 @@ files:
413
482
  - spec/unit/mutant/matcher/methods/singleton_spec.rb
414
483
  - spec/unit/mutant/matcher/namespace_spec.rb
415
484
  - spec/unit/mutant/mutation_spec.rb
416
- - spec/unit/mutant/mutator/node/and_asgn_spec.rb
417
- - spec/unit/mutant/mutator/node/begin_spec.rb
418
- - spec/unit/mutant/mutator/node/binary_spec.rb
419
- - spec/unit/mutant/mutator/node/block_pass_spec.rb
420
- - spec/unit/mutant/mutator/node/block_spec.rb
421
- - spec/unit/mutant/mutator/node/blockarg_spec.rb
422
- - spec/unit/mutant/mutator/node/case_spec.rb
423
- - spec/unit/mutant/mutator/node/cbase_spec.rb
424
- - spec/unit/mutant/mutator/node/conditional_loop_spec.rb
425
- - spec/unit/mutant/mutator/node/const_spec.rb
426
- - spec/unit/mutant/mutator/node/define_spec.rb
427
- - spec/unit/mutant/mutator/node/defined_spec.rb
428
- - spec/unit/mutant/mutator/node/dstr_spec.rb
429
- - spec/unit/mutant/mutator/node/dsym_spec.rb
430
- - spec/unit/mutant/mutator/node/ensure_spec.rb
431
- - spec/unit/mutant/mutator/node/if_spec.rb
432
- - spec/unit/mutant/mutator/node/kwbegin_spec.rb
433
- - spec/unit/mutant/mutator/node/literal/array_spec.rb
434
- - spec/unit/mutant/mutator/node/literal/boolean_spec.rb
435
- - spec/unit/mutant/mutator/node/literal/fixnum_spec.rb
436
- - spec/unit/mutant/mutator/node/literal/float_spec.rb
437
- - spec/unit/mutant/mutator/node/literal/hash_spec.rb
438
- - spec/unit/mutant/mutator/node/literal/nil_spec.rb
439
- - spec/unit/mutant/mutator/node/literal/range_spec.rb
440
- - spec/unit/mutant/mutator/node/literal/regex_spec.rb
441
- - spec/unit/mutant/mutator/node/literal/string_spec.rb
442
- - spec/unit/mutant/mutator/node/literal/symbol_spec.rb
443
- - spec/unit/mutant/mutator/node/loop_ctrl_spec.rb
444
- - spec/unit/mutant/mutator/node/masgn_spec.rb
445
- - spec/unit/mutant/mutator/node/match_current_line_spec.rb
446
- - spec/unit/mutant/mutator/node/named_value/access_spec.rb
447
- - spec/unit/mutant/mutator/node/named_value/constant_assignment_spec.rb
448
- - spec/unit/mutant/mutator/node/named_value/variable_assignment_spec.rb
449
- - spec/unit/mutant/mutator/node/nthref_spec.rb
450
- - spec/unit/mutant/mutator/node/op_assgn_spec.rb
451
- - spec/unit/mutant/mutator/node/or_asgn_spec.rb
452
- - spec/unit/mutant/mutator/node/redo_spec.rb
453
- - spec/unit/mutant/mutator/node/rescue_spec.rb
454
- - spec/unit/mutant/mutator/node/restarg_spec.rb
455
- - spec/unit/mutant/mutator/node/return_spec.rb
456
- - spec/unit/mutant/mutator/node/send_spec.rb
457
- - spec/unit/mutant/mutator/node/super_spec.rb
458
- - spec/unit/mutant/mutator/node/yield_spec.rb
485
+ - spec/unit/mutant/mutator/node_spec.rb
459
486
  - spec/unit/mutant/mutator_spec.rb
460
487
  - spec/unit/mutant/reporter/null_spec.rb
461
488
  - spec/unit/mutant/require_highjack_spec.rb
@@ -491,17 +518,17 @@ require_paths:
491
518
  - lib
492
519
  required_ruby_version: !ruby/object:Gem::Requirement
493
520
  requirements:
494
- - - '>='
521
+ - - ">="
495
522
  - !ruby/object:Gem::Version
496
523
  version: 1.9.3
497
524
  required_rubygems_version: !ruby/object:Gem::Requirement
498
525
  requirements:
499
- - - '>='
526
+ - - ">="
500
527
  - !ruby/object:Gem::Version
501
528
  version: '0'
502
529
  requirements: []
503
530
  rubyforge_project:
504
- rubygems_version: 2.0.14
531
+ rubygems_version: 2.2.2
505
532
  signing_key:
506
533
  specification_version: 4
507
534
  summary: Mutation testing tool for ruby under MRI and Rubinius
@@ -511,16 +538,15 @@ test_files:
511
538
  - spec/integration/mutant/rspec_spec.rb
512
539
  - spec/integration/mutant/test_mutator_handles_types_spec.rb
513
540
  - spec/integration/mutant/zombie_spec.rb
514
- - spec/unit/mutant/cli/classifier/method_spec.rb
515
- - spec/unit/mutant/cli/classifier/namespace/flat_spec.rb
516
- - spec/unit/mutant/cli/classifier/namespace/recursive_spec.rb
517
- - spec/unit/mutant/cli/classifier_spec.rb
518
541
  - spec/unit/mutant/cli_new_spec.rb
519
542
  - spec/unit/mutant/cli_run_spec.rb
520
543
  - spec/unit/mutant/context/root_spec.rb
521
544
  - spec/unit/mutant/context/scope/root_spec.rb
522
545
  - spec/unit/mutant/context/scope/unqualified_name_spec.rb
523
546
  - spec/unit/mutant/diff_spec.rb
547
+ - spec/unit/mutant/expression/method_spec.rb
548
+ - spec/unit/mutant/expression/namespace/flat_spec.rb
549
+ - spec/unit/mutant/expression/namespace/recursive_spec.rb
524
550
  - spec/unit/mutant/loader/eval_spec.rb
525
551
  - spec/unit/mutant/matcher/chain_spec.rb
526
552
  - spec/unit/mutant/matcher/method/instance_spec.rb
@@ -529,49 +555,7 @@ test_files:
529
555
  - spec/unit/mutant/matcher/methods/singleton_spec.rb
530
556
  - spec/unit/mutant/matcher/namespace_spec.rb
531
557
  - spec/unit/mutant/mutation_spec.rb
532
- - spec/unit/mutant/mutator/node/and_asgn_spec.rb
533
- - spec/unit/mutant/mutator/node/begin_spec.rb
534
- - spec/unit/mutant/mutator/node/binary_spec.rb
535
- - spec/unit/mutant/mutator/node/block_pass_spec.rb
536
- - spec/unit/mutant/mutator/node/block_spec.rb
537
- - spec/unit/mutant/mutator/node/blockarg_spec.rb
538
- - spec/unit/mutant/mutator/node/case_spec.rb
539
- - spec/unit/mutant/mutator/node/cbase_spec.rb
540
- - spec/unit/mutant/mutator/node/conditional_loop_spec.rb
541
- - spec/unit/mutant/mutator/node/const_spec.rb
542
- - spec/unit/mutant/mutator/node/define_spec.rb
543
- - spec/unit/mutant/mutator/node/defined_spec.rb
544
- - spec/unit/mutant/mutator/node/dstr_spec.rb
545
- - spec/unit/mutant/mutator/node/dsym_spec.rb
546
- - spec/unit/mutant/mutator/node/ensure_spec.rb
547
- - spec/unit/mutant/mutator/node/if_spec.rb
548
- - spec/unit/mutant/mutator/node/kwbegin_spec.rb
549
- - spec/unit/mutant/mutator/node/literal/array_spec.rb
550
- - spec/unit/mutant/mutator/node/literal/boolean_spec.rb
551
- - spec/unit/mutant/mutator/node/literal/fixnum_spec.rb
552
- - spec/unit/mutant/mutator/node/literal/float_spec.rb
553
- - spec/unit/mutant/mutator/node/literal/hash_spec.rb
554
- - spec/unit/mutant/mutator/node/literal/nil_spec.rb
555
- - spec/unit/mutant/mutator/node/literal/range_spec.rb
556
- - spec/unit/mutant/mutator/node/literal/regex_spec.rb
557
- - spec/unit/mutant/mutator/node/literal/string_spec.rb
558
- - spec/unit/mutant/mutator/node/literal/symbol_spec.rb
559
- - spec/unit/mutant/mutator/node/loop_ctrl_spec.rb
560
- - spec/unit/mutant/mutator/node/masgn_spec.rb
561
- - spec/unit/mutant/mutator/node/match_current_line_spec.rb
562
- - spec/unit/mutant/mutator/node/named_value/access_spec.rb
563
- - spec/unit/mutant/mutator/node/named_value/constant_assignment_spec.rb
564
- - spec/unit/mutant/mutator/node/named_value/variable_assignment_spec.rb
565
- - spec/unit/mutant/mutator/node/nthref_spec.rb
566
- - spec/unit/mutant/mutator/node/op_assgn_spec.rb
567
- - spec/unit/mutant/mutator/node/or_asgn_spec.rb
568
- - spec/unit/mutant/mutator/node/redo_spec.rb
569
- - spec/unit/mutant/mutator/node/rescue_spec.rb
570
- - spec/unit/mutant/mutator/node/restarg_spec.rb
571
- - spec/unit/mutant/mutator/node/return_spec.rb
572
- - spec/unit/mutant/mutator/node/send_spec.rb
573
- - spec/unit/mutant/mutator/node/super_spec.rb
574
- - spec/unit/mutant/mutator/node/yield_spec.rb
558
+ - spec/unit/mutant/mutator/node_spec.rb
575
559
  - spec/unit/mutant/mutator_spec.rb
576
560
  - spec/unit/mutant/reporter/null_spec.rb
577
561
  - spec/unit/mutant/require_highjack_spec.rb