mutant 0.9.8 → 0.9.13

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 (335) hide show
  1. checksums.yaml +4 -4
  2. data/lib/mutant.rb +5 -2
  3. data/lib/mutant/ast.rb +0 -9
  4. data/lib/mutant/ast/find_metaclass_containing.rb +48 -0
  5. data/lib/mutant/ast/meta/send.rb +0 -6
  6. data/lib/mutant/bootstrap.rb +14 -37
  7. data/lib/mutant/cli.rb +11 -49
  8. data/lib/mutant/config.rb +0 -8
  9. data/lib/mutant/context.rb +0 -3
  10. data/lib/mutant/env.rb +0 -6
  11. data/lib/mutant/expression/method.rb +6 -6
  12. data/lib/mutant/expression/methods.rb +6 -6
  13. data/lib/mutant/expression/parser.rb +0 -6
  14. data/lib/mutant/integration.rb +0 -18
  15. data/lib/mutant/isolation.rb +1 -1
  16. data/lib/mutant/isolation/fork.rb +2 -24
  17. data/lib/mutant/isolation/none.rb +1 -1
  18. data/lib/mutant/license.rb +11 -0
  19. data/lib/mutant/matcher.rb +0 -14
  20. data/lib/mutant/matcher/config.rb +2 -11
  21. data/lib/mutant/matcher/method.rb +0 -31
  22. data/lib/mutant/matcher/method/instance.rb +0 -8
  23. data/lib/mutant/matcher/method/metaclass.rb +86 -0
  24. data/lib/mutant/matcher/method/singleton.rb +0 -25
  25. data/lib/mutant/matcher/methods.rb +17 -28
  26. data/lib/mutant/matcher/namespace.rb +0 -10
  27. data/lib/mutant/matcher/scope.rb +2 -4
  28. data/lib/mutant/meta/example/dsl.rb +0 -21
  29. data/lib/mutant/meta/example/verification.rb +0 -20
  30. data/lib/mutant/minitest/coverage.rb +53 -0
  31. data/lib/mutant/mutation.rb +0 -3
  32. data/lib/mutant/mutator.rb +1 -29
  33. data/lib/mutant/mutator/node.rb +1 -66
  34. data/lib/mutant/mutator/node/and_asgn.rb +0 -3
  35. data/lib/mutant/mutator/node/argument.rb +0 -15
  36. data/lib/mutant/mutator/node/arguments.rb +0 -20
  37. data/lib/mutant/mutator/node/begin.rb +0 -3
  38. data/lib/mutant/mutator/node/binary.rb +0 -23
  39. data/lib/mutant/mutator/node/block.rb +0 -15
  40. data/lib/mutant/mutator/node/block_pass.rb +29 -0
  41. data/lib/mutant/mutator/node/break.rb +0 -3
  42. data/lib/mutant/mutator/node/case.rb +0 -9
  43. data/lib/mutant/mutator/node/class.rb +0 -3
  44. data/lib/mutant/mutator/node/conditional_loop.rb +0 -3
  45. data/lib/mutant/mutator/node/const.rb +0 -3
  46. data/lib/mutant/mutator/node/define.rb +0 -11
  47. data/lib/mutant/mutator/node/defined.rb +0 -3
  48. data/lib/mutant/mutator/node/dstr.rb +0 -3
  49. data/lib/mutant/mutator/node/dsym.rb +0 -3
  50. data/lib/mutant/mutator/node/generic.rb +0 -3
  51. data/lib/mutant/mutator/node/if.rb +0 -12
  52. data/lib/mutant/mutator/node/index.rb +0 -27
  53. data/lib/mutant/mutator/node/kwbegin.rb +0 -3
  54. data/lib/mutant/mutator/node/literal.rb +0 -3
  55. data/lib/mutant/mutator/node/literal/array.rb +0 -6
  56. data/lib/mutant/mutator/node/literal/boolean.rb +0 -4
  57. data/lib/mutant/mutator/node/literal/float.rb +0 -9
  58. data/lib/mutant/mutator/node/literal/hash.rb +0 -9
  59. data/lib/mutant/mutator/node/literal/integer.rb +0 -9
  60. data/lib/mutant/mutator/node/literal/nil.rb +0 -3
  61. data/lib/mutant/mutator/node/literal/range.rb +4 -7
  62. data/lib/mutant/mutator/node/literal/regex.rb +0 -6
  63. data/lib/mutant/mutator/node/literal/string.rb +0 -3
  64. data/lib/mutant/mutator/node/literal/symbol.rb +0 -3
  65. data/lib/mutant/mutator/node/masgn.rb +0 -3
  66. data/lib/mutant/mutator/node/match_current_line.rb +0 -3
  67. data/lib/mutant/mutator/node/mlhs.rb +0 -3
  68. data/lib/mutant/mutator/node/named_value/access.rb +2 -14
  69. data/lib/mutant/mutator/node/named_value/constant_assignment.rb +0 -9
  70. data/lib/mutant/mutator/node/named_value/variable_assignment.rb +0 -6
  71. data/lib/mutant/mutator/node/next.rb +0 -3
  72. data/lib/mutant/mutator/node/noop.rb +1 -4
  73. data/lib/mutant/mutator/node/nthref.rb +0 -3
  74. data/lib/mutant/mutator/node/op_asgn.rb +0 -3
  75. data/lib/mutant/mutator/node/or_asgn.rb +0 -3
  76. data/lib/mutant/mutator/node/procarg_zero.rb +0 -3
  77. data/lib/mutant/mutator/node/regopt.rb +0 -6
  78. data/lib/mutant/mutator/node/resbody.rb +0 -6
  79. data/lib/mutant/mutator/node/rescue.rb +2 -19
  80. data/lib/mutant/mutator/node/return.rb +0 -3
  81. data/lib/mutant/mutator/node/sclass.rb +20 -0
  82. data/lib/mutant/mutator/node/send.rb +26 -61
  83. data/lib/mutant/mutator/node/send/attribute_assignment.rb +0 -9
  84. data/lib/mutant/mutator/node/send/binary.rb +0 -11
  85. data/lib/mutant/mutator/node/send/conditional.rb +0 -3
  86. data/lib/mutant/mutator/node/splat.rb +0 -3
  87. data/lib/mutant/mutator/node/super.rb +0 -3
  88. data/lib/mutant/mutator/node/when.rb +0 -19
  89. data/lib/mutant/mutator/node/yield.rb +0 -3
  90. data/lib/mutant/mutator/node/zsuper.rb +0 -3
  91. data/lib/mutant/mutator/util/array.rb +0 -6
  92. data/lib/mutant/mutator/util/symbol.rb +0 -3
  93. data/lib/mutant/parallel.rb +0 -13
  94. data/lib/mutant/parallel/driver.rb +0 -10
  95. data/lib/mutant/parallel/worker.rb +0 -22
  96. data/lib/mutant/reporter/cli.rb +0 -5
  97. data/lib/mutant/reporter/cli/format.rb +0 -9
  98. data/lib/mutant/reporter/cli/printer.rb +2 -42
  99. data/lib/mutant/reporter/cli/printer/env_progress.rb +0 -15
  100. data/lib/mutant/reporter/cli/printer/isolation_result.rb +9 -21
  101. data/lib/mutant/reporter/cli/printer/mutation_progress_result.rb +0 -5
  102. data/lib/mutant/reporter/cli/printer/mutation_result.rb +1 -22
  103. data/lib/mutant/reporter/cli/printer/status_progressive.rb +0 -8
  104. data/lib/mutant/reporter/cli/printer/subject_progress.rb +0 -9
  105. data/lib/mutant/repository/diff.rb +1 -13
  106. data/lib/mutant/repository/diff/ranges.rb +0 -11
  107. data/lib/mutant/result.rb +0 -3
  108. data/lib/mutant/runner.rb +0 -18
  109. data/lib/mutant/runner/sink.rb +0 -5
  110. data/lib/mutant/subject.rb +0 -8
  111. data/lib/mutant/subject/method.rb +0 -3
  112. data/lib/mutant/subject/method/instance.rb +40 -6
  113. data/lib/mutant/subject/method/metaclass.rb +30 -0
  114. data/lib/mutant/transform.rb +0 -92
  115. data/lib/mutant/version.rb +1 -1
  116. data/lib/mutant/warnings.rb +0 -6
  117. data/lib/mutant/zombifier.rb +2 -34
  118. metadata +61 -333
  119. data/.github/workflows/ci.yml +0 -121
  120. data/.gitignore +0 -38
  121. data/.rspec +0 -5
  122. data/.rubocop.yml +0 -7
  123. data/Changelog.md +0 -75
  124. data/Gemfile +0 -7
  125. data/Gemfile.lock +0 -167
  126. data/Gemfile.shared +0 -10
  127. data/README.md +0 -138
  128. data/Rakefile +0 -5
  129. data/config/devtools.yml +0 -2
  130. data/config/reek.yml +0 -138
  131. data/config/rubocop.yml +0 -205
  132. data/config/yardstick.yml +0 -2
  133. data/docs/commercial-support.md +0 -14
  134. data/docs/concurrency.md +0 -39
  135. data/docs/incremental.md +0 -76
  136. data/docs/known-problems.md +0 -30
  137. data/docs/limitations.md +0 -50
  138. data/docs/mutant-minitest.md +0 -149
  139. data/docs/mutant-rspec.md +0 -130
  140. data/docs/nomenclature.md +0 -82
  141. data/docs/reading-reports.md +0 -74
  142. data/lib/mutant/color.rb +0 -43
  143. data/lib/mutant/diff.rb +0 -114
  144. data/meta/and.rb +0 -15
  145. data/meta/and_asgn.rb +0 -14
  146. data/meta/array.rb +0 -30
  147. data/meta/begin.rb +0 -23
  148. data/meta/block.rb +0 -202
  149. data/meta/block_pass.rb +0 -8
  150. data/meta/blockarg.rb +0 -10
  151. data/meta/break.rb +0 -10
  152. data/meta/case.rb +0 -223
  153. data/meta/casgn.rb +0 -28
  154. data/meta/cbase.rb +0 -8
  155. data/meta/class.rb +0 -12
  156. data/meta/const.rb +0 -17
  157. data/meta/csend.rb +0 -10
  158. data/meta/cvar.rb +0 -7
  159. data/meta/cvasgn.rb +0 -10
  160. data/meta/date.rb +0 -59
  161. data/meta/def.rb +0 -203
  162. data/meta/defined.rb +0 -9
  163. data/meta/dstr.rb +0 -13
  164. data/meta/dsym.rb +0 -14
  165. data/meta/ensure.rb +0 -9
  166. data/meta/false.rb +0 -8
  167. data/meta/file.rb +0 -5
  168. data/meta/float.rb +0 -37
  169. data/meta/gvar.rb +0 -7
  170. data/meta/gvasgn.rb +0 -10
  171. data/meta/hash.rb +0 -24
  172. data/meta/if.rb +0 -77
  173. data/meta/index.rb +0 -133
  174. data/meta/indexasgn.rb +0 -31
  175. data/meta/int.rb +0 -18
  176. data/meta/ivar.rb +0 -8
  177. data/meta/ivasgn.rb +0 -23
  178. data/meta/kwarg.rb +0 -10
  179. data/meta/kwbegin.rb +0 -9
  180. data/meta/kwoptarg.rb +0 -13
  181. data/meta/lambda.rb +0 -23
  182. data/meta/line.rb +0 -5
  183. data/meta/lvar.rb +0 -16
  184. data/meta/lvasgn.rb +0 -25
  185. data/meta/masgn.rb +0 -7
  186. data/meta/match_current_line.rb +0 -15
  187. data/meta/next.rb +0 -11
  188. data/meta/nil.rb +0 -5
  189. data/meta/nthref.rb +0 -14
  190. data/meta/op_assgn.rb +0 -17
  191. data/meta/or.rb +0 -15
  192. data/meta/or_asgn.rb +0 -50
  193. data/meta/range.rb +0 -39
  194. data/meta/redo.rb +0 -5
  195. data/meta/regexp.rb +0 -81
  196. data/meta/regopt.rb +0 -10
  197. data/meta/rescue.rb +0 -90
  198. data/meta/return.rb +0 -16
  199. data/meta/self.rb +0 -7
  200. data/meta/send.rb +0 -604
  201. data/meta/str.rb +0 -7
  202. data/meta/super.rb +0 -27
  203. data/meta/sym.rb +0 -8
  204. data/meta/true.rb +0 -8
  205. data/meta/until.rb +0 -17
  206. data/meta/while.rb +0 -26
  207. data/meta/yield.rb +0 -10
  208. data/mutant-minitest.gemspec +0 -22
  209. data/mutant-rspec.gemspec +0 -22
  210. data/mutant.gemspec +0 -41
  211. data/mutant.yml +0 -6
  212. data/spec/integration/mutant/corpus_spec.rb +0 -15
  213. data/spec/integration/mutant/isolation/fork_spec.rb +0 -28
  214. data/spec/integration/mutant/minitest_spec.rb +0 -11
  215. data/spec/integration/mutant/null_spec.rb +0 -16
  216. data/spec/integration/mutant/rspec_spec.rb +0 -15
  217. data/spec/integration/mutant/test_mutator_handles_types_spec.rb +0 -9
  218. data/spec/integrations.yml +0 -63
  219. data/spec/shared/base_behavior.rb +0 -45
  220. data/spec/shared/framework_integration_behavior.rb +0 -70
  221. data/spec/shared/method_matcher_behavior.rb +0 -47
  222. data/spec/spec_helper.rb +0 -75
  223. data/spec/support/corpus.rb +0 -318
  224. data/spec/support/file_system.rb +0 -62
  225. data/spec/support/ice_nine_config.rb +0 -10
  226. data/spec/support/ruby_vm.rb +0 -84
  227. data/spec/support/shared_context.rb +0 -169
  228. data/spec/support/test_app.rb +0 -7
  229. data/spec/support/warnings.yml +0 -6
  230. data/spec/support/xspec.rb +0 -183
  231. data/spec/unit/mutant/ast/meta/optarg_spec.rb +0 -24
  232. data/spec/unit/mutant/ast/meta/send/proc_predicate_spec.rb +0 -30
  233. data/spec/unit/mutant/ast/meta/send/receiver_possible_top_level_const_predicate_spec.rb +0 -39
  234. data/spec/unit/mutant/ast/meta/send_spec.rb +0 -42
  235. data/spec/unit/mutant/ast/named_children_spec.rb +0 -89
  236. data/spec/unit/mutant/ast/sexp_spec.rb +0 -38
  237. data/spec/unit/mutant/ast_spec.rb +0 -57
  238. data/spec/unit/mutant/bootstrap_spec.rb +0 -216
  239. data/spec/unit/mutant/cli_spec.rb +0 -305
  240. data/spec/unit/mutant/clock_monotonic_spec.rb +0 -52
  241. data/spec/unit/mutant/config_spec.rb +0 -126
  242. data/spec/unit/mutant/context_spec.rb +0 -111
  243. data/spec/unit/mutant/diff_spec.rb +0 -189
  244. data/spec/unit/mutant/env_spec.rb +0 -229
  245. data/spec/unit/mutant/expression/method_spec.rb +0 -62
  246. data/spec/unit/mutant/expression/methods_spec.rb +0 -61
  247. data/spec/unit/mutant/expression/namespace/exact_spec.rb +0 -28
  248. data/spec/unit/mutant/expression/namespace/recursive_spec.rb +0 -66
  249. data/spec/unit/mutant/expression/parser_spec.rb +0 -65
  250. data/spec/unit/mutant/expression_spec.rb +0 -45
  251. data/spec/unit/mutant/integration/rspec_spec.rb +0 -201
  252. data/spec/unit/mutant/integration_spec.rb +0 -150
  253. data/spec/unit/mutant/isolation/fork_spec.rb +0 -309
  254. data/spec/unit/mutant/isolation/none_spec.rb +0 -23
  255. data/spec/unit/mutant/isolation/result_spec.rb +0 -73
  256. data/spec/unit/mutant/license_spec.rb +0 -293
  257. data/spec/unit/mutant/loader_spec.rb +0 -79
  258. data/spec/unit/mutant/matcher/chain_spec.rb +0 -26
  259. data/spec/unit/mutant/matcher/compiler_spec.rb +0 -0
  260. data/spec/unit/mutant/matcher/config_spec.rb +0 -47
  261. data/spec/unit/mutant/matcher/filter_spec.rb +0 -22
  262. data/spec/unit/mutant/matcher/method/instance_spec.rb +0 -164
  263. data/spec/unit/mutant/matcher/method/singleton_spec.rb +0 -90
  264. data/spec/unit/mutant/matcher/methods/instance_spec.rb +0 -54
  265. data/spec/unit/mutant/matcher/methods/singleton_spec.rb +0 -51
  266. data/spec/unit/mutant/matcher/namespace_spec.rb +0 -37
  267. data/spec/unit/mutant/matcher/null_spec.rb +0 -12
  268. data/spec/unit/mutant/matcher/scope_spec.rb +0 -35
  269. data/spec/unit/mutant/matcher/static_spec.rb +0 -13
  270. data/spec/unit/mutant/matcher_spec.rb +0 -102
  271. data/spec/unit/mutant/meta/example/dsl_spec.rb +0 -108
  272. data/spec/unit/mutant/meta/example/verification_spec.rb +0 -154
  273. data/spec/unit/mutant/meta/example_spec.rb +0 -34
  274. data/spec/unit/mutant/mutation_spec.rb +0 -140
  275. data/spec/unit/mutant/mutator/node_spec.rb +0 -52
  276. data/spec/unit/mutant/mutator_spec.rb +0 -21
  277. data/spec/unit/mutant/parallel/driver_spec.rb +0 -126
  278. data/spec/unit/mutant/parallel/source/array_spec.rb +0 -57
  279. data/spec/unit/mutant/parallel/worker_spec.rb +0 -206
  280. data/spec/unit/mutant/parallel_spec.rb +0 -115
  281. data/spec/unit/mutant/parser_spec.rb +0 -26
  282. data/spec/unit/mutant/range_spec.rb +0 -141
  283. data/spec/unit/mutant/registry_spec.rb +0 -74
  284. data/spec/unit/mutant/reporter/cli/printer/config_spec.rb +0 -17
  285. data/spec/unit/mutant/reporter/cli/printer/env_progress_spec.rb +0 -85
  286. data/spec/unit/mutant/reporter/cli/printer/env_result_spec.rb +0 -45
  287. data/spec/unit/mutant/reporter/cli/printer/isolation_result_spec.rb +0 -132
  288. data/spec/unit/mutant/reporter/cli/printer/mutation_progress_result_spec.rb +0 -25
  289. data/spec/unit/mutant/reporter/cli/printer/mutation_result_spec.rb +0 -153
  290. data/spec/unit/mutant/reporter/cli/printer/status_progressive_spec.rb +0 -45
  291. data/spec/unit/mutant/reporter/cli/printer/subject_progress_spec.rb +0 -36
  292. data/spec/unit/mutant/reporter/cli/printer/subject_result_spec.rb +0 -44
  293. data/spec/unit/mutant/reporter/cli/printer/test_result_spec.rb +0 -16
  294. data/spec/unit/mutant/reporter/cli/printer_spec.rb +0 -163
  295. data/spec/unit/mutant/reporter/cli_spec.rb +0 -137
  296. data/spec/unit/mutant/reporter/null_spec.rb +0 -14
  297. data/spec/unit/mutant/reporter/sequence_spec.rb +0 -31
  298. data/spec/unit/mutant/repository/diff/ranges_spec.rb +0 -180
  299. data/spec/unit/mutant/repository/diff_spec.rb +0 -122
  300. data/spec/unit/mutant/repository/subject_filter_spec.rb +0 -30
  301. data/spec/unit/mutant/require_highjack_spec.rb +0 -73
  302. data/spec/unit/mutant/result/class_methods_spec.rb +0 -51
  303. data/spec/unit/mutant/result/env_spec.rb +0 -161
  304. data/spec/unit/mutant/result/mutation_spec.rb +0 -70
  305. data/spec/unit/mutant/result/subject_spec.rb +0 -111
  306. data/spec/unit/mutant/result/test_spec.rb +0 -14
  307. data/spec/unit/mutant/result_spec.rb +0 -33
  308. data/spec/unit/mutant/runner/sink_spec.rb +0 -174
  309. data/spec/unit/mutant/runner_spec.rb +0 -121
  310. data/spec/unit/mutant/selector/expression_spec.rb +0 -62
  311. data/spec/unit/mutant/selector/null_spec.rb +0 -17
  312. data/spec/unit/mutant/subject/method/instance_spec.rb +0 -181
  313. data/spec/unit/mutant/subject/method/singleton_spec.rb +0 -61
  314. data/spec/unit/mutant/subject_spec.rb +0 -93
  315. data/spec/unit/mutant/transform/array_spec.rb +0 -92
  316. data/spec/unit/mutant/transform/bool_spec.rb +0 -63
  317. data/spec/unit/mutant/transform/error_spec.rb +0 -132
  318. data/spec/unit/mutant/transform/exception_spec.rb +0 -44
  319. data/spec/unit/mutant/transform/hash_spec.rb +0 -236
  320. data/spec/unit/mutant/transform/index_spec.rb +0 -92
  321. data/spec/unit/mutant/transform/named_spec.rb +0 -49
  322. data/spec/unit/mutant/transform/primitive_spec.rb +0 -56
  323. data/spec/unit/mutant/transform/sequence_spec.rb +0 -98
  324. data/spec/unit/mutant/util/one_spec.rb +0 -22
  325. data/spec/unit/mutant/warnings_spec.rb +0 -89
  326. data/spec/unit/mutant/world_spec.rb +0 -63
  327. data/spec/unit/mutant/zombifier_spec.rb +0 -122
  328. data/test_app/.rspec +0 -1
  329. data/test_app/Gemfile.minitest +0 -4
  330. data/test_app/Gemfile.rspec3.8 +0 -7
  331. data/test_app/lib/test_app.rb +0 -109
  332. data/test_app/lib/test_app/literal.rb +0 -35
  333. data/test_app/spec/spec_helper.rb +0 -9
  334. data/test_app/spec/unit/test_app/literal_spec.rb +0 -20
  335. data/test_app/test/unit/test_app/literal_test.rb +0 -16
