mutant 0.9.10 → 0.10.0

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 (254) hide show
  1. checksums.yaml +4 -4
  2. data/bin/mutant +16 -11
  3. data/lib/mutant.rb +8 -4
  4. data/lib/mutant/bootstrap.rb +14 -1
  5. data/lib/mutant/cli.rb +9 -162
  6. data/lib/mutant/cli/command.rb +196 -0
  7. data/lib/mutant/cli/command/root.rb +13 -0
  8. data/lib/mutant/cli/command/run.rb +151 -0
  9. data/lib/mutant/cli/command/subscription.rb +54 -0
  10. data/lib/mutant/expression.rb +0 -1
  11. data/lib/mutant/isolation.rb +1 -1
  12. data/lib/mutant/isolation/fork.rb +2 -2
  13. data/lib/mutant/isolation/none.rb +1 -1
  14. data/lib/mutant/license.rb +9 -35
  15. data/lib/mutant/license/subscription.rb +31 -9
  16. data/lib/mutant/license/subscription/commercial.rb +2 -4
  17. data/lib/mutant/license/subscription/opensource.rb +7 -7
  18. data/lib/mutant/matcher/config.rb +2 -0
  19. data/lib/mutant/meta/example.rb +16 -4
  20. data/lib/mutant/meta/example/dsl.rb +33 -16
  21. data/lib/mutant/meta/example/verification.rb +70 -28
  22. data/lib/mutant/minitest/coverage.rb +53 -0
  23. data/lib/mutant/mutator/node.rb +2 -2
  24. data/lib/mutant/mutator/node/block_pass.rb +29 -0
  25. data/lib/mutant/mutator/node/{dstr.rb → dynamic_literal.rb} +7 -5
  26. data/lib/mutant/mutator/node/index.rb +4 -4
  27. data/lib/mutant/mutator/node/literal/range.rb +5 -2
  28. data/lib/mutant/mutator/node/named_value/variable_assignment.rb +1 -1
  29. data/lib/mutant/mutator/node/noop.rb +1 -1
  30. data/lib/mutant/mutator/node/op_asgn.rb +15 -1
  31. data/lib/mutant/mutator/node/send.rb +25 -1
  32. data/lib/mutant/mutator/node/send/attribute_assignment.rb +1 -0
  33. data/lib/mutant/reporter/cli/printer/isolation_result.rb +9 -3
  34. data/lib/mutant/subject/method/instance.rb +1 -1
  35. data/lib/mutant/version.rb +1 -1
  36. metadata +18 -336
  37. data/.github/workflows/ci.yml +0 -121
  38. data/.gitignore +0 -38
  39. data/.rspec +0 -5
  40. data/.rubocop.yml +0 -210
  41. data/Changelog.md +0 -87
  42. data/Gemfile +0 -7
  43. data/Gemfile.lock +0 -107
  44. data/Gemfile.shared +0 -10
  45. data/README.md +0 -199
  46. data/Rakefile +0 -5
  47. data/config/devtools.yml +0 -2
  48. data/config/reek.yml +0 -139
  49. data/config/yardstick.yml +0 -2
  50. data/docs/commercial-support.md +0 -14
  51. data/docs/concurrency.md +0 -39
  52. data/docs/incremental.md +0 -76
  53. data/docs/known-problems.md +0 -30
  54. data/docs/limitations.md +0 -50
  55. data/docs/mutant-minitest.md +0 -149
  56. data/docs/mutant-rspec.md +0 -130
  57. data/docs/nomenclature.md +0 -82
  58. data/docs/reading-reports.md +0 -74
  59. data/lib/mutant/mutator/node/dsym.rb +0 -22
  60. data/meta/and.rb +0 -13
  61. data/meta/and_asgn.rb +0 -14
  62. data/meta/array.rb +0 -27
  63. data/meta/begin.rb +0 -20
  64. data/meta/block.rb +0 -199
  65. data/meta/block_pass.rb +0 -8
  66. data/meta/blockarg.rb +0 -10
  67. data/meta/break.rb +0 -9
  68. data/meta/case.rb +0 -217
  69. data/meta/casgn.rb +0 -25
  70. data/meta/cbase.rb +0 -8
  71. data/meta/class.rb +0 -12
  72. data/meta/const.rb +0 -17
  73. data/meta/csend.rb +0 -10
  74. data/meta/cvar.rb +0 -7
  75. data/meta/cvasgn.rb +0 -9
  76. data/meta/date.rb +0 -59
  77. data/meta/def.rb +0 -196
  78. data/meta/defined.rb +0 -9
  79. data/meta/dstr.rb +0 -13
  80. data/meta/dsym.rb +0 -14
  81. data/meta/ensure.rb +0 -8
  82. data/meta/false.rb +0 -7
  83. data/meta/file.rb +0 -5
  84. data/meta/float.rb +0 -37
  85. data/meta/gvar.rb +0 -7
  86. data/meta/gvasgn.rb +0 -9
  87. data/meta/hash.rb +0 -20
  88. data/meta/if.rb +0 -72
  89. data/meta/index.rb +0 -133
  90. data/meta/indexasgn.rb +0 -31
  91. data/meta/int.rb +0 -18
  92. data/meta/ivar.rb +0 -8
  93. data/meta/ivasgn.rb +0 -22
  94. data/meta/kwarg.rb +0 -10
  95. data/meta/kwbegin.rb +0 -8
  96. data/meta/kwoptarg.rb +0 -13
  97. data/meta/lambda.rb +0 -23
  98. data/meta/line.rb +0 -5
  99. data/meta/lvar.rb +0 -16
  100. data/meta/lvasgn.rb +0 -24
  101. data/meta/masgn.rb +0 -7
  102. data/meta/match_current_line.rb +0 -14
  103. data/meta/next.rb +0 -10
  104. data/meta/nil.rb +0 -5
  105. data/meta/nthref.rb +0 -14
  106. data/meta/op_assgn.rb +0 -17
  107. data/meta/or.rb +0 -13
  108. data/meta/or_asgn.rb +0 -50
  109. data/meta/range.rb +0 -65
  110. data/meta/redo.rb +0 -5
  111. data/meta/regexp.rb +0 -80
  112. data/meta/regopt.rb +0 -10
  113. data/meta/rescue.rb +0 -84
  114. data/meta/return.rb +0 -16
  115. data/meta/sclass.rb +0 -12
  116. data/meta/self.rb +0 -7
  117. data/meta/send.rb +0 -600
  118. data/meta/str.rb +0 -7
  119. data/meta/super.rb +0 -27
  120. data/meta/sym.rb +0 -8
  121. data/meta/true.rb +0 -7
  122. data/meta/until.rb +0 -16
  123. data/meta/while.rb +0 -24
  124. data/meta/yield.rb +0 -9
  125. data/mutant-minitest.gemspec +0 -22
  126. data/mutant-rspec.gemspec +0 -22
  127. data/mutant.gemspec +0 -44
  128. data/mutant.sh +0 -12
  129. data/mutant.yml +0 -6
  130. data/spec/integration/mutant/corpus_spec.rb +0 -15
  131. data/spec/integration/mutant/isolation/fork_spec.rb +0 -28
  132. data/spec/integration/mutant/minitest_spec.rb +0 -11
  133. data/spec/integration/mutant/null_spec.rb +0 -16
  134. data/spec/integration/mutant/rspec_spec.rb +0 -15
  135. data/spec/integration/mutant/test_mutator_handles_types_spec.rb +0 -9
  136. data/spec/integrations.yml +0 -63
  137. data/spec/shared/framework_integration_behavior.rb +0 -70
  138. data/spec/shared/method_matcher_behavior.rb +0 -47
  139. data/spec/spec_helper.rb +0 -90
  140. data/spec/support/corpus.rb +0 -318
  141. data/spec/support/file_system.rb +0 -62
  142. data/spec/support/ice_nine_config.rb +0 -10
  143. data/spec/support/ruby_vm.rb +0 -84
  144. data/spec/support/shared_context.rb +0 -169
  145. data/spec/support/xspec.rb +0 -183
  146. data/spec/unit/mutant/ast/find_metaclass_containing_spec.rb +0 -64
  147. data/spec/unit/mutant/ast/meta/optarg_spec.rb +0 -24
  148. data/spec/unit/mutant/ast/meta/send/proc_predicate_spec.rb +0 -30
  149. data/spec/unit/mutant/ast/meta/send/receiver_possible_top_level_const_predicate_spec.rb +0 -39
  150. data/spec/unit/mutant/ast/meta/send_spec.rb +0 -42
  151. data/spec/unit/mutant/ast/named_children_spec.rb +0 -89
  152. data/spec/unit/mutant/ast/sexp_spec.rb +0 -38
  153. data/spec/unit/mutant/ast_spec.rb +0 -57
  154. data/spec/unit/mutant/bootstrap_spec.rb +0 -216
  155. data/spec/unit/mutant/cli_spec.rb +0 -305
  156. data/spec/unit/mutant/clock_monotonic_spec.rb +0 -52
  157. data/spec/unit/mutant/config_spec.rb +0 -126
  158. data/spec/unit/mutant/context_spec.rb +0 -111
  159. data/spec/unit/mutant/env_spec.rb +0 -229
  160. data/spec/unit/mutant/expression/method_spec.rb +0 -62
  161. data/spec/unit/mutant/expression/methods_spec.rb +0 -66
  162. data/spec/unit/mutant/expression/namespace/exact_spec.rb +0 -28
  163. data/spec/unit/mutant/expression/namespace/recursive_spec.rb +0 -66
  164. data/spec/unit/mutant/expression/parser_spec.rb +0 -65
  165. data/spec/unit/mutant/expression_spec.rb +0 -45
  166. data/spec/unit/mutant/integration/rspec_spec.rb +0 -201
  167. data/spec/unit/mutant/integration_spec.rb +0 -150
  168. data/spec/unit/mutant/isolation/fork_spec.rb +0 -309
  169. data/spec/unit/mutant/isolation/none_spec.rb +0 -23
  170. data/spec/unit/mutant/isolation/result_spec.rb +0 -73
  171. data/spec/unit/mutant/license_spec.rb +0 -305
  172. data/spec/unit/mutant/loader_spec.rb +0 -79
  173. data/spec/unit/mutant/matcher/chain_spec.rb +0 -26
  174. data/spec/unit/mutant/matcher/compiler_spec.rb +0 -0
  175. data/spec/unit/mutant/matcher/config_spec.rb +0 -47
  176. data/spec/unit/mutant/matcher/filter_spec.rb +0 -22
  177. data/spec/unit/mutant/matcher/method/instance_spec.rb +0 -164
  178. data/spec/unit/mutant/matcher/method/metaclass_spec.rb +0 -108
  179. data/spec/unit/mutant/matcher/method/singleton_spec.rb +0 -90
  180. data/spec/unit/mutant/matcher/methods/instance_spec.rb +0 -54
  181. data/spec/unit/mutant/matcher/methods/metaclass_spec.rb +0 -62
  182. data/spec/unit/mutant/matcher/methods/singleton_spec.rb +0 -51
  183. data/spec/unit/mutant/matcher/namespace_spec.rb +0 -39
  184. data/spec/unit/mutant/matcher/null_spec.rb +0 -12
  185. data/spec/unit/mutant/matcher/scope_spec.rb +0 -45
  186. data/spec/unit/mutant/matcher/static_spec.rb +0 -13
  187. data/spec/unit/mutant/matcher_spec.rb +0 -102
  188. data/spec/unit/mutant/meta/example/dsl_spec.rb +0 -108
  189. data/spec/unit/mutant/meta/example/verification_spec.rb +0 -154
  190. data/spec/unit/mutant/meta/example_spec.rb +0 -34
  191. data/spec/unit/mutant/mutation_spec.rb +0 -140
  192. data/spec/unit/mutant/mutator/node_spec.rb +0 -47
  193. data/spec/unit/mutant/mutator_spec.rb +0 -21
  194. data/spec/unit/mutant/parallel/driver_spec.rb +0 -126
  195. data/spec/unit/mutant/parallel/source/array_spec.rb +0 -57
  196. data/spec/unit/mutant/parallel/worker_spec.rb +0 -206
  197. data/spec/unit/mutant/parallel_spec.rb +0 -115
  198. data/spec/unit/mutant/parser_spec.rb +0 -26
  199. data/spec/unit/mutant/range_spec.rb +0 -141
  200. data/spec/unit/mutant/registry_spec.rb +0 -74
  201. data/spec/unit/mutant/reporter/cli/printer/config_spec.rb +0 -17
  202. data/spec/unit/mutant/reporter/cli/printer/env_progress_spec.rb +0 -85
  203. data/spec/unit/mutant/reporter/cli/printer/env_result_spec.rb +0 -45
  204. data/spec/unit/mutant/reporter/cli/printer/isolation_result_spec.rb +0 -132
  205. data/spec/unit/mutant/reporter/cli/printer/mutation_progress_result_spec.rb +0 -25
  206. data/spec/unit/mutant/reporter/cli/printer/mutation_result_spec.rb +0 -153
  207. data/spec/unit/mutant/reporter/cli/printer/status_progressive_spec.rb +0 -45
  208. data/spec/unit/mutant/reporter/cli/printer/subject_progress_spec.rb +0 -36
  209. data/spec/unit/mutant/reporter/cli/printer/subject_result_spec.rb +0 -44
  210. data/spec/unit/mutant/reporter/cli/printer/test_result_spec.rb +0 -16
  211. data/spec/unit/mutant/reporter/cli/printer_spec.rb +0 -163
  212. data/spec/unit/mutant/reporter/cli_spec.rb +0 -137
  213. data/spec/unit/mutant/reporter/null_spec.rb +0 -14
  214. data/spec/unit/mutant/reporter/sequence_spec.rb +0 -31
  215. data/spec/unit/mutant/repository/diff/ranges_spec.rb +0 -180
  216. data/spec/unit/mutant/repository/diff_spec.rb +0 -122
  217. data/spec/unit/mutant/repository/subject_filter_spec.rb +0 -30
  218. data/spec/unit/mutant/require_highjack_spec.rb +0 -73
  219. data/spec/unit/mutant/result/class_methods_spec.rb +0 -51
  220. data/spec/unit/mutant/result/env_spec.rb +0 -161
  221. data/spec/unit/mutant/result/mutation_spec.rb +0 -70
  222. data/spec/unit/mutant/result/subject_spec.rb +0 -111
  223. data/spec/unit/mutant/result/test_spec.rb +0 -14
  224. data/spec/unit/mutant/result_spec.rb +0 -33
  225. data/spec/unit/mutant/runner/sink_spec.rb +0 -174
  226. data/spec/unit/mutant/runner_spec.rb +0 -121
  227. data/spec/unit/mutant/selector/expression_spec.rb +0 -62
  228. data/spec/unit/mutant/selector/null_spec.rb +0 -17
  229. data/spec/unit/mutant/subject/method/instance_spec.rb +0 -276
  230. data/spec/unit/mutant/subject/method/metaclass_spec.rb +0 -63
  231. data/spec/unit/mutant/subject/method/singleton_spec.rb +0 -61
  232. data/spec/unit/mutant/subject_spec.rb +0 -93
  233. data/spec/unit/mutant/transform/array_spec.rb +0 -92
  234. data/spec/unit/mutant/transform/bool_spec.rb +0 -63
  235. data/spec/unit/mutant/transform/error_spec.rb +0 -132
  236. data/spec/unit/mutant/transform/exception_spec.rb +0 -44
  237. data/spec/unit/mutant/transform/hash_spec.rb +0 -236
  238. data/spec/unit/mutant/transform/index_spec.rb +0 -92
  239. data/spec/unit/mutant/transform/named_spec.rb +0 -49
  240. data/spec/unit/mutant/transform/primitive_spec.rb +0 -56
  241. data/spec/unit/mutant/transform/sequence_spec.rb +0 -98
  242. data/spec/unit/mutant/util/one_spec.rb +0 -22
  243. data/spec/unit/mutant/warnings_spec.rb +0 -89
  244. data/spec/unit/mutant/world_spec.rb +0 -63
  245. data/spec/unit/mutant/zombifier_spec.rb +0 -122
  246. data/test_app/.rspec +0 -1
  247. data/test_app/Gemfile.minitest +0 -6
  248. data/test_app/Gemfile.rspec3.8 +0 -7
  249. data/test_app/lib/test_app.rb +0 -114
  250. data/test_app/lib/test_app/literal.rb +0 -35
  251. data/test_app/lib/test_app/metaclasses.rb +0 -108
  252. data/test_app/spec/spec_helper.rb +0 -9
  253. data/test_app/spec/unit/test_app/literal_spec.rb +0 -20
  254. data/test_app/test/unit/test_app/literal_test.rb +0 -16
