mutant 0.9.9 → 0.9.14

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 (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: []