@@ -1,10 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Mutant::Meta::Example.add :kwarg do
4
- source 'def foo(bar:); end'
5
-
6
- mutation 'def foo; end'
7
- mutation 'def foo(bar:); raise; end'
8
- mutation 'def foo(bar:); super; end'
9
- mutation 'def foo(_bar:); end'
10
- end
@@ -1,9 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Mutant::Meta::Example.add :kwbegin do
4
- source 'begin; true; end'
5
-
6
- singleton_mutations
7
- mutation 'begin; false; end'
8
- mutation 'begin; nil; end'
9
- end
@@ -1,13 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Mutant::Meta::Example.add :kwarg do
4
- source 'def foo(bar: baz); end'
5
-
6
- mutation 'def foo; end'
7
- mutation 'def foo(bar: baz); raise; end'
8
- mutation 'def foo(bar: baz); super; end'
9
- mutation 'def foo(bar: nil); end'
10
- mutation 'def foo(bar: self); end'
11
- mutation 'def foo(bar:); end'
12
- mutation 'def foo(_bar: baz); end'
13
- end
@@ -1,23 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Mutant::Meta::Example.add :block, :lambda do
4
- source '->() {}'
5
-
6
- singleton_mutations
7
-
8
- mutation '->() { raise }'
9
- end
10
-
11
- Mutant::Meta::Example.add :block, :lambda do
12
- source '->() { foo.bar }'
13
-
14
- singleton_mutations
15
-
16
- mutation '->() { }'
17
- mutation '->() { self }'
18
- mutation '->() { nil }'
19
- mutation '->() { raise }'
20
- mutation '->() { self.bar }'
21
- mutation '->() { foo }'
22
- mutation 'foo.bar'
23
- end
@@ -1,5 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Mutant::Meta::Example.add do
4
- source '__LINE__'
5
- end
@@ -1,16 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Mutant::Meta::Example.add :lvar do
4
- source 'a = nil; a'
5
-
6
- mutation 'a = nil; nil'
7
- mutation 'a = nil; self'
8
- mutation 'a = nil'
9
- # TODO: fix invalid AST
10
- # These ASTs are not valid and should NOT be emitted
11
- # Mutations of lvarasgn need to be special cased to avoid this.
12
- mutation s(:begin, s(:lvasgn, :a__mutant__, s(:nil)), s(:lvar, :a))
13
- mutation s(:begin, s(:nil), s(:lvar, :a))
14
- mutation s(:begin, s(:self), s(:lvar, :a))
15
- mutation s(:lvar, :a)
16
- end
@@ -1,25 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Mutant::Meta::Example.add :lvasgn do
4
- source 'a = true'
5
-
6
- singleton_mutations
7
- mutation 'a__mutant__ = true'
8
- mutation 'a = false'
9
- mutation 'a = nil'
10
- end
11
-
12
- Mutant::Meta::Example.add :array, :lvasgn do
13
- source 'a = *b'
14
-
15
- singleton_mutations
16
- mutation 'a__mutant__ = *b'
17
- mutation 'a = nil'
18
- mutation 'a = self'
19
- mutation 'a = []'
20
- mutation 'a = [nil]'
21
- mutation 'a = [self]'
22
- mutation 'a = [*self]'
23
- mutation 'a = [*nil]'
24
- mutation 'a = [b]'
25
- end
@@ -1,7 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Mutant::Meta::Example.add :masgn do
4
- source 'a, b = c, d'
5
-
6
- singleton_mutations
7
- end
@@ -1,15 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Mutant::Meta::Example.add :match_current_line do
4
- source 'true if /foo/'
5
-
6
- singleton_mutations
7
- mutation 'false if /foo/'
8
- mutation 'true if //'
9
- mutation 'nil if /foo/'
10
- mutation 'true if true'
11
- mutation 'true if false'
12
- mutation 'true if nil'
13
- mutation 'true if /nomatch\A/'
14
- mutation 'true'
15
- end
@@ -1,11 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Mutant::Meta::Example.add :next do
4
- source 'next true'
5
-
6
- singleton_mutations
7
- mutation 'next false'
8
- mutation 'next nil'
9
- mutation 'next'
10
- mutation 'break true'
11
- end
@@ -1,5 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Mutant::Meta::Example.add :nil do
4
- source 'nil'
5
- end
@@ -1,14 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Mutant::Meta::Example.add :nth_ref do
4
- source '$1'
5
-
6
- mutation '$2'
7
- end
8
-
9
- Mutant::Meta::Example.add :nth_ref do
10
- source '$3'
11
-
12
- mutation '$2'
13
- mutation '$4'
14
- end
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Mutant::Meta::Example.add :op_asgn do
4
- source '@a.b += 1'
5
-
6
- singleton_mutations
7
- mutation 'a.b += 1'
8
- mutation '@a.b += -1'
9
- mutation '@a.b += 2'
10
- mutation '@a.b += 0'
11
- mutation '@a.b += nil'
12
- mutation '@a.b += self'
13
- mutation 'self.b += 1'
14
- # TODO: fix invalid AST
15
- # This should not get emitted as invalid AST with valid unparsed source
16
- mutation s(:op_asgn, s(:ivar, :@a), :+, s(:int, 1))
17
- end
data/meta/or.rb DELETED
@@ -1,15 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Mutant::Meta::Example.add :or do
4
- source 'true or false'
5
-
6
- singleton_mutations
7
- mutation 'true'
8
- mutation 'false'
9
- mutation 'nil or false'
10
- mutation 'false or false'
11
- mutation 'true or nil'
12
- mutation 'true or true'
13
- mutation 'true and false'
14
- mutation '!true or false'
15
- end
@@ -1,50 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Mutant::Meta::Example.add :or_asgn do
4
- source 'a ||= 1'
5
-
6
- singleton_mutations
7
- mutation 'a__mutant__ ||= 1'
8
- mutation 'a ||= nil'
9
- mutation 'a ||= self'
10
- mutation 'a ||= 0'
11
- mutation 'a ||= -1'
12
- mutation 'a ||= 2'
13
- end
14
-
15
- Mutant::Meta::Example.add :or_asgn do
16
- source '@a ||= 1'
17
-
18
- singleton_mutations
19
- mutation '@a ||= nil'
20
- mutation '@a ||= self'
21
- mutation '@a ||= 0'
22
- mutation '@a ||= -1'
23
- mutation '@a ||= 2'
24
- end
25
-
26
- Mutant::Meta::Example.add :or_asgn do
27
- source 'Foo ||= nil'
28
-
29
- singleton_mutations
30
- end
31
-
32
- Mutant::Meta::Example.add :or_asgn do
33
- source '@a ||= self.bar'
34
-
35
- singleton_mutations
36
- mutation '@a ||= nil'
37
- mutation '@a ||= self'
38
- mutation '@a ||= bar'
39
- end
40
-
41
- Mutant::Meta::Example.add :or_asgn do
42
- source 'foo[:bar] ||= 1'
43
-
44
- singleton_mutations
45
- mutation 'foo[:bar] ||= nil'
46
- mutation 'foo[:bar] ||= self'
47
- mutation 'foo[:bar] ||= 0'
48
- mutation 'foo[:bar] ||= -1'
49
- mutation 'foo[:bar] ||= 2'
50
- end
@@ -1,39 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Mutant::Meta::Example.add :irange do
4
- source '1..100'
5
-
6
- singleton_mutations
7
- mutation '1...100'
8
- mutation '-1..100'
9
- mutation '0..100'
10
- mutation '2..100'
11
- mutation 'nil..100'
12
- mutation 'self..100'
13
- mutation '1..nil'
14
- mutation '1..self'
15
- mutation '1..0'
16
- mutation '1..1'
17
- mutation '1..99'
18
- mutation '1..101'
19
- mutation '1..-100'
20
- end
21
-
22
- Mutant::Meta::Example.add :erange do
23
- source '1...100'
24
-
25
- singleton_mutations
26
- mutation '1..100'
27
- mutation '-1...100'
28
- mutation '0...100'
29
- mutation '2...100'
30
- mutation 'nil...100'
31
- mutation 'self...100'
32
- mutation '1...nil'
33
- mutation '1...self'
34
- mutation '1...0'
35
- mutation '1...1'
36
- mutation '1...99'
37
- mutation '1...101'
38
- mutation '1...-100'
39
- end
@@ -1,5 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Mutant::Meta::Example.add :redo do
4
- source 'redo'
5
- end
@@ -1,81 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Mutant::Meta::Example.add :regexp do
4
- source '/foo/'
5
-
6
- singleton_mutations
7
-
8
- mutation '//'
9
- mutation '/nomatch\A/'
10
- end
11
-
12
- Mutant::Meta::Example.add :regexp do
13
- source '/#{foo.bar}n/'
14
-
15
- singleton_mutations
16
-
17
- mutation '/#{foo}n/'
18
- mutation '/#{nil}n/'
19
- mutation '/#{self.bar}n/'
20
- mutation '/#{self}n/'
21
- mutation '//'
22
- mutation '/nomatch\A/'
23
- end
24
-
25
- Mutant::Meta::Example.add :regexp do
26
- source '/#{foo}/'
27
-
28
- singleton_mutations
29
-
30
- mutation '/#{self}/'
31
- mutation '/#{nil}/'
32
- mutation '//'
33
- mutation '/nomatch\A/'
34
- end
35
-
36
- Mutant::Meta::Example.add :regexp do
37
- source '/#{foo}#{nil}/'
38
-
39
- singleton_mutations
40
-
41
- mutation '/#{nil}#{nil}/'
42
- mutation '/#{self}#{nil}/'
43
- mutation '//'
44
- mutation '/nomatch\A/'
45
- end
46
-
47
- Mutant::Meta::Example.add :regexp do
48
- source '//'
49
-
50
- singleton_mutations
51
-
52
- # match no input
53
- mutation '/nomatch\A/'
54
- end
55
-
56
- Mutant::Meta::Example.add :regexp do
57
- source 'true if /foo/'
58
-
59
- singleton_mutations
60
- mutation 'false if /foo/'
61
- mutation 'nil if /foo/'
62
- mutation 'true if true'
63
- mutation 'true if false'
64
- mutation 'true if nil'
65
- mutation 'true'
66
-
67
- # match all inputs
68
- mutation 'true if //'
69
-
70
- # match no input
71
- mutation 'true if /nomatch\A/'
72
- end
73
-
74
- # Case where MRI would accept an expression but regexp_parser not.
75
- Mutant::Meta::Example.add :regexp do
76
- source '/u{/'
77
-
78
- singleton_mutations
79
- mutation '//'
80
- mutation '/nomatch\A/'
81
- end
@@ -1,10 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Mutant::Meta::Example.add :regopt do
4
- source '/foo/ixom'
5
-
6
- singleton_mutations
7
- mutation '//ixom'
8
- mutation '/nomatch\\A/ixom'
9
- mutation '/foo/xom'
10
- end
@@ -1,90 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Mutant::Meta::Example.add :rescue do
4
- source 'begin; rescue ExceptionA, ExceptionB => error; true; end'
5
-
6
- singleton_mutations
7
- mutation 'begin; rescue ExceptionA, ExceptionB; true; end'
8
- mutation 'begin; rescue self, ExceptionB => error; true; end'
9
- mutation 'begin; rescue ExceptionA, self => error; true; end'
10
- mutation 'begin; rescue ExceptionA, ExceptionB => error; false; end'
11
- mutation 'begin; rescue ExceptionA, ExceptionB => error; nil; end'
12
- mutation 'begin; true; end'
13
-
14
- end
15
-
16
- Mutant::Meta::Example.add :rescue do
17
- source 'begin; rescue SomeException => error; true; end'
18
-
19
- singleton_mutations
20
- mutation 'begin; rescue SomeException; true; end'
21
- mutation 'begin; rescue SomeException => error; false; end'
22
- mutation 'begin; rescue SomeException => error; nil; end'
23
- mutation 'begin; rescue self => error; true; end'
24
- mutation 'begin; true; end'
25
- end
26
-
27
- Mutant::Meta::Example.add :rescue do
28
- source 'begin; rescue => error; true end'
29
-
30
- singleton_mutations
31
- mutation 'begin; rescue => error; false; end'
32
- mutation 'begin; rescue => error; nil; end'
33
- mutation 'begin; rescue; true; end'
34
- mutation 'begin; true; end'
35
- end
36
-
37
- Mutant::Meta::Example.add :rescue do
38
- source 'begin; rescue; true end'
39
-
40
- singleton_mutations
41
- mutation 'begin; rescue; false; end'
42
- mutation 'begin; rescue; nil; end'
43
- mutation 'begin; true end'
44
- end
45
-
46
- Mutant::Meta::Example.add :rescue do
47
- source 'begin; true; end'
48
-
49
- singleton_mutations
50
- mutation 'begin; false; end'
51
- mutation 'begin; nil; end'
52
- end
53
-
54
- Mutant::Meta::Example.add :rescue do
55
- source 'def a; foo; rescue; bar; else; baz; end'
56
-
57
- # Mutate all bodies
58
- mutation 'def a; nil; rescue; bar; else; baz; end'
59
- mutation 'def a; self; rescue; bar; else; baz; end'
60
- mutation 'def a; foo; rescue; nil; else; baz; end'
61
- mutation 'def a; foo; rescue; self; else; baz; end'
62
- mutation 'def a; foo; rescue; bar; else; nil; end'
63
- mutation 'def a; foo; rescue; bar; else; self; end'
64
-
65
- # Promote and concat rescue resbody bodies
66
- mutation 'def a; foo; bar; end'
67
-
68
- # Promote and concat else body
69
- mutation 'def a; foo; baz; end'
70
-
71
- # Promote rescue body
72
- mutation 'def a; foo; end'
73
-
74
- # Empty body
75
- mutation 'def a; end'
76
-
77
- # Failing body
78
- mutation 'def a; raise; end'
79
-
80
- # Superclass implementation
81
- mutation 'def a; super; end'
82
- end
83
-
84
- Mutant::Meta::Example.add :rescue do
85
- source 'begin; rescue; ensure; true; end'
86
-
87
- singleton_mutations
88
- mutation 'begin; rescue; ensure; false; end'
89
- mutation 'begin; rescue; ensure; nil; end'
90
- end