@@ -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
@@ -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
@@ -42,7 +42,7 @@ module Mutant
42
42
  private
43
43
 
44
44
  def wrap_node(mutant)
45
- s(:begin, mutant, s(:send, nil, :memoize, s(:args, s(:sym, name), *options)))
45
+ s(:begin, mutant, s(:send, nil, :memoize, s(:sym, name), *options))
46
46
  end
47
47
 
48
48
  # The optional AST node for adamantium memoization options
@@ -2,5 +2,5 @@
2
2
 
3
3
  module Mutant
4
4
  # Current mutant version
5
- VERSION = '0.9.10'
5
+ VERSION = '0.10.0'
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.10
4
+ version: 0.10.0
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-25 00:00:00.000000000 Z
11
+ date: 2020-10-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: abstract_type
@@ -184,14 +184,14 @@ dependencies:
184
184
  requirements:
185
185
  - - "~>"
186
186
  - !ruby/object:Gem::Version
187
- version: 0.4.8
187
+ version: 0.5.3
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.8
194
+ version: 0.5.3
195
195
  - !ruby/object:Gem::Dependency
196
196
  name: variable
197
197
  requirement: !ruby/object:Gem::Requirement
@@ -254,28 +254,28 @@ dependencies:
254
254
  requirements:
255
255
  - - "~>"
