mutant 0.9.9 → 0.9.14

Sign up to get free protection for your applications and to get access to all the features.
Files changed (252) hide show
  1. checksums.yaml +4 -4
  2. data/lib/mutant.rb +2 -4
  3. data/lib/mutant/bootstrap.rb +14 -1
  4. data/lib/mutant/cli.rb +6 -0
  5. data/lib/mutant/isolation.rb +1 -1
  6. data/lib/mutant/isolation/fork.rb +2 -2
  7. data/lib/mutant/isolation/none.rb +1 -1
  8. data/lib/mutant/matcher/config.rb +2 -0
  9. data/lib/mutant/meta/example.rb +16 -4
  10. data/lib/mutant/meta/example/dsl.rb +33 -16
  11. data/lib/mutant/meta/example/verification.rb +70 -28
  12. data/lib/mutant/minitest/coverage.rb +53 -0
  13. data/lib/mutant/mutator/node.rb +2 -2
  14. data/lib/mutant/mutator/node/block_pass.rb +29 -0
  15. data/lib/mutant/mutator/node/{dstr.rb → dynamic_literal.rb} +7 -5
  16. data/lib/mutant/mutator/node/index.rb +4 -4
  17. data/lib/mutant/mutator/node/literal/range.rb +4 -1
  18. data/lib/mutant/mutator/node/noop.rb +1 -1
  19. data/lib/mutant/mutator/node/op_asgn.rb +15 -1
  20. data/lib/mutant/mutator/node/send.rb +25 -1
  21. data/lib/mutant/mutator/node/send/attribute_assignment.rb +1 -0
  22. data/lib/mutant/reporter/cli/printer.rb +2 -2
  23. data/lib/mutant/reporter/cli/printer/isolation_result.rb +9 -3
  24. data/lib/mutant/reporter/cli/printer/mutation_result.rb +1 -1
  25. data/lib/mutant/subject/method/instance.rb +41 -2
  26. data/lib/mutant/version.rb +1 -1
  27. metadata +59 -347
  28. data/.github/workflows/ci.yml +0 -121
  29. data/.gitignore +0 -38
  30. data/.rspec +0 -5
  31. data/.rubocop.yml +0 -7
  32. data/Changelog.md +0 -81
  33. data/Gemfile +0 -7
  34. data/Gemfile.lock +0 -167
  35. data/Gemfile.shared +0 -10
  36. data/README.md +0 -178
  37. data/Rakefile +0 -5
  38. data/config/devtools.yml +0 -2
  39. data/config/reek.yml +0 -139
  40. data/config/rubocop.yml +0 -205
  41. data/config/yardstick.yml +0 -2
  42. data/docs/commercial-support.md +0 -14
  43. data/docs/concurrency.md +0 -39
  44. data/docs/incremental.md +0 -76
  45. data/docs/known-problems.md +0 -30
  46. data/docs/limitations.md +0 -50
  47. data/docs/mutant-minitest.md +0 -149
  48. data/docs/mutant-rspec.md +0 -130
  49. data/docs/nomenclature.md +0 -82
  50. data/docs/reading-reports.md +0 -74
  51. data/lib/mutant/color.rb +0 -40
  52. data/lib/mutant/diff.rb +0 -97
  53. data/lib/mutant/mutator/node/dsym.rb +0 -22
  54. data/meta/and.rb +0 -13
  55. data/meta/and_asgn.rb +0 -14
  56. data/meta/array.rb +0 -27
  57. data/meta/begin.rb +0 -20
  58. data/meta/block.rb +0 -199
  59. data/meta/block_pass.rb +0 -8
  60. data/meta/blockarg.rb +0 -10
  61. data/meta/break.rb +0 -9
  62. data/meta/case.rb +0 -217
  63. data/meta/casgn.rb +0 -25
  64. data/meta/cbase.rb +0 -8
  65. data/meta/class.rb +0 -12
  66. data/meta/const.rb +0 -17
  67. data/meta/csend.rb +0 -10
  68. data/meta/cvar.rb +0 -7
  69. data/meta/cvasgn.rb +0 -9
  70. data/meta/date.rb +0 -59
  71. data/meta/def.rb +0 -196
  72. data/meta/defined.rb +0 -9
  73. data/meta/dstr.rb +0 -13
  74. data/meta/dsym.rb +0 -14
  75. data/meta/ensure.rb +0 -8
  76. data/meta/false.rb +0 -7
  77. data/meta/file.rb +0 -5
  78. data/meta/float.rb +0 -37
  79. data/meta/gvar.rb +0 -7
  80. data/meta/gvasgn.rb +0 -9
  81. data/meta/hash.rb +0 -20
  82. data/meta/if.rb +0 -72
  83. data/meta/index.rb +0 -133
  84. data/meta/indexasgn.rb +0 -31
  85. data/meta/int.rb +0 -18
  86. data/meta/ivar.rb +0 -8
  87. data/meta/ivasgn.rb +0 -22
  88. data/meta/kwarg.rb +0 -10
  89. data/meta/kwbegin.rb +0 -8
  90. data/meta/kwoptarg.rb +0 -13
  91. data/meta/lambda.rb +0 -23
  92. data/meta/line.rb +0 -5
  93. data/meta/lvar.rb +0 -16
  94. data/meta/lvasgn.rb +0 -24
  95. data/meta/masgn.rb +0 -7
  96. data/meta/match_current_line.rb +0 -14
  97. data/meta/next.rb +0 -10
  98. data/meta/nil.rb +0 -5
  99. data/meta/nthref.rb +0 -14
  100. data/meta/op_assgn.rb +0 -17
  101. data/meta/or.rb +0 -13
  102. data/meta/or_asgn.rb +0 -50
  103. data/meta/range.rb +0 -39
  104. data/meta/redo.rb +0 -5
  105. data/meta/regexp.rb +0 -80
  106. data/meta/regopt.rb +0 -10
  107. data/meta/rescue.rb +0 -84
  108. data/meta/return.rb +0 -16
  109. data/meta/sclass.rb +0 -12
  110. data/meta/self.rb +0 -7
  111. data/meta/send.rb +0 -600
  112. data/meta/str.rb +0 -7
  113. data/meta/super.rb +0 -27
  114. data/meta/sym.rb +0 -8
  115. data/meta/true.rb +0 -7
  116. data/meta/until.rb +0 -16
  117. data/meta/while.rb +0 -24
  118. data/meta/yield.rb +0 -9
  119. data/mutant-minitest.gemspec +0 -22
  120. data/mutant-rspec.gemspec +0 -22
  121. data/mutant.gemspec +0 -41
  122. data/mutant.sh +0 -12
  123. data/mutant.yml +0 -6
  124. data/spec/integration/mutant/corpus_spec.rb +0 -15
  125. data/spec/integration/mutant/isolation/fork_spec.rb +0 -28
  126. data/spec/integration/mutant/minitest_spec.rb +0 -11
  127. data/spec/integration/mutant/null_spec.rb +0 -16
  128. data/spec/integration/mutant/rspec_spec.rb +0 -15
  129. data/spec/integration/mutant/test_mutator_handles_types_spec.rb +0 -9
  130. data/spec/integrations.yml +0 -63
  131. data/spec/shared/base_behavior.rb +0 -45
  132. data/spec/shared/framework_integration_behavior.rb +0 -70
  133. data/spec/shared/method_matcher_behavior.rb +0 -47
  134. data/spec/spec_helper.rb +0 -75
  135. data/spec/support/corpus.rb +0 -318
  136. data/spec/support/file_system.rb +0 -62
  137. data/spec/support/ice_nine_config.rb +0 -10
  138. data/spec/support/ruby_vm.rb +0 -84
  139. data/spec/support/shared_context.rb +0 -169
  140. data/spec/support/test_app.rb +0 -7
  141. data/spec/support/warnings.yml +0 -6
  142. data/spec/support/xspec.rb +0 -183
  143. data/spec/unit/mutant/ast/find_metaclass_containing_spec.rb +0 -64
  144. data/spec/unit/mutant/ast/meta/optarg_spec.rb +0 -24
  145. data/spec/unit/mutant/ast/meta/send/proc_predicate_spec.rb +0 -30
  146. data/spec/unit/mutant/ast/meta/send/receiver_possible_top_level_const_predicate_spec.rb +0 -39
  147. data/spec/unit/mutant/ast/meta/send_spec.rb +0 -42
  148. data/spec/unit/mutant/ast/named_children_spec.rb +0 -89
  149. data/spec/unit/mutant/ast/sexp_spec.rb +0 -38
  150. data/spec/unit/mutant/ast_spec.rb +0 -57
  151. data/spec/unit/mutant/bootstrap_spec.rb +0 -216
  152. data/spec/unit/mutant/cli_spec.rb +0 -305
  153. data/spec/unit/mutant/clock_monotonic_spec.rb +0 -52
  154. data/spec/unit/mutant/config_spec.rb +0 -126
  155. data/spec/unit/mutant/context_spec.rb +0 -111
  156. data/spec/unit/mutant/diff_spec.rb +0 -189
  157. data/spec/unit/mutant/env_spec.rb +0 -229
  158. data/spec/unit/mutant/expression/method_spec.rb +0 -62
  159. data/spec/unit/mutant/expression/methods_spec.rb +0 -66
  160. data/spec/unit/mutant/expression/namespace/exact_spec.rb +0 -28
  161. data/spec/unit/mutant/expression/namespace/recursive_spec.rb +0 -66
  162. data/spec/unit/mutant/expression/parser_spec.rb +0 -65
  163. data/spec/unit/mutant/expression_spec.rb +0 -45
  164. data/spec/unit/mutant/integration/rspec_spec.rb +0 -201
  165. data/spec/unit/mutant/integration_spec.rb +0 -150
  166. data/spec/unit/mutant/isolation/fork_spec.rb +0 -309
  167. data/spec/unit/mutant/isolation/none_spec.rb +0 -23
  168. data/spec/unit/mutant/isolation/result_spec.rb +0 -73
  169. data/spec/unit/mutant/license_spec.rb +0 -305
  170. data/spec/unit/mutant/loader_spec.rb +0 -79
  171. data/spec/unit/mutant/matcher/chain_spec.rb +0 -26
  172. data/spec/unit/mutant/matcher/compiler_spec.rb +0 -0
  173. data/spec/unit/mutant/matcher/config_spec.rb +0 -47
  174. data/spec/unit/mutant/matcher/filter_spec.rb +0 -22
  175. data/spec/unit/mutant/matcher/method/instance_spec.rb +0 -164
  176. data/spec/unit/mutant/matcher/method/metaclass_spec.rb +0 -108
  177. data/spec/unit/mutant/matcher/method/singleton_spec.rb +0 -90
  178. data/spec/unit/mutant/matcher/methods/instance_spec.rb +0 -54
  179. data/spec/unit/mutant/matcher/methods/metaclass_spec.rb +0 -62
  180. data/spec/unit/mutant/matcher/methods/singleton_spec.rb +0 -51
  181. data/spec/unit/mutant/matcher/namespace_spec.rb +0 -39
  182. data/spec/unit/mutant/matcher/null_spec.rb +0 -12
  183. data/spec/unit/mutant/matcher/scope_spec.rb +0 -45
  184. data/spec/unit/mutant/matcher/static_spec.rb +0 -13
  185. data/spec/unit/mutant/matcher_spec.rb +0 -102
  186. data/spec/unit/mutant/meta/example/dsl_spec.rb +0 -108
  187. data/spec/unit/mutant/meta/example/verification_spec.rb +0 -154
  188. data/spec/unit/mutant/meta/example_spec.rb +0 -34
  189. data/spec/unit/mutant/mutation_spec.rb +0 -140
  190. data/spec/unit/mutant/mutator/node_spec.rb +0 -47
  191. data/spec/unit/mutant/mutator_spec.rb +0 -21
  192. data/spec/unit/mutant/parallel/driver_spec.rb +0 -126
  193. data/spec/unit/mutant/parallel/source/array_spec.rb +0 -57
  194. data/spec/unit/mutant/parallel/worker_spec.rb +0 -206
  195. data/spec/unit/mutant/parallel_spec.rb +0 -115
  196. data/spec/unit/mutant/parser_spec.rb +0 -26
  197. data/spec/unit/mutant/range_spec.rb +0 -141
  198. data/spec/unit/mutant/registry_spec.rb +0 -74
  199. data/spec/unit/mutant/reporter/cli/printer/config_spec.rb +0 -17
  200. data/spec/unit/mutant/reporter/cli/printer/env_progress_spec.rb +0 -85
  201. data/spec/unit/mutant/reporter/cli/printer/env_result_spec.rb +0 -45
  202. data/spec/unit/mutant/reporter/cli/printer/isolation_result_spec.rb +0 -132
  203. data/spec/unit/mutant/reporter/cli/printer/mutation_progress_result_spec.rb +0 -25
  204. data/spec/unit/mutant/reporter/cli/printer/mutation_result_spec.rb +0 -153
  205. data/spec/unit/mutant/reporter/cli/printer/status_progressive_spec.rb +0 -45
  206. data/spec/unit/mutant/reporter/cli/printer/subject_progress_spec.rb +0 -36
  207. data/spec/unit/mutant/reporter/cli/printer/subject_result_spec.rb +0 -44
  208. data/spec/unit/mutant/reporter/cli/printer/test_result_spec.rb +0 -16
  209. data/spec/unit/mutant/reporter/cli/printer_spec.rb +0 -163
  210. data/spec/unit/mutant/reporter/cli_spec.rb +0 -137
  211. data/spec/unit/mutant/reporter/null_spec.rb +0 -14
  212. data/spec/unit/mutant/reporter/sequence_spec.rb +0 -31
  213. data/spec/unit/mutant/repository/diff/ranges_spec.rb +0 -180
  214. data/spec/unit/mutant/repository/diff_spec.rb +0 -122
  215. data/spec/unit/mutant/repository/subject_filter_spec.rb +0 -30
  216. data/spec/unit/mutant/require_highjack_spec.rb +0 -73
  217. data/spec/unit/mutant/result/class_methods_spec.rb +0 -51
  218. data/spec/unit/mutant/result/env_spec.rb +0 -161
  219. data/spec/unit/mutant/result/mutation_spec.rb +0 -70
  220. data/spec/unit/mutant/result/subject_spec.rb +0 -111
  221. data/spec/unit/mutant/result/test_spec.rb +0 -14
  222. data/spec/unit/mutant/result_spec.rb +0 -33
  223. data/spec/unit/mutant/runner/sink_spec.rb +0 -174
  224. data/spec/unit/mutant/runner_spec.rb +0 -121
  225. data/spec/unit/mutant/selector/expression_spec.rb +0 -62
  226. data/spec/unit/mutant/selector/null_spec.rb +0 -17
  227. data/spec/unit/mutant/subject/method/instance_spec.rb +0 -181
  228. data/spec/unit/mutant/subject/method/metaclass_spec.rb +0 -63
  229. data/spec/unit/mutant/subject/method/singleton_spec.rb +0 -61
  230. data/spec/unit/mutant/subject_spec.rb +0 -93
  231. data/spec/unit/mutant/transform/array_spec.rb +0 -92
  232. data/spec/unit/mutant/transform/bool_spec.rb +0 -63
  233. data/spec/unit/mutant/transform/error_spec.rb +0 -132
  234. data/spec/unit/mutant/transform/exception_spec.rb +0 -44
  235. data/spec/unit/mutant/transform/hash_spec.rb +0 -236
  236. data/spec/unit/mutant/transform/index_spec.rb +0 -92
  237. data/spec/unit/mutant/transform/named_spec.rb +0 -49
  238. data/spec/unit/mutant/transform/primitive_spec.rb +0 -56
  239. data/spec/unit/mutant/transform/sequence_spec.rb +0 -98
  240. data/spec/unit/mutant/util/one_spec.rb +0 -22
  241. data/spec/unit/mutant/warnings_spec.rb +0 -89
  242. data/spec/unit/mutant/world_spec.rb +0 -63
  243. data/spec/unit/mutant/zombifier_spec.rb +0 -122
  244. data/test_app/.rspec +0 -1
  245. data/test_app/Gemfile.minitest +0 -4
  246. data/test_app/Gemfile.rspec3.8 +0 -7
  247. data/test_app/lib/test_app.rb +0 -110
  248. data/test_app/lib/test_app/literal.rb +0 -35
  249. data/test_app/lib/test_app/metaclasses.rb +0 -108
  250. data/test_app/spec/spec_helper.rb +0 -9
  251. data/test_app/spec/unit/test_app/literal_spec.rb +0 -20
  252. data/test_app/test/unit/test_app/literal_test.rb +0 -16
