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
@@ -1,40 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Mutant
4
- # Class to colorize strings
5
- class Color
6
- include Adamantium::Flat, Concord.new(:code)
7
-
8
- # Format text with color
9
- #
10
- # @param [String] text
11
- #
12
- # @return [String]
13
- def format(text)
14
- "\e[#{code}m#{text}\e[0m"
15
- end
16
-
17
- NONE = Class.new(self) do
18
-
19
- # Format null color
20
- #
21
- # @param [String] text
22
- #
23
- # @return [String]
24
- # the argument string
25
- def format(text)
26
- text
27
- end
28
-
29
- private
30
-
31
- def initialize; end
32
-
33
- end.new
34
-
35
- RED = Color.new(31)
36
- GREEN = Color.new(32)
37
- BLUE = Color.new(34)
38
-
39
- end # Color
40
- end # Mutant
@@ -1,97 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Mutant
4
- # Class to create diffs from source code
5
- class Diff
6
- include Adamantium::Flat, Concord.new(:old, :new)
7
-
8
- ADDITION = '+'
9
- DELETION = '-'
10
- NEWLINE = "\n"
11
-
12
- # Unified source diff between old and new
13
- #
14
- # @return [String]
15
- # if there is exactly one diff
16
- #
17
- # @return [nil]
18
- # otherwise
19
- def diff
20
- return if diffs.empty?
21
-
22
- minimized_hunk.diff(:unified) + NEWLINE
23
- end
24
- memoize :diff
25
-
26
- # Colorized unified source diff between old and new
27
- #
28
- # @return [String]
29
- # if there is a diff
30
- #
31
- # @return [nil]
32
- # otherwise
33
- def colorized_diff
34
- return unless diff
35
- diff.lines.map(&self.class.method(:colorize_line)).join
36
- end
37
- memoize :colorized_diff
38
-
39
- # Build new object from source strings
40
- #
41
- # @param [String] old
42
- # @param [String] new
43
- #
44
- # @return [Diff]
45
- def self.build(old, new)
46
- new(lines(old), lines(new))
47
- end
48
-
49
- # Break up source into lines
50
- #
51
- # @param [String] source
52
- #
53
- # @return [Array<String>]
54
- def self.lines(source)
55
- source.lines.map(&:chomp)
56
- end
57
- private_class_method :lines
58
-
59
- private
60
-
61
- def diffs
62
- ::Diff::LCS.diff(old, new)
63
- end
64
-
65
- def hunks
66
- diffs.map do |diff|
67
- ::Diff::LCS::Hunk.new(old.map(&:dup), new, diff, max_length, 0)
68
- end
69
- end
70
-
71
- def minimized_hunk
72
- head, *tail = hunks
73
-
74
- tail.reduce(head) do |left, right|
75
- right.merge(left)
76
- right
77
- end
78
- end
79
-
80
- def max_length
81
- [old, new].map(&:length).max
82
- end
83
-
84
- def self.colorize_line(line)
85
- case line[0]
86
- when ADDITION
87
- Color::GREEN
88
- when DELETION
89
- Color::RED
90
- else
91
- Color::NONE
92
- end.format(line)
93
- end
94
- private_class_method :colorize_line
95
-
96
- end # Diff
97
- end # Mutant
@@ -1,22 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Mutant
4
- class Mutator
5
- class Node
6
-
7
- # Dsym mutator
8
- class Dsym < Generic
9
-
10
- handle(:dsym)
11
-
12
- private
13
-
14
- def dispatch
15
- super()
16
- emit_singletons
17
- end
18
-
19
- end # Dsym
20
- end # Node
21
- end # Mutator
22
- end # Mutant
@@ -1,13 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Mutant::Meta::Example.add :and do
4
- source 'true and false'
5
-
6
- singleton_mutations
7
- mutation 'true'
8
- mutation 'false'
9
- mutation 'true or false'
10
- mutation 'false and false'
11
- mutation 'true and true'
12
- mutation '!true and false'
13
- end
@@ -1,14 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Mutant::Meta::Example.add :and_asgn do
4
- source 'a &&= 1'
5
-
6
- singleton_mutations
7
-
8
- mutation 'a__mutant__ &&= 1'
9
- mutation 'a &&= nil'
10
- mutation 'a &&= 0'
11
- mutation 'a &&= -1'
12
- mutation 'a &&= 2'
13
- mutation 'a &&= self'
14
- end
@@ -1,27 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Mutant::Meta::Example.add :array do
4
- source '[true]'
5
-
6
- singleton_mutations
7
- mutation 'true'
8
- mutation '[false]'
9
- mutation '[]'
10
- end
11
-
12
- Mutant::Meta::Example.add :array do
13
- source '[true, false]'
14
-
15
- singleton_mutations
16
-
17
- # Mutation of each element in array
18
- mutation '[false, false]'
19
- mutation '[true, true]'
20
-
21
- # Remove each element of array once
22
- mutation '[true]'
23
- mutation '[false]'
24
-
25
- # Empty array
26
- mutation '[]'
27
- end
@@ -1,20 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Mutant::Meta::Example.add :begin do
4
-
5
- source 'true; false'
6
- # Mutation of each statement in block
7
- mutation 'true; true'
8
- mutation 'false; false'
9
-
10
- # Delete each statement
11
- mutation 'true'
12
- mutation 'false'
13
- end
14
-
15
- Mutant::Meta::Example.add :begin do
16
-
17
- source s(:begin, s(:true))
18
- # Mutation of each statement in block
19
- mutation s(:begin, s(:false))
20
- end
@@ -1,199 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Mutant::Meta::Example.add :block do
4
- source 'foo { a; b }'
5
-
6
- singleton_mutations
7
- mutation 'foo { a }'
8
- mutation 'foo { b }'
9
- mutation 'foo {}'
10
- mutation 'foo { raise }'
11
- mutation 'foo { a; nil }'
12
- mutation 'foo { a; self }'
13
- mutation 'foo { nil; b }'
14
- mutation 'foo { self; b }'
15
- mutation 'foo'
16
- mutation 'a; b'
17
- end
18
-
19
- Mutant::Meta::Example.add :block do
20
- source 'foo { |a, b| }'
21
-
22
- singleton_mutations
23
- mutation 'foo'
24
- mutation 'foo { |a, b| raise }'
25
- mutation 'foo { |a, _b| }'
26
- mutation 'foo { |_a, b| }'
27
- mutation 'foo { |a, | }'
28
- mutation 'foo { |b, | }'
29
- mutation 'foo { || }'
30
- end
31
-
32
- Mutant::Meta::Example.add :block do
33
- source 'foo { |(a, b), c| }'
34
-
35
- singleton_mutations
36
- mutation 'foo { || }'
37
- mutation 'foo { |a, b, c| }'
38
- mutation 'foo { |(a, b), c| raise }'
39
- mutation 'foo { |(a), c| }'
40
- mutation 'foo { |(b), c| }'
41
- mutation 'foo { |c, | }'
42
- mutation 'foo { |(_a, b), c| }'
43
- mutation 'foo { |(a, _b), c| }'
44
- mutation 'foo { |(a, b), _c| }'
45
- mutation 'foo'
46
- end
47
-
48
- Mutant::Meta::Example.add :block do
49
- source 'foo(a, b) {}'
50
-
51
- singleton_mutations
52
- mutation 'foo(a, nil) {}'
53
- mutation 'foo(nil, b) {}'
54
- mutation 'foo(self, b) {}'
55
- mutation 'foo(a, self) {}'
56
- mutation 'foo(a, b)'
57
- mutation 'foo(a, b) { raise }'
58
- mutation 'foo(a) {}'
59
- mutation 'foo(b) {}'
60
- mutation 'foo {}'
61
- end
62
-
63
- Mutant::Meta::Example.add :block do
64
- source 'foo { |_a| }'
65
-
66
- singleton_mutations
67
- mutation 'foo { || }'
68
- mutation 'foo { |_a| raise }'
69
- mutation 'foo'
70
- end
71
-
72
- Mutant::Meta::Example.add :block do
73
- source 'foo { |a| }'
74
-
75
- singleton_mutations
76
- mutation 'foo { || }'
77
- mutation 'foo { |a| raise }'
78
- mutation 'foo { |_a| }'
79
- mutation 'foo'
80
- end
81
-
82
- Mutant::Meta::Example.add :block do
83
- source 'foo { |a| }'
84
-
85
- singleton_mutations
86
- mutation 'foo { || }'
87
- mutation 'foo { |a| raise }'
88
- mutation 'foo { |_a| }'
89
- mutation 'foo'
90
- end
91
-
92
- Mutant::Meta::Example.add :block do
93
- source 'foo { bar(nil) }'
94
-
95
- singleton_mutations
96
- mutation 'foo'
97
- mutation 'foo { bar }'
98
- mutation 'foo { nil }'
99
- mutation 'foo {}'
100
- mutation 'foo { self }'
101
- mutation 'foo { raise }'
102
- mutation 'foo.bar(nil)'
103
- mutation 'bar(nil)'
104
- end
105
-
106
- Mutant::Meta::Example.add :block do
107
- source 'foo { self << true }'
108
-
109
- singleton_mutations
110
- mutation 'foo { self << false }'
111
- mutation 'foo { nil << true }'
112
- mutation 'foo { nil }'
113
- mutation 'foo { self }'
114
- mutation 'foo { true }'
115
- mutation 'self << true'
116
- mutation 'foo << true'
117
- mutation 'foo { raise }'
118
- mutation 'foo { }'
119
- mutation 'foo'
120
- end
121
-
122
- Mutant::Meta::Example.add :block do
123
- source 'foo { next if true }'
124
-
125
- singleton_mutations
126
- mutation 'foo'
127
- mutation 'foo { }'
128
- mutation 'foo { self }'
129
- mutation 'foo { nil }'
130
- mutation 'foo { raise }'
131
- mutation 'foo { self if true }'
132
- mutation 'foo { nil if true }'
133
- mutation 'foo { break if true }'
134
- mutation 'foo { next if !true }'
135
- mutation 'foo { next if false }'
136
- mutation 'foo { next }'
137
- end
138
-
139
- Mutant::Meta::Example.add :block do
140
- source 'foo { next }'
141
-
142
- singleton_mutations
143
- mutation 'foo { nil }'
144
- mutation 'foo { raise }'
145
- mutation 'foo { self }'
146
- mutation 'foo { break }'
147
- mutation 'foo { }'
148
- mutation 'foo'
149
- end
150
-
151
- Mutant::Meta::Example.add :block do
152
- source 'foo { break if true }'
153
-
154
- singleton_mutations
155
- mutation 'foo'
156
- mutation 'foo { }'
157
- mutation 'foo { self }'
158
- mutation 'foo { nil }'
159
- mutation 'foo { raise }'
160
- mutation 'foo { self if true }'
161
- mutation 'foo { nil if true }'
162
- mutation 'foo { break if !true }'
163
- mutation 'foo { break if false }'
164
- mutation 'foo { break }'
165
- end
166
-
167
- Mutant::Meta::Example.add :block do
168
- source 'foo { break }'
169
-
170
- singleton_mutations
171
- mutation 'foo { nil }'
172
- mutation 'foo { raise }'
173
- mutation 'foo { self }'
174
- mutation 'foo { }'
175
- mutation 'foo'
176
- end
177
-
178
- Mutant::Meta::Example.add :block do
179
- source 'foo(&:bar).baz {}'
180
-
181
- singleton_mutations
182
-
183
- mutation 'foo(&:bar).baz { raise }'
184
- mutation 'foo.baz { }'
185
- mutation 'foo(&:bar).baz'
186
- mutation 'self.baz {}'
187
- end
188
-
189
- Mutant::Meta::Example.add :block do
190
- source 'foo(nil, &:bar).baz {}'
191
-
192
- singleton_mutations
193
- mutation 'foo(nil, &:bar).baz { raise }'
194
- mutation 'foo(&:bar).baz { }'
195
- mutation 'foo(nil).baz { }'
196
- mutation 'foo.baz { }'
197
- mutation 'self.baz { }'
198
- mutation 'foo(nil, &:bar).baz'
199
- end
@@ -1,8 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Mutant::Meta::Example.add :block_pass do
4
- source 'foo(&bar)'
5
-
6
- singleton_mutations
7
- mutation 'foo'
8
- end