256
256
  - !ruby/object:Gem::Version
257
- version: 1.2.0
257
+ version: 1.3.0
258
258
  type: :development
259
259
  prerelease: false
260
260
  version_requirements: !ruby/object:Gem::Requirement
261
261
  requirements:
262
262
  - - "~>"
263
263
  - !ruby/object:Gem::Version
264
- version: 1.2.0
264
+ version: 1.3.0
265
265
  - !ruby/object:Gem::Dependency
266
266
  name: rubocop
267
267
  requirement: !ruby/object:Gem::Requirement
268
268
  requirements:
269
269
  - - "~>"
270
270
  - !ruby/object:Gem::Version
271
- version: 0.79.0
271
+ version: '1.0'
272
272
  type: :development
273
273
  prerelease: false
274
274
  version_requirements: !ruby/object:Gem::Requirement
275
275
  requirements:
276
276
  - - "~>"
277
277
  - !ruby/object:Gem::Version
278
- version: 0.79.0
278
+ version: '1.0'
279
279
  description: Mutation Testing for Ruby.
280
280
  email:
281
281
  - mbj@schirp-dso.com
@@ -285,30 +285,8 @@ extensions: []
285
285
  extra_rdoc_files:
286
286
  - LICENSE
287
287
  files:
288
- - ".github/workflows/ci.yml"
289
- - ".gitignore"
290
- - ".rspec"
291
- - ".rubocop.yml"
292
- - Changelog.md
293
- - Gemfile
294
- - Gemfile.lock
295
- - Gemfile.shared
296
288
  - LICENSE