@@ -75,7 +75,7 @@ module Mutant
75
75
  end
76
76
 
77
77
  def emit_nil
78
- emit(N_NIL) unless left_assignment?
78
+ emit(N_NIL) unless left_op_assignment?
79
79
  end
80
80
 
81
81
  def parent_node
@@ -86,7 +86,7 @@ module Mutant
86
86
  parent_node&.type
87
87
  end
88
88
 
89
- def left_assignment?
89
+ def left_op_assignment?
90
90
  AST::Types::OP_ASSIGN.include?(parent_type) && parent.node.children.first.equal?(node)
91
91
  end
92
92
 
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mutant
4
+ class Mutator
5
+ class Node
6
+ class BlockPass < self
7
+
8
+ handle(:block_pass)
9
+
10
+ children :argument
11
+
12
+ private
13
+
14
+ def dispatch
15
+ emit_argument_mutations
16
+ emit_symbol_to_proc_mutations
17
+ end
18
+
19
+ def emit_symbol_to_proc_mutations
20
+ return unless n_sym?(argument)
21
+
22
+ Send::SELECTOR_REPLACEMENTS.fetch(*argument, EMPTY_ARRAY).each do |method|
23
+ emit_argument(s(:sym, method))
24
+ end
25
+ end
26
+ end # Block
27
+ end # Node
28
+ end # Mutator
29
+ end # Mutant
@@ -3,17 +3,19 @@
3
3
  module Mutant
