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
@@ -1,8 +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
- 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,24 +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
- end
10
-
11
- Mutant::Meta::Example.add :array, :lvasgn do
12
- source 'a = *b'
13
-
14
- singleton_mutations
15
- mutation 'a__mutant__ = *b'
16
- mutation 'a = nil'
17
- mutation 'a = self'
18
- mutation 'a = []'
19
- mutation 'a = [nil]'
20
- mutation 'a = [self]'
21
- mutation 'a = [*self]'
22
- mutation 'a = [*nil]'
23
- mutation 'a = [b]'
24
- 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,14 +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 'true if true'
10
- mutation 'true if false'
11
- mutation 'true if nil'
12
- mutation 'true if /nomatch\A/'
13
- mutation 'true'
14
- end
@@ -1,10 +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'
9
- mutation 'break true'
10
- 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,13 +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 'false or false'
10
- mutation 'true or true'
11
- mutation 'true and false'
12
- mutation '!true or false'
13
- 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,65 +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
40
-
41
- unless RUBY_VERSION.start_with?('2.5')
42
- Mutant::Meta::Example.add :erange do
43
- source '1...'
44
-
45
- singleton_mutations
46
- mutation '-1...'
47
- mutation '0...'
48
- mutation '1..'
49
- mutation '2...'
50
- mutation 'nil...'
51
- mutation 'self...'
52
- end
53
-
54
- Mutant::Meta::Example.add :irange do
55
- source '1..'
56
-
57
- singleton_mutations
58
- mutation '-1..'
59
- mutation '0..'
60
- mutation '1...'
61
- mutation '2..'
62
- mutation 'nil..'
63
- mutation 'self..'
64
- end
65
- end
@@ -1,5 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Mutant::Meta::Example.add :redo do
4
- source 'redo'
5
- end
@@ -1,80 +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 'true if true'
62
- mutation 'true if false'
63
- mutation 'true if nil'
64
- mutation 'true'
65
-
66
- # match all inputs
67
- mutation 'true if //'
68
-
69
- # match no input
70
- mutation 'true if /nomatch\A/'
71
- end
72
-
73
- # Case where MRI would accept an expression but regexp_parser not.
74
- Mutant::Meta::Example.add :regexp do
75
- source '/u{/'
76
-
77
- singleton_mutations
78
- mutation '//'
79
- mutation '/nomatch\A/'
80
- 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,84 +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; true; end'
12
-
13
- end
14
-
15
- Mutant::Meta::Example.add :rescue do
16
- source 'begin; rescue SomeException => error; true; end'
17
-
18
- singleton_mutations
19
- mutation 'begin; rescue SomeException; true; end'
20
- mutation 'begin; rescue SomeException => error; false; end'
21
- mutation 'begin; rescue self => error; true; end'
22
- mutation 'begin; true; end'
23
- end
24
-
25
- Mutant::Meta::Example.add :rescue do
26
- source 'begin; rescue => error; true end'
27
-
28
- singleton_mutations
29
- mutation 'begin; rescue => error; false; end'
30
- mutation 'begin; rescue; true; end'
31
- mutation 'begin; true; end'
32
- end
33
-
34
- Mutant::Meta::Example.add :rescue do
35
- source 'begin; rescue; true end'
36
-
37
- singleton_mutations
38
- mutation 'begin; rescue; false; end'
39
- mutation 'begin; true end'
40
- end
41
-
42
- Mutant::Meta::Example.add :rescue do
43
- source 'begin; true; end'
44
-
45
- singleton_mutations
46
- mutation 'begin; false; end'
47
- end
48
-
49
- Mutant::Meta::Example.add :rescue do
50
- source 'def a; foo; rescue; bar; else; baz; end'
51
-
52
- # Mutate all bodies
53
- mutation 'def a; nil; rescue; bar; else; baz; end'
54
- mutation 'def a; self; rescue; bar; else; baz; end'
55
- mutation 'def a; foo; rescue; nil; else; baz; end'
56
- mutation 'def a; foo; rescue; self; else; baz; end'
57
- mutation 'def a; foo; rescue; bar; else; nil; end'
58
- mutation 'def a; foo; rescue; bar; else; self; end'
59
-
60
- # Promote and concat rescue resbody bodies
61
- mutation 'def a; foo; bar; end'
62
-
63
- # Promote and concat else body
64
- mutation 'def a; foo; baz; end'
65
-
66
- # Promote rescue body
67
- mutation 'def a; foo; end'
68
-
69
- # Empty body
70
- mutation 'def a; end'
71
-
72
- # Failing body
73
- mutation 'def a; raise; end'
74
-
75
- # Superclass implementation
76
- mutation 'def a; super; end'
77
- end
78
-
79
- Mutant::Meta::Example.add :rescue do
80
- source 'begin; rescue; ensure; true; end'
81
-
82
- singleton_mutations
83
- mutation 'begin; rescue; ensure; false; end'
84
- end