297
- - README.md
298
- - Rakefile
299
289
  - bin/mutant
300
- - config/devtools.yml
301
- - config/reek.yml
302
- - config/yardstick.yml
303
- - docs/commercial-support.md
304
- - docs/concurrency.md
305
- - docs/incremental.md
306
- - docs/known-problems.md
307
- - docs/limitations.md
308
- - docs/mutant-minitest.md
309
- - docs/mutant-rspec.md
310
- - docs/nomenclature.md
311
- - docs/reading-reports.md
312
290
  - lib/mutant.rb
313
291
  - lib/mutant/ast.rb
314
292
  - lib/mutant/ast/find_metaclass_containing.rb
@@ -325,6 +303,10 @@ files:
325
303
  - lib/mutant/ast/types.rb
326
304
  - lib/mutant/bootstrap.rb
327
305
  - lib/mutant/cli.rb
306
+ - lib/mutant/cli/command.rb
307
+ - lib/mutant/cli/command/root.rb
308
+ - lib/mutant/cli/command/run.rb
309
+ - lib/mutant/cli/command/subscription.rb
328
310
  - lib/mutant/config.rb
329
311
  - lib/mutant/context.rb
330
312
  - lib/mutant/env.rb
@@ -360,6 +342,7 @@ files:
360
342
  - lib/mutant/meta/example.rb