4
4
  class Mutator
5
5
  class Node
6
+ # Mutator for dynamic literals
7
+ class DynamicLiteral < self
6
8
 
7
- # Dstr mutator
8
- class Dstr < Generic
9
-
10
- handle(:dstr)
9
+ handle(:dstr, :dsym)
11
10
 
12
11
  private
13
12
 
14
13
  def dispatch
15
- super()
16
14
  emit_singletons
15
+
16
+ children.each_index do |index|
17
+ mutate_child(index, &method(:n_begin?))
18
+ end
17
19
  end
18
20
 
19
21
  end # Dstr
@@ -24,7 +24,7 @@ module Mutant
24
24
  end
25
25
 
26
26
  def emit_send_forms
27
- return if left_assignment?
27
+ return if left_op_assignment?
28
28
 
29
29
  SEND_REPLACEMENTS.each do |selector|
30
30
  emit(s(:send, receiver, selector, *indices))
@@ -43,7 +43,7 @@ module Mutant
43
43
 
44
44
  def mutate_indices
45
45
  children_indices(index_range).each do |index|
46
- emit_propagation(children.fetch(index)) unless left_assignment?
46
+ emit_propagation(children.fetch(index)) unless left_op_assignment?
47
47
  delete_child(index)
48
48
  mutate_child(index)
49
49
  end
@@ -77,7 +77,7 @@ module Mutant
77
77
  def dispatch
78
78
  super()
79
79
 
80
- return if left_assignment?
80
+ return if left_op_assignment?
81
81
 
82
82
  emit_index_read
83
83
  emit(children.last)
@@ -89,7 +89,7 @@ module Mutant
89
89
  end
90
90
 
91
91
  def index_range
92
- if left_assignment?
92
+ if left_op_assignment?
93
93
  NO_VALUE_RANGE
94
94
  else
95
95
  REGULAR_RANGE
@@ -21,8 +21,11 @@ module Mutant
21
21
 
22
22
  def dispatch
23
23
  emit_singletons
24
- emit_inverse
25
24
  emit_lower_bound_mutations
25
+
26
+ return unless upper_bound
27
+
28
+ emit_inverse
26
29
  emit_upper_bound_mutations
27
30
  end
28
31
 
@@ -7,7 +7,7 @@ module Mutant
7
7
  # Mutation emitter to handle noop nodes
8
8
  class Noop < self
9
9
 
10
- handle(:__ENCODING__, :block_pass, :cbase, :lambda)
10
+ handle(:__ENCODING__, :cbase, :lambda)
11
11
 
12
12
  private
13
13
 
@@ -15,10 +15,24 @@ module Mutant
15
15
 
16
16
  def dispatch
17
17
  emit_singletons
18
+
19
+ left_mutations
20
+
21
+ emit_right_mutations
22
+ end
23
+
24
+ def left_mutations
18
25
  emit_left_mutations do |node|
19
26
  !n_self?(node)
20
27
  end
21
- emit_right_mutations
28
+
29
+ emit_left_promotion if n_send?(left)
30
+ end
31
+
32
+ def emit_left_promotion
33
+ receiver = left.children.first
34
+
35
+ emit_left(s(:ivasgn, *receiver)) if n_ivar?(receiver)
22
36
  end
23
37
 
24
38
  end # OpAsgn
@@ -79,6 +79,8 @@ module Mutant
79
79
  end
80
80
 
81
81
  def emit_selector_specific_mutations
82
+ emit_array_mutation
83
+ emit_static_send
82
84
  emit_const_get_mutation
83
85
  emit_integer_mutation
84
86
  emit_dig_mutation
@@ -86,6 +88,28 @@ module Mutant
86
88
  emit_lambda_mutation
87
89
  end
88
90
 
91
+ def emit_array_mutation
92
+ return unless selector.equal?(:Array) && possible_kernel_method?
93
+
94
+ emit(s(:array, *arguments))
95
+ end
96
+
97
+ def emit_static_send
98
+ return unless %i[__send__ send public_send].include?(selector)
99
+
100
+ dynamic_selector, *actual_arguments = *arguments
101
+
102
+ return unless n_sym?(dynamic_selector)
103
+
104
+ method_name = AST::Meta::Symbol.new(dynamic_selector).name
105
+
106
+ emit(s(node.type, receiver, method_name, *actual_arguments))
107
+ end
108
+
109
+ def possible_kernel_method?
110
+ receiver.nil? || receiver.eql?(s(:const, nil, :Kernel))
111
+ end
112
+
89
113
  def emit_receiver_selector_mutations
90
114
  return unless meta.receiver_possible_top_level_const?
91
115
 
@@ -135,7 +159,7 @@ module Mutant
135
159
  end
136
160
 
137
161
  def emit_naked_receiver
138
- emit(receiver) if receiver
162
+ emit(receiver) if receiver && !left_op_assignment?
139
163
  end
140
164
 
141
165
  def mutate_arguments
@@ -8,6 +8,7 @@ module Mutant
8
8
  class AttributeAssignment < self
9
9
 
10
10
  ATTRIBUTE_RANGE = (0..-2).freeze
11
+
11
12
  private_constant(*constants(false))
12
13
 
13
14
  private
@@ -45,7 +45,7 @@ module Mutant
45
45
  private
46
46
 
47
47
  def status_color
48
- success? ? Color::GREEN : Color::RED
48
+ success? ? Unparser::Color::GREEN : Unparser::Color::RED
49
49
  end
50
50
 
51
51
  def visit_collection(printer, collection)
@@ -71,7 +71,7 @@ module Mutant
71
71
  end
72
72
 
73
73
  def colorize(color, message)
74
- color = Color::NONE unless tty?
74
+ color = Unparser::Color::NONE unless tty?
75
75
  color.format(message)
76
76
  end
77
77
 
@@ -28,7 +28,7 @@ module Mutant
28
28
  * Bug in your test suite
29
29
  * Bug in your test suite under concurrency
30
30
 
31
- The following exception was raised:
31
+ The following exception was raised while reading the killfork result:
32
32
 