361
343
  - lib/mutant/meta/example/dsl.rb
362
344
  - lib/mutant/meta/example/verification.rb
345
+ - lib/mutant/minitest/coverage.rb
363
346
  - lib/mutant/mutation.rb
364
347
  - lib/mutant/mutator.rb
365
348
  - lib/mutant/mutator/node.rb
@@ -369,6 +352,7 @@ files:
369
352
  - lib/mutant/mutator/node/begin.rb
370
353
  - lib/mutant/mutator/node/binary.rb
371
354
  - lib/mutant/mutator/node/block.rb
355
+ - lib/mutant/mutator/node/block_pass.rb
372
356
  - lib/mutant/mutator/node/break.rb
373
357
  - lib/mutant/mutator/node/case.rb
374
358
  - lib/mutant/mutator/node/class.rb
@@ -376,8 +360,7 @@ files:
376
360
  - lib/mutant/mutator/node/const.rb
377
361
  - lib/mutant/mutator/node/define.rb
378
362
  - lib/mutant/mutator/node/defined.rb
379
- - lib/mutant/mutator/node/dstr.rb
380
- - lib/mutant/mutator/node/dsym.rb
363
+ - lib/mutant/mutator/node/dynamic_literal.rb
381
364
  - lib/mutant/mutator/node/generic.rb
382
365
  - lib/mutant/mutator/node/if.rb
383
366
  - lib/mutant/mutator/node/index.rb
@@ -469,201 +452,6 @@ files:
469
452
  - lib/mutant/version.rb
470
453
  - lib/mutant/warnings.rb
471
454
  - lib/mutant/zombifier.rb