33
33
  ```
34
34
  %s
@@ -60,8 +60,8 @@ module Mutant
60
60
  #
61
61
  # @return [undefined]
62
62
  def run
63
- __send__(MAP.fetch(object.class))
64
63
  print_log_messages
64
+ __send__(MAP.fetch(object.class))
65
65
  end
66
66
 
67
67
  private
@@ -73,7 +73,13 @@ module Mutant
73
73
  def print_log_messages
74
74
  log = object.log
75
75
 
76
- puts(LOG_MESSAGES % log) unless log.empty?
76
+ return if log.empty?
77
+
78
+ puts('Log messages (combined stderr and stdout):')
79
+
80
+ log.each_line do |line|
81
+ puts('[killfork] %<line>s' % { line: line })
82
+ end
77
83
  end
78
84
 
79
85
  def visit_child_error
@@ -67,7 +67,7 @@ module Mutant
67
67
  end
68
68
 
69
69
  def evil_details
70
- diff = Diff.build(mutation.original_source, mutation.source)
70
+ diff = Unparser::Diff.build(mutation.original_source, mutation.source)
71
71
  diff = color? ? diff.colorized_diff : diff.diff
72
72
  if diff
73
73
  output.write(diff)
@@ -23,18 +23,57 @@ module Mutant
23
23
  class Memoized < self
24
24
  include AST::Sexp
25
25
 
26
+ FREEZER_OPTION_VALUES = {
27
+ Adamantium::Freezer::Deep => :deep,
28
+ Adamantium::Freezer::Flat => :flat,
29
+ Adamantium::Freezer::Noop => :noop
30
+ }.freeze
31
+
32
+ private_constant(*constants(false))
33
+
26
34
  # Prepare subject for mutation insertion
27
35
  #
28
36
  # @return [self]
29
37
  def prepare
30
- scope.__send__(:memoized_methods).instance_variable_get(:@memory).delete(name)
38
+ memory.delete(name)
31
39
  super()
32
40
  end
33
41
 
34
42
  private
35
43
 
36
44
  def wrap_node(mutant)
37
- s(:begin, mutant, s(:send, nil, :memoize, s(:args, s(:sym, name))))
45
+ s(:begin, mutant, s(:send, nil, :memoize, s(:sym, name), *options))
46
+ end
47
+
48
+ # The optional AST node for adamantium memoization options
49
+ #
50
+ # @return [Array(Parser::AST::Node), nil]
51
+ def options
52
+ # rubocop:disable Style/GuardClause
53
+ if FREEZER_OPTION_VALUES.key?(freezer)
54
+ [
55
+ s(:hash,
56
+ s(:pair,
57
+ s(:sym, :freezer),
58
+ s(:sym, FREEZER_OPTION_VALUES.fetch(freezer))))
59
+ ]
60
+ end
61
+ # rubocop:enable Style/GuardClause
62
+ end
63
+
64
+ # The freezer used for memoization
65
+ #
66
+ # @return [Object]
67
+ def freezer
68
+ memory.fetch(name).instance_variable_get(:@freezer)
69
+ end
70
+ memoize :freezer, freezer: :noop
71
+
72
+ # The memory used for memoization
73
+ #
74
+ # @return [ThreadSafe::Cache]
75
+ def memory
76
+ scope.__send__(:memoized_methods).instance_variable_get(:@memory)
38
77
  end
39
78
 
40
79
  end # Memoized
@@ -2,5 +2,5 @@
2
2
 
3
3
  module Mutant
4
4
  # Current mutant version
5
- VERSION = '0.9.9'
5
+ VERSION = '0.9.14'
6
6
  end # Mutant
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mutant
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.9
4
+ version: 0.9.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Markus Schirp
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-08-24 00:00:00.000000000 Z
11
+ date: 2020-10-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: abstract_type
@@ -84,14 +84,14 @@ dependencies:
84
84
  name: diff-lcs
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - '='
87
+ - - "~>"
88
88
  - !ruby/object:Gem::Version
89
89
  version: '1.3'
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: '1.3'
97
97
  - !ruby/object:Gem::Dependency
@@ -184,14 +184,14 @@ dependencies:
184
184
  requirements:
185
185
  - - "~>"
186
186
  - !ruby/object:Gem::Version
187
- version: 0.4.6
187
+ version: 0.5.2
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
- version: 0.4.6
194
+ version: 0.5.2
195
195
  - !ruby/object:Gem::Dependency
196
196
  name: variable
197
197
  requirement: !ruby/object:Gem::Requirement
@@ -207,33 +207,75 @@ dependencies:
207
207
  - !ruby/object:Gem::Version
208
208
  version: 0.0.1
209
209
  - !ruby/object:Gem::Dependency
210
- name: devtools
210
+ name: parallel
211
211
  requirement: !ruby/object:Gem::Requirement
212
212
  requirements:
213
213
  - - "~>"
214
214
  - !ruby/object:Gem::Version
215
- version: 0.1.25
215
+ version: '1.3'
216
216
  type: :development
217
217
  prerelease: false
218
218
  version_requirements: !ruby/object:Gem::Requirement
219
219
  requirements:
220
220
  - - "~>"
221
221
  - !ruby/object:Gem::Version
222
- version: 0.1.25
222
+ version: '1.3'
223
223
  - !ruby/object:Gem::Dependency
224
- name: parallel
224
+ name: rspec
225
225
  requirement: !ruby/object:Gem::Requirement
226
226
  requirements:
227
227
  - - "~>"
228
228
  - !ruby/object:Gem::Version
229
- version: '1.3'
229
+ version: '3.9'
230
230
  type: :development
231
231
  prerelease: false
232
232
  version_requirements: !ruby/object:Gem::Requirement
233
233
  requirements:
234
234
  - - "~>"
235
235
  - !ruby/object:Gem::Version
236
- version: '1.3'
236
+ version: '3.9'
237
+ - !ruby/object:Gem::Dependency
238
+ name: rspec-core
239
+ requirement: !ruby/object:Gem::Requirement
240
+ requirements:
241
+ - - "~>"
242
+ - !ruby/object:Gem::Version
243
+ version: '3.9'
244
+ type: :development
245
+ prerelease: false
246
+ version_requirements: !ruby/object:Gem::Requirement
247
+ requirements:
248
+ - - "~>"
249
+ - !ruby/object:Gem::Version
250
+ version: '3.9'
251
+ - !ruby/object:Gem::Dependency
252
+ name: rspec-its
253
+ requirement: !ruby/object:Gem::Requirement
254
+ requirements:
255
+ - - "~>"
256
+ - !ruby/object:Gem::Version
257
+ version: 1.2.0
258
+ type: :development
259
+ prerelease: false
260
+ version_requirements: !ruby/object:Gem::Requirement
261
+ requirements:
262
+ - - "~>"
263
+ - !ruby/object:Gem::Version
264
+ version: 1.2.0
265
+ - !ruby/object:Gem::Dependency
266
+ name: rubocop
267
+ requirement: !ruby/object:Gem::Requirement
268
+ requirements:
269
+ - - "~>"
270
+ - !ruby/object:Gem::Version
271
+ version: 0.79.0
272
+ type: :development
273
+ prerelease: false
274
+ version_requirements: !ruby/object:Gem::Requirement
275
+ requirements:
276
+ - - "~>"
277
+ - !ruby/object:Gem::Version
278
+ version: 0.79.0
237
279
  description: Mutation Testing for Ruby.
238
280
  email:
239
281
  - mbj@schirp-dso.com
@@ -243,31 +285,8 @@ extensions: []
243
285
  extra_rdoc_files:
244
286
  - LICENSE
245
287
  files:
246
- - ".github/workflows/ci.yml"
247
- - ".gitignore"
248
- - ".rspec"
249
- - ".rubocop.yml"
250
- - Changelog.md
251
- - Gemfile
252
- - Gemfile.lock
253
- - Gemfile.shared
254
288
  - LICENSE
255
- - README.md
256
- - Rakefile
257
289
  - bin/mutant
258
- - config/devtools.yml
259
- - config/reek.yml
260
- - config/rubocop.yml
261
- - config/yardstick.yml
262
- - docs/commercial-support.md
263
- - docs/concurrency.md
264
- - docs/incremental.md
265
- - docs/known-problems.md
266
- - docs/limitations.md
267
- - docs/mutant-minitest.md
268
- - docs/mutant-rspec.md
269
- - docs/nomenclature.md
270
- - docs/reading-reports.md
271
290
  - lib/mutant.rb
272
291
  - lib/mutant/ast.rb
273
292
  - lib/mutant/ast/find_metaclass_containing.rb
@@ -284,10 +303,8 @@ files:
284
303
  - lib/mutant/ast/types.rb
285
304
  - lib/mutant/bootstrap.rb
286
305
  - lib/mutant/cli.rb
287
- - lib/mutant/color.rb
288
306
  - lib/mutant/config.rb
289
307
  - lib/mutant/context.rb
290
- - lib/mutant/diff.rb
291
308
  - lib/mutant/env.rb
292
309
  - lib/mutant/expression.rb
293
310
  - lib/mutant/expression/method.rb
@@ -321,6 +338,7 @@ files:
321
338
  - lib/mutant/meta/example.rb
322
339
  - lib/mutant/meta/example/dsl.rb
323
340
  - lib/mutant/meta/example/verification.rb
341
+ - lib/mutant/minitest/coverage.rb
324
342
  - lib/mutant/mutation.rb
325
343
  - lib/mutant/mutator.rb
326
344
  - lib/mutant/mutator/node.rb
@@ -330,6 +348,7 @@ files:
330
348
  - lib/mutant/mutator/node/begin.rb
331
349
  - lib/mutant/mutator/node/binary.rb
332
350
  - lib/mutant/mutator/node/block.rb
351
+ - lib/mutant/mutator/node/block_pass.rb
333
352
  - lib/mutant/mutator/node/break.rb
334
353
  - lib/mutant/mutator/node/case.rb
335
354
  - lib/mutant/mutator/node/class.rb
@@ -337,8 +356,7 @@ files:
337
356
  - lib/mutant/mutator/node/const.rb
338
357
  - lib/mutant/mutator/node/define.rb
339
358
  - lib/mutant/mutator/node/defined.rb
340
- - lib/mutant/mutator/node/dstr.rb
341
- - lib/mutant/mutator/node/dsym.rb
359
+ - lib/mutant/mutator/node/dynamic_literal.rb
342
360
  - lib/mutant/mutator/node/generic.rb
343
361
  - lib/mutant/mutator/node/if.rb
344
362
  - lib/mutant/mutator/node/index.rb
@@ -430,205 +448,6 @@ files:
430
448
  - lib/mutant/version.rb
431
449
  - lib/mutant/warnings.rb
432
450
  - lib/mutant/zombifier.rb
433
- - meta/and.rb
434
- - meta/and_asgn.rb
435
- - meta/array.rb
436
- - meta/begin.rb
437
- - meta/block.rb
438
- - meta/block_pass.rb
439
- - meta/blockarg.rb
440
- - meta/break.rb
441
- - meta/case.rb
442
- - meta/casgn.rb
443
- - meta/cbase.rb
444
- - meta/class.rb
445
- - meta/const.rb
446
- - meta/csend.rb
447
- - meta/cvar.rb
448
- - meta/cvasgn.rb
449
- - meta/date.rb
450
- - meta/def.rb
451
- - meta/defined.rb
452
- - meta/dstr.rb
453
- - meta/dsym.rb
454
- - meta/ensure.rb
455
- - meta/false.rb
456
- - meta/file.rb
457
- - meta/float.rb
458
- - meta/gvar.rb
459
- - meta/gvasgn.rb
460
- - meta/hash.rb
461
- - meta/if.rb
462
- - meta/index.rb
463
- - meta/indexasgn.rb
464
- - meta/int.rb
465
- - meta/ivar.rb
466
- - meta/ivasgn.rb
467
- - meta/kwarg.rb
468
- - meta/kwbegin.rb
469
- - meta/kwoptarg.rb
470
- - meta/lambda.rb
471
- - meta/line.rb
472
- - meta/lvar.rb
473
- - meta/lvasgn.rb
474
- - meta/masgn.rb
475
- - meta/match_current_line.rb
476
- - meta/next.rb
477
- - meta/nil.rb
478
- - meta/nthref.rb
479
- - meta/op_assgn.rb
480
- - meta/or.rb
481
- - meta/or_asgn.rb
482
- - meta/range.rb
483
- - meta/redo.rb
484
- - meta/regexp.rb
485
- - meta/regopt.rb
486
- - meta/rescue.rb
487
- - meta/return.rb
488
- - meta/sclass.rb
489
- - meta/self.rb
490
- - meta/send.rb
491
- - meta/str.rb
492
- - meta/super.rb
493
- - meta/sym.rb
494
- - meta/true.rb
495
- - meta/until.rb
496
- - meta/while.rb
497
- - meta/yield.rb
498
- - mutant-minitest.gemspec
499
- - mutant-rspec.gemspec
500
- - mutant.gemspec
501
- - mutant.sh
502
- - mutant.yml
503
- - spec/integration/mutant/corpus_spec.rb
504
- - spec/integration/mutant/isolation/fork_spec.rb
505
- - spec/integration/mutant/minitest_spec.rb
506
- - spec/integration/mutant/null_spec.rb
507
- - spec/integration/mutant/rspec_spec.rb
508
- - spec/integration/mutant/test_mutator_handles_types_spec.rb
509
- - spec/integrations.yml
510
- - spec/shared/base_behavior.rb
511
- - spec/shared/framework_integration_behavior.rb
512
- - spec/shared/method_matcher_behavior.rb
513
- - spec/spec_helper.rb
514
- - spec/support/corpus.rb
515
- - spec/support/file_system.rb
516
- - spec/support/ice_nine_config.rb
517
- - spec/support/ruby_vm.rb
518
- - spec/support/shared_context.rb
519
- - spec/support/test_app.rb
520
- - spec/support/warnings.yml
521
- - spec/support/xspec.rb
522
- - spec/unit/mutant/ast/find_metaclass_containing_spec.rb
523
- - spec/unit/mutant/ast/meta/optarg_spec.rb
524
- - spec/unit/mutant/ast/meta/send/proc_predicate_spec.rb
525
- - spec/unit/mutant/ast/meta/send/receiver_possible_top_level_const_predicate_spec.rb
526
- - spec/unit/mutant/ast/meta/send_spec.rb
527
- - spec/unit/mutant/ast/named_children_spec.rb
528
- - spec/unit/mutant/ast/sexp_spec.rb
529
- - spec/unit/mutant/ast_spec.rb
530
- - spec/unit/mutant/bootstrap_spec.rb
531
- - spec/unit/mutant/cli_spec.rb
532
- - spec/unit/mutant/clock_monotonic_spec.rb
533
- - spec/unit/mutant/config_spec.rb
534
- - spec/unit/mutant/context_spec.rb
535
- - spec/unit/mutant/diff_spec.rb
536
- - spec/unit/mutant/env_spec.rb
537
- - spec/unit/mutant/expression/method_spec.rb
538
- - spec/unit/mutant/expression/methods_spec.rb
539
- - spec/unit/mutant/expression/namespace/exact_spec.rb
540
- - spec/unit/mutant/expression/namespace/recursive_spec.rb
541
- - spec/unit/mutant/expression/parser_spec.rb
542
- - spec/unit/mutant/expression_spec.rb
543
- - spec/unit/mutant/integration/rspec_spec.rb
544
- - spec/unit/mutant/integration_spec.rb
545
- - spec/unit/mutant/isolation/fork_spec.rb
546
- - spec/unit/mutant/isolation/none_spec.rb
547
- - spec/unit/mutant/isolation/result_spec.rb
548
- - spec/unit/mutant/license_spec.rb
549
- - spec/unit/mutant/loader_spec.rb
550
- - spec/unit/mutant/matcher/chain_spec.rb
551
- - spec/unit/mutant/matcher/compiler_spec.rb
552
- - spec/unit/mutant/matcher/config_spec.rb
553
- - spec/unit/mutant/matcher/filter_spec.rb
554
- - spec/unit/mutant/matcher/method/instance_spec.rb
555
- - spec/unit/mutant/matcher/method/metaclass_spec.rb
556
- - spec/unit/mutant/matcher/method/singleton_spec.rb
557
- - spec/unit/mutant/matcher/methods/instance_spec.rb
558
- - spec/unit/mutant/matcher/methods/metaclass_spec.rb
559
- - spec/unit/mutant/matcher/methods/singleton_spec.rb
560
- - spec/unit/mutant/matcher/namespace_spec.rb
561
- - spec/unit/mutant/matcher/null_spec.rb
562
- - spec/unit/mutant/matcher/scope_spec.rb
563
- - spec/unit/mutant/matcher/static_spec.rb
564
- - spec/unit/mutant/matcher_spec.rb
565
- - spec/unit/mutant/meta/example/dsl_spec.rb
566
- - spec/unit/mutant/meta/example/verification_spec.rb
567
- - spec/unit/mutant/meta/example_spec.rb
568
- - spec/unit/mutant/mutation_spec.rb
569
- - spec/unit/mutant/mutator/node_spec.rb
570
- - spec/unit/mutant/mutator_spec.rb
571
- - spec/unit/mutant/parallel/driver_spec.rb
572
- - spec/unit/mutant/parallel/source/array_spec.rb
573
- - spec/unit/mutant/parallel/worker_spec.rb
574
- - spec/unit/mutant/parallel_spec.rb
575
- - spec/unit/mutant/parser_spec.rb
576
- - spec/unit/mutant/range_spec.rb
577
- - spec/unit/mutant/registry_spec.rb
578
- - spec/unit/mutant/reporter/cli/printer/config_spec.rb
579
- - spec/unit/mutant/reporter/cli/printer/env_progress_spec.rb
580
- - spec/unit/mutant/reporter/cli/printer/env_result_spec.rb
581
- - spec/unit/mutant/reporter/cli/printer/isolation_result_spec.rb
582
- - spec/unit/mutant/reporter/cli/printer/mutation_progress_result_spec.rb
583
- - spec/unit/mutant/reporter/cli/printer/mutation_result_spec.rb
584
- - spec/unit/mutant/reporter/cli/printer/status_progressive_spec.rb
585
- - spec/unit/mutant/reporter/cli/printer/subject_progress_spec.rb
586
- - spec/unit/mutant/reporter/cli/printer/subject_result_spec.rb
587
- - spec/unit/mutant/reporter/cli/printer/test_result_spec.rb
588
- - spec/unit/mutant/reporter/cli/printer_spec.rb
589
- - spec/unit/mutant/reporter/cli_spec.rb
590
- - spec/unit/mutant/reporter/null_spec.rb
591
- - spec/unit/mutant/reporter/sequence_spec.rb
592
- - spec/unit/mutant/repository/diff/ranges_spec.rb
593
- - spec/unit/mutant/repository/diff_spec.rb
594
- - spec/unit/mutant/repository/subject_filter_spec.rb
595
- - spec/unit/mutant/require_highjack_spec.rb
596
- - spec/unit/mutant/result/class_methods_spec.rb
597
- - spec/unit/mutant/result/env_spec.rb
598
- - spec/unit/mutant/result/mutation_spec.rb
599
- - spec/unit/mutant/result/subject_spec.rb
600
- - spec/unit/mutant/result/test_spec.rb
601
- - spec/unit/mutant/result_spec.rb
602
- - spec/unit/mutant/runner/sink_spec.rb
603
- - spec/unit/mutant/runner_spec.rb
604
- - spec/unit/mutant/selector/expression_spec.rb
605
- - spec/unit/mutant/selector/null_spec.rb
606
- - spec/unit/mutant/subject/method/instance_spec.rb
607
- - spec/unit/mutant/subject/method/metaclass_spec.rb
608
- - spec/unit/mutant/subject/method/singleton_spec.rb
609
- - spec/unit/mutant/subject_spec.rb
610
- - spec/unit/mutant/transform/array_spec.rb
611
- - spec/unit/mutant/transform/bool_spec.rb
612
- - spec/unit/mutant/transform/error_spec.rb
613
- - spec/unit/mutant/transform/exception_spec.rb
614
- - spec/unit/mutant/transform/hash_spec.rb
615
- - spec/unit/mutant/transform/index_spec.rb
616
- - spec/unit/mutant/transform/named_spec.rb
617
- - spec/unit/mutant/transform/primitive_spec.rb
618
- - spec/unit/mutant/transform/sequence_spec.rb
619
- - spec/unit/mutant/util/one_spec.rb
620
- - spec/unit/mutant/warnings_spec.rb
621
- - spec/unit/mutant/world_spec.rb
622
- - spec/unit/mutant/zombifier_spec.rb
623
- - test_app/.rspec
624
- - test_app/Gemfile.minitest
625
- - test_app/Gemfile.rspec3.8
626
- - test_app/lib/test_app.rb
627
- - test_app/lib/test_app/literal.rb
628
- - test_app/lib/test_app/metaclasses.rb
629
- - test_app/spec/spec_helper.rb
630
- - test_app/spec/unit/test_app/literal_spec.rb
631
- - test_app/test/unit/test_app/literal_test.rb
632
451
  homepage: https://github.com/mbj/mutant
633
452
  licenses:
634
453
  - Nonstandard
@@ -648,115 +467,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
648
467
  - !ruby/object:Gem::Version
649
468
  version: '0'
650
469
  requirements: []
651
- rubygems_version: 3.1.2
470
+ rubygems_version: 3.1.4
652
471
  signing_key:
653
472
  specification_version: 4
654
473
  summary: ''
655
- test_files:
656
- - spec/integration/mutant/corpus_spec.rb
657
- - spec/integration/mutant/isolation/fork_spec.rb
658
- - spec/integration/mutant/minitest_spec.rb
659
- - spec/integration/mutant/null_spec.rb
660
- - spec/integration/mutant/rspec_spec.rb
661
- - spec/integration/mutant/test_mutator_handles_types_spec.rb
662
- - spec/unit/mutant/ast/find_metaclass_containing_spec.rb
663
- - spec/unit/mutant/ast/meta/optarg_spec.rb
664
- - spec/unit/mutant/ast/meta/send/proc_predicate_spec.rb
665
- - spec/unit/mutant/ast/meta/send/receiver_possible_top_level_const_predicate_spec.rb
666
- - spec/unit/mutant/ast/meta/send_spec.rb
667
- - spec/unit/mutant/ast/named_children_spec.rb
668
- - spec/unit/mutant/ast/sexp_spec.rb
669
- - spec/unit/mutant/ast_spec.rb
670
- - spec/unit/mutant/bootstrap_spec.rb
671
- - spec/unit/mutant/cli_spec.rb
672
- - spec/unit/mutant/clock_monotonic_spec.rb
673
- - spec/unit/mutant/config_spec.rb
674
- - spec/unit/mutant/context_spec.rb
675
- - spec/unit/mutant/diff_spec.rb
676
- - spec/unit/mutant/env_spec.rb
677
- - spec/unit/mutant/expression/method_spec.rb
678
- - spec/unit/mutant/expression/methods_spec.rb
679
- - spec/unit/mutant/expression/namespace/exact_spec.rb
680
- - spec/unit/mutant/expression/namespace/recursive_spec.rb
681
- - spec/unit/mutant/expression/parser_spec.rb
682
- - spec/unit/mutant/expression_spec.rb
683
- - spec/unit/mutant/integration/rspec_spec.rb
684
- - spec/unit/mutant/integration_spec.rb
685
- - spec/unit/mutant/isolation/fork_spec.rb
686
- - spec/unit/mutant/isolation/none_spec.rb
687
- - spec/unit/mutant/isolation/result_spec.rb
688
- - spec/unit/mutant/license_spec.rb
689
- - spec/unit/mutant/loader_spec.rb
690
- - spec/unit/mutant/matcher/chain_spec.rb
691
- - spec/unit/mutant/matcher/compiler_spec.rb
692
- - spec/unit/mutant/matcher/config_spec.rb
693
- - spec/unit/mutant/matcher/filter_spec.rb
694
- - spec/unit/mutant/matcher/method/instance_spec.rb
695
- - spec/unit/mutant/matcher/method/metaclass_spec.rb
696
- - spec/unit/mutant/matcher/method/singleton_spec.rb
697
- - spec/unit/mutant/matcher/methods/instance_spec.rb
698
- - spec/unit/mutant/matcher/methods/metaclass_spec.rb
699
- - spec/unit/mutant/matcher/methods/singleton_spec.rb
700
- - spec/unit/mutant/matcher/namespace_spec.rb
701
- - spec/unit/mutant/matcher/null_spec.rb
702
- - spec/unit/mutant/matcher/scope_spec.rb
703
- - spec/unit/mutant/matcher/static_spec.rb
704
- - spec/unit/mutant/matcher_spec.rb
705
- - spec/unit/mutant/meta/example/dsl_spec.rb
706
- - spec/unit/mutant/meta/example/verification_spec.rb
707
- - spec/unit/mutant/meta/example_spec.rb
708
- - spec/unit/mutant/mutation_spec.rb
709
- - spec/unit/mutant/mutator/node_spec.rb
710
- - spec/unit/mutant/mutator_spec.rb
711
- - spec/unit/mutant/parallel/driver_spec.rb
712
- - spec/unit/mutant/parallel/source/array_spec.rb
713
- - spec/unit/mutant/parallel/worker_spec.rb
714
- - spec/unit/mutant/parallel_spec.rb
715
- - spec/unit/mutant/parser_spec.rb
716
- - spec/unit/mutant/range_spec.rb
717
- - spec/unit/mutant/registry_spec.rb
718
- - spec/unit/mutant/reporter/cli/printer/config_spec.rb
719
- - spec/unit/mutant/reporter/cli/printer/env_progress_spec.rb
720
- - spec/unit/mutant/reporter/cli/printer/env_result_spec.rb
721
- - spec/unit/mutant/reporter/cli/printer/isolation_result_spec.rb
722
- - spec/unit/mutant/reporter/cli/printer/mutation_progress_result_spec.rb
723
- - spec/unit/mutant/reporter/cli/printer/mutation_result_spec.rb
724
- - spec/unit/mutant/reporter/cli/printer/status_progressive_spec.rb
725
- - spec/unit/mutant/reporter/cli/printer/subject_progress_spec.rb
726
- - spec/unit/mutant/reporter/cli/printer/subject_result_spec.rb
727
- - spec/unit/mutant/reporter/cli/printer/test_result_spec.rb
728
- - spec/unit/mutant/reporter/cli/printer_spec.rb
729
- - spec/unit/mutant/reporter/cli_spec.rb
730
- - spec/unit/mutant/reporter/null_spec.rb
731
- - spec/unit/mutant/reporter/sequence_spec.rb
732
- - spec/unit/mutant/repository/diff/ranges_spec.rb
733
- - spec/unit/mutant/repository/diff_spec.rb
734
- - spec/unit/mutant/repository/subject_filter_spec.rb
735
- - spec/unit/mutant/require_highjack_spec.rb
736
- - spec/unit/mutant/result/class_methods_spec.rb
737
- - spec/unit/mutant/result/env_spec.rb
738
- - spec/unit/mutant/result/mutation_spec.rb
739
- - spec/unit/mutant/result/subject_spec.rb
740
- - spec/unit/mutant/result/test_spec.rb
741
- - spec/unit/mutant/result_spec.rb
742
- - spec/unit/mutant/runner/sink_spec.rb
743
- - spec/unit/mutant/runner_spec.rb
744
- - spec/unit/mutant/selector/expression_spec.rb
745
- - spec/unit/mutant/selector/null_spec.rb
746
- - spec/unit/mutant/subject/method/instance_spec.rb
747
- - spec/unit/mutant/subject/method/metaclass_spec.rb
748
- - spec/unit/mutant/subject/method/singleton_spec.rb
749
- - spec/unit/mutant/subject_spec.rb
750
- - spec/unit/mutant/transform/array_spec.rb
751
- - spec/unit/mutant/transform/bool_spec.rb
752
- - spec/unit/mutant/transform/error_spec.rb
753
- - spec/unit/mutant/transform/exception_spec.rb
754
- - spec/unit/mutant/transform/hash_spec.rb
755
- - spec/unit/mutant/transform/index_spec.rb
756
- - spec/unit/mutant/transform/named_spec.rb
757
- - spec/unit/mutant/transform/primitive_spec.rb
758
- - spec/unit/mutant/transform/sequence_spec.rb
759
- - spec/unit/mutant/util/one_spec.rb
760
- - spec/unit/mutant/warnings_spec.rb
761
- - spec/unit/mutant/world_spec.rb
762
- - spec/unit/mutant/zombifier_spec.rb
474
+ test_files: []