472
- - meta/and.rb
473
- - meta/and_asgn.rb
474
- - meta/array.rb
475
- - meta/begin.rb
476
- - meta/block.rb
477
- - meta/block_pass.rb
478
- - meta/blockarg.rb
479
- - meta/break.rb
480
- - meta/case.rb
481
- - meta/casgn.rb
482
- - meta/cbase.rb
483
- - meta/class.rb
484
- - meta/const.rb
485
- - meta/csend.rb
486
- - meta/cvar.rb
487
- - meta/cvasgn.rb
488
- - meta/date.rb
489
- - meta/def.rb
490
- - meta/defined.rb
491
- - meta/dstr.rb
492
- - meta/dsym.rb
493
- - meta/ensure.rb
494
- - meta/false.rb
495
- - meta/file.rb
496
- - meta/float.rb
497
- - meta/gvar.rb
498
- - meta/gvasgn.rb
499
- - meta/hash.rb
500
- - meta/if.rb
501
- - meta/index.rb
502
- - meta/indexasgn.rb
503
- - meta/int.rb
504
- - meta/ivar.rb
505
- - meta/ivasgn.rb
506
- - meta/kwarg.rb
507
- - meta/kwbegin.rb
508
- - meta/kwoptarg.rb
509
- - meta/lambda.rb
510
- - meta/line.rb
511
- - meta/lvar.rb
512
- - meta/lvasgn.rb
513
- - meta/masgn.rb
514
- - meta/match_current_line.rb
515
- - meta/next.rb
516
- - meta/nil.rb
517
- - meta/nthref.rb
518
- - meta/op_assgn.rb
519
- - meta/or.rb
520
- - meta/or_asgn.rb
521
- - meta/range.rb
522
- - meta/redo.rb
523
- - meta/regexp.rb
524
- - meta/regopt.rb
525
- - meta/rescue.rb
526
- - meta/return.rb
527
- - meta/sclass.rb
528
- - meta/self.rb
529
- - meta/send.rb
530
- - meta/str.rb
531
- - meta/super.rb
532
- - meta/sym.rb
533
- - meta/true.rb
534
- - meta/until.rb
535
- - meta/while.rb
536
- - meta/yield.rb
537
- - mutant-minitest.gemspec
538
- - mutant-rspec.gemspec
539
- - mutant.gemspec
540
- - mutant.sh
541
- - mutant.yml
542
- - spec/integration/mutant/corpus_spec.rb
543
- - spec/integration/mutant/isolation/fork_spec.rb
544
- - spec/integration/mutant/minitest_spec.rb
545
- - spec/integration/mutant/null_spec.rb
546
- - spec/integration/mutant/rspec_spec.rb
547
- - spec/integration/mutant/test_mutator_handles_types_spec.rb
548
- - spec/integrations.yml
549
- - spec/shared/framework_integration_behavior.rb
550
- - spec/shared/method_matcher_behavior.rb
551
- - spec/spec_helper.rb
552
- - spec/support/corpus.rb
553
- - spec/support/file_system.rb
554
- - spec/support/ice_nine_config.rb
555
- - spec/support/ruby_vm.rb
556
- - spec/support/shared_context.rb
557
- - spec/support/xspec.rb
558
- - spec/unit/mutant/ast/find_metaclass_containing_spec.rb
559
- - spec/unit/mutant/ast/meta/optarg_spec.rb
560
- - spec/unit/mutant/ast/meta/send/proc_predicate_spec.rb
561
- - spec/unit/mutant/ast/meta/send/receiver_possible_top_level_const_predicate_spec.rb
562
- - spec/unit/mutant/ast/meta/send_spec.rb
563
- - spec/unit/mutant/ast/named_children_spec.rb
564
- - spec/unit/mutant/ast/sexp_spec.rb
565
- - spec/unit/mutant/ast_spec.rb
566
- - spec/unit/mutant/bootstrap_spec.rb
567
- - spec/unit/mutant/cli_spec.rb
568
- - spec/unit/mutant/clock_monotonic_spec.rb
569
- - spec/unit/mutant/config_spec.rb
570
- - spec/unit/mutant/context_spec.rb
571
- - spec/unit/mutant/env_spec.rb
572
- - spec/unit/mutant/expression/method_spec.rb
573
- - spec/unit/mutant/expression/methods_spec.rb
574
- - spec/unit/mutant/expression/namespace/exact_spec.rb
575
- - spec/unit/mutant/expression/namespace/recursive_spec.rb
576
- - spec/unit/mutant/expression/parser_spec.rb
577
- - spec/unit/mutant/expression_spec.rb
578
- - spec/unit/mutant/integration/rspec_spec.rb
579
- - spec/unit/mutant/integration_spec.rb
580
- - spec/unit/mutant/isolation/fork_spec.rb
581
- - spec/unit/mutant/isolation/none_spec.rb
582
- - spec/unit/mutant/isolation/result_spec.rb
583
- - spec/unit/mutant/license_spec.rb
584
- - spec/unit/mutant/loader_spec.rb
585
- - spec/unit/mutant/matcher/chain_spec.rb
586
- - spec/unit/mutant/matcher/compiler_spec.rb
587
- - spec/unit/mutant/matcher/config_spec.rb
588
- - spec/unit/mutant/matcher/filter_spec.rb
589
- - spec/unit/mutant/matcher/method/instance_spec.rb
590
- - spec/unit/mutant/matcher/method/metaclass_spec.rb
591
- - spec/unit/mutant/matcher/method/singleton_spec.rb
592
- - spec/unit/mutant/matcher/methods/instance_spec.rb
593
- - spec/unit/mutant/matcher/methods/metaclass_spec.rb
594
- - spec/unit/mutant/matcher/methods/singleton_spec.rb
595
- - spec/unit/mutant/matcher/namespace_spec.rb
596
- - spec/unit/mutant/matcher/null_spec.rb
597
- - spec/unit/mutant/matcher/scope_spec.rb
598
- - spec/unit/mutant/matcher/static_spec.rb
599
- - spec/unit/mutant/matcher_spec.rb
600
- - spec/unit/mutant/meta/example/dsl_spec.rb
601
- - spec/unit/mutant/meta/example/verification_spec.rb
602
- - spec/unit/mutant/meta/example_spec.rb
603
- - spec/unit/mutant/mutation_spec.rb
604
- - spec/unit/mutant/mutator/node_spec.rb
605
- - spec/unit/mutant/mutator_spec.rb
606
- - spec/unit/mutant/parallel/driver_spec.rb
607
- - spec/unit/mutant/parallel/source/array_spec.rb
608
- - spec/unit/mutant/parallel/worker_spec.rb
609
- - spec/unit/mutant/parallel_spec.rb
610
- - spec/unit/mutant/parser_spec.rb
611
- - spec/unit/mutant/range_spec.rb
612
- - spec/unit/mutant/registry_spec.rb
613
- - spec/unit/mutant/reporter/cli/printer/config_spec.rb
614
- - spec/unit/mutant/reporter/cli/printer/env_progress_spec.rb
615
- - spec/unit/mutant/reporter/cli/printer/env_result_spec.rb
616
- - spec/unit/mutant/reporter/cli/printer/isolation_result_spec.rb
617
- - spec/unit/mutant/reporter/cli/printer/mutation_progress_result_spec.rb
618
- - spec/unit/mutant/reporter/cli/printer/mutation_result_spec.rb
619
- - spec/unit/mutant/reporter/cli/printer/status_progressive_spec.rb
620
- - spec/unit/mutant/reporter/cli/printer/subject_progress_spec.rb
621
- - spec/unit/mutant/reporter/cli/printer/subject_result_spec.rb
622
- - spec/unit/mutant/reporter/cli/printer/test_result_spec.rb
623
- - spec/unit/mutant/reporter/cli/printer_spec.rb
624
- - spec/unit/mutant/reporter/cli_spec.rb
625
- - spec/unit/mutant/reporter/null_spec.rb
626
- - spec/unit/mutant/reporter/sequence_spec.rb
627
- - spec/unit/mutant/repository/diff/ranges_spec.rb
628
- - spec/unit/mutant/repository/diff_spec.rb
629
- - spec/unit/mutant/repository/subject_filter_spec.rb
630
- - spec/unit/mutant/require_highjack_spec.rb
631
- - spec/unit/mutant/result/class_methods_spec.rb
632
- - spec/unit/mutant/result/env_spec.rb
633
- - spec/unit/mutant/result/mutation_spec.rb
634
- - spec/unit/mutant/result/subject_spec.rb
635
- - spec/unit/mutant/result/test_spec.rb
636
- - spec/unit/mutant/result_spec.rb
637
- - spec/unit/mutant/runner/sink_spec.rb
638
- - spec/unit/mutant/runner_spec.rb
639
- - spec/unit/mutant/selector/expression_spec.rb
640
- - spec/unit/mutant/selector/null_spec.rb
641
- - spec/unit/mutant/subject/method/instance_spec.rb
642
- - spec/unit/mutant/subject/method/metaclass_spec.rb
643
- - spec/unit/mutant/subject/method/singleton_spec.rb
644
- - spec/unit/mutant/subject_spec.rb
645
- - spec/unit/mutant/transform/array_spec.rb
646
- - spec/unit/mutant/transform/bool_spec.rb
647
- - spec/unit/mutant/transform/error_spec.rb
648
- - spec/unit/mutant/transform/exception_spec.rb
649
- - spec/unit/mutant/transform/hash_spec.rb
650
- - spec/unit/mutant/transform/index_spec.rb
651
- - spec/unit/mutant/transform/named_spec.rb
652
- - spec/unit/mutant/transform/primitive_spec.rb
653
- - spec/unit/mutant/transform/sequence_spec.rb
654
- - spec/unit/mutant/util/one_spec.rb
655
- - spec/unit/mutant/warnings_spec.rb
656
- - spec/unit/mutant/world_spec.rb
657
- - spec/unit/mutant/zombifier_spec.rb
658
- - test_app/.rspec
659
- - test_app/Gemfile.minitest
660
- - test_app/Gemfile.rspec3.8
661
- - test_app/lib/test_app.rb
662
- - test_app/lib/test_app/literal.rb
663
- - test_app/lib/test_app/metaclasses.rb
664
- - test_app/spec/spec_helper.rb
665
- - test_app/spec/unit/test_app/literal_spec.rb
666
- - test_app/test/unit/test_app/literal_test.rb
667
455
  homepage: https://github.com/mbj/mutant
668
456
  licenses:
669
457
  - Nonstandard
@@ -676,121 +464,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
676
464
  requirements:
677
465
  - - ">="
678
466
  - !ruby/object:Gem::Version
679
- version: '0'
467
+ version: '2.5'
680
468
  required_rubygems_version: !ruby/object:Gem::Requirement
681
469
  requirements:
682
470
  - - ">="
683
471
  - !ruby/object:Gem::Version
684
472
  version: '0'
685
473
  requirements: []
686
- rubygems_version: 3.0.3
474
+ rubygems_version: 3.2.0.rc.1
687
475
  signing_key:
688
476
  specification_version: 4
689
477
  summary: ''
690
- test_files:
691
- - spec/integration/mutant/corpus_spec.rb
692
- - spec/integration/mutant/isolation/fork_spec.rb
693
- - spec/integration/mutant/minitest_spec.rb
694
- - spec/integration/mutant/null_spec.rb
695
- - spec/integration/mutant/rspec_spec.rb
696
- - spec/integration/mutant/test_mutator_handles_types_spec.rb
697
- - spec/unit/mutant/ast/find_metaclass_containing_spec.rb
698
- - spec/unit/mutant/ast/meta/optarg_spec.rb
699
- - spec/unit/mutant/ast/meta/send/proc_predicate_spec.rb
700
- - spec/unit/mutant/ast/meta/send/receiver_possible_top_level_const_predicate_spec.rb
701
- - spec/unit/mutant/ast/meta/send_spec.rb
702
- - spec/unit/mutant/ast/named_children_spec.rb
703
- - spec/unit/mutant/ast/sexp_spec.rb
704
- - spec/unit/mutant/ast_spec.rb
705
- - spec/unit/mutant/bootstrap_spec.rb
706
- - spec/unit/mutant/cli_spec.rb
707
- - spec/unit/mutant/clock_monotonic_spec.rb
708
- - spec/unit/mutant/config_spec.rb
709
- - spec/unit/mutant/context_spec.rb
710
- - spec/unit/mutant/env_spec.rb
711
- - spec/unit/mutant/expression/method_spec.rb
712
- - spec/unit/mutant/expression/methods_spec.rb
713
- - spec/unit/mutant/expression/namespace/exact_spec.rb
714
- - spec/unit/mutant/expression/namespace/recursive_spec.rb
715
- - spec/unit/mutant/expression/parser_spec.rb
716
- - spec/unit/mutant/expression_spec.rb
717
- - spec/unit/mutant/integration/rspec_spec.rb
718
- - spec/unit/mutant/integration_spec.rb
719
- - spec/unit/mutant/isolation/fork_spec.rb
720
- - spec/unit/mutant/isolation/none_spec.rb
721
- - spec/unit/mutant/isolation/result_spec.rb
722
- - spec/unit/mutant/license_spec.rb
723
- - spec/unit/mutant/loader_spec.rb
724
- - spec/unit/mutant/matcher/chain_spec.rb
725
- - spec/unit/mutant/matcher/compiler_spec.rb
726
- - spec/unit/mutant/matcher/config_spec.rb
727
- - spec/unit/mutant/matcher/filter_spec.rb
728
- - spec/unit/mutant/matcher/method/instance_spec.rb
729
- - spec/unit/mutant/matcher/method/metaclass_spec.rb
730
- - spec/unit/mutant/matcher/method/singleton_spec.rb
731
- - spec/unit/mutant/matcher/methods/instance_spec.rb
732
- - spec/unit/mutant/matcher/methods/metaclass_spec.rb
733
- - spec/unit/mutant/matcher/methods/singleton_spec.rb
734
- - spec/unit/mutant/matcher/namespace_spec.rb
735
- - spec/unit/mutant/matcher/null_spec.rb
736
- - spec/unit/mutant/matcher/scope_spec.rb
737
- - spec/unit/mutant/matcher/static_spec.rb
738
- - spec/unit/mutant/matcher_spec.rb
739
- - spec/unit/mutant/meta/example/dsl_spec.rb
740
- - spec/unit/mutant/meta/example/verification_spec.rb
741
- - spec/unit/mutant/meta/example_spec.rb
742
- - spec/unit/mutant/mutation_spec.rb
743
- - spec/unit/mutant/mutator/node_spec.rb
744
- - spec/unit/mutant/mutator_spec.rb
745
- - spec/unit/mutant/parallel/driver_spec.rb
746
- - spec/unit/mutant/parallel/source/array_spec.rb
747
- - spec/unit/mutant/parallel/worker_spec.rb
748
- - spec/unit/mutant/parallel_spec.rb
749
- - spec/unit/mutant/parser_spec.rb
750
- - spec/unit/mutant/range_spec.rb
751
- - spec/unit/mutant/registry_spec.rb
752
- - spec/unit/mutant/reporter/cli/printer/config_spec.rb
753
- - spec/unit/mutant/reporter/cli/printer/env_progress_spec.rb
754
- - spec/unit/mutant/reporter/cli/printer/env_result_spec.rb
755
- - spec/unit/mutant/reporter/cli/printer/isolation_result_spec.rb
756
- - spec/unit/mutant/reporter/cli/printer/mutation_progress_result_spec.rb
757
- - spec/unit/mutant/reporter/cli/printer/mutation_result_spec.rb
758
- - spec/unit/mutant/reporter/cli/printer/status_progressive_spec.rb
759
- - spec/unit/mutant/reporter/cli/printer/subject_progress_spec.rb
760
- - spec/unit/mutant/reporter/cli/printer/subject_result_spec.rb
761
- - spec/unit/mutant/reporter/cli/printer/test_result_spec.rb
762
- - spec/unit/mutant/reporter/cli/printer_spec.rb
763
- - spec/unit/mutant/reporter/cli_spec.rb
764
- - spec/unit/mutant/reporter/null_spec.rb
765
- - spec/unit/mutant/reporter/sequence_spec.rb
766
- - spec/unit/mutant/repository/diff/ranges_spec.rb
767
- - spec/unit/mutant/repository/diff_spec.rb
768
- - spec/unit/mutant/repository/subject_filter_spec.rb
769
- - spec/unit/mutant/require_highjack_spec.rb
770
- - spec/unit/mutant/result/class_methods_spec.rb
771
- - spec/unit/mutant/result/env_spec.rb
772
- - spec/unit/mutant/result/mutation_spec.rb
773
- - spec/unit/mutant/result/subject_spec.rb
774
- - spec/unit/mutant/result/test_spec.rb
775
- - spec/unit/mutant/result_spec.rb
776
- - spec/unit/mutant/runner/sink_spec.rb
777
- - spec/unit/mutant/runner_spec.rb
778
- - spec/unit/mutant/selector/expression_spec.rb
779
- - spec/unit/mutant/selector/null_spec.rb
780
- - spec/unit/mutant/subject/method/instance_spec.rb
781
- - spec/unit/mutant/subject/method/metaclass_spec.rb
782
- - spec/unit/mutant/subject/method/singleton_spec.rb
783
- - spec/unit/mutant/subject_spec.rb
784
- - spec/unit/mutant/transform/array_spec.rb
785
- - spec/unit/mutant/transform/bool_spec.rb
786
- - spec/unit/mutant/transform/error_spec.rb
787
- - spec/unit/mutant/transform/exception_spec.rb
788
- - spec/unit/mutant/transform/hash_spec.rb
789
- - spec/unit/mutant/transform/index_spec.rb
790
- - spec/unit/mutant/transform/named_spec.rb
791
- - spec/unit/mutant/transform/primitive_spec.rb
792
- - spec/unit/mutant/transform/sequence_spec.rb
793
- - spec/unit/mutant/util/one_spec.rb
794
- - spec/unit/mutant/warnings_spec.rb
795
- - spec/unit/mutant/world_spec.rb
796
- - spec/unit/mutant/zombifier_spec.rb
478
+ test_files: []