mutest 0.0.9 → 0.0.10

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 (236) hide show
  1. checksums.yaml +5 -5
  2. data/.circleci/config.yml +38 -0
  3. data/{config/rubocop.yml → .rubocop.yml} +80 -183
  4. data/CHANGELOG.md +8 -0
  5. data/Gemfile +2 -3
  6. data/Gemfile.lock +41 -52
  7. data/README.md +16 -0
  8. data/Rakefile +1 -1
  9. data/lib/mutest.rb +5 -4
  10. data/lib/mutest/actor.rb +7 -6
  11. data/lib/mutest/actor/env.rb +3 -3
  12. data/lib/mutest/actor/mailbox.rb +5 -4
  13. data/lib/mutest/actor/receiver.rb +6 -5
  14. data/lib/mutest/actor/sender.rb +5 -4
  15. data/lib/mutest/ast.rb +4 -3
  16. data/lib/mutest/ast/meta.rb +3 -3
  17. data/lib/mutest/ast/meta/const.rb +7 -5
  18. data/lib/mutest/ast/meta/optarg.rb +6 -5
  19. data/lib/mutest/ast/meta/resbody.rb +6 -5
  20. data/lib/mutest/ast/meta/restarg.rb +6 -5
  21. data/lib/mutest/ast/meta/send.rb +8 -20
  22. data/lib/mutest/ast/meta/symbol.rb +6 -5
  23. data/lib/mutest/ast/named_children.rb +5 -5
  24. data/lib/mutest/ast/node_predicates.rb +4 -4
  25. data/lib/mutest/ast/nodes.rb +3 -3
  26. data/lib/mutest/ast/regexp.rb +3 -3
  27. data/lib/mutest/ast/regexp/transformer.rb +19 -11
  28. data/lib/mutest/ast/regexp/transformer/alternative.rb +6 -6
  29. data/lib/mutest/ast/regexp/transformer/character_set.rb +7 -7
  30. data/lib/mutest/ast/regexp/transformer/direct.rb +7 -7
  31. data/lib/mutest/ast/regexp/transformer/options_group.rb +7 -7
  32. data/lib/mutest/ast/regexp/transformer/quantifier.rb +11 -13
  33. data/lib/mutest/ast/regexp/transformer/recursive.rb +7 -7
  34. data/lib/mutest/ast/regexp/transformer/root.rb +6 -6
  35. data/lib/mutest/ast/regexp/transformer/text.rb +7 -7
  36. data/lib/mutest/ast/sexp.rb +3 -3
  37. data/lib/mutest/ast/types.rb +8 -6
  38. data/lib/mutest/cli.rb +5 -3
  39. data/lib/mutest/color.rb +4 -3
  40. data/lib/mutest/config.rb +4 -3
  41. data/lib/mutest/context.rb +4 -3
  42. data/lib/mutest/diff.rb +5 -3
  43. data/lib/mutest/env.rb +5 -5
  44. data/lib/mutest/env/bootstrap.rb +7 -5
  45. data/lib/mutest/expression.rb +7 -5
  46. data/lib/mutest/expression/method.rb +4 -4
  47. data/lib/mutest/expression/methods.rb +4 -4
  48. data/lib/mutest/expression/namespace.rb +9 -8
  49. data/lib/mutest/expression/parser.rb +9 -8
  50. data/lib/mutest/integration.rb +5 -3
  51. data/lib/mutest/integration/null.rb +3 -3
  52. data/lib/mutest/isolation.rb +2 -2
  53. data/lib/mutest/isolation/fork.rb +4 -4
  54. data/lib/mutest/isolation/none.rb +4 -4
  55. data/lib/mutest/loader.rb +2 -2
  56. data/lib/mutest/matcher.rb +4 -3
  57. data/lib/mutest/matcher/chain.rb +3 -3
  58. data/lib/mutest/matcher/compiler.rb +7 -5
  59. data/lib/mutest/matcher/config.rb +5 -4
  60. data/lib/mutest/matcher/filter.rb +3 -3
  61. data/lib/mutest/matcher/method.rb +13 -13
  62. data/lib/mutest/matcher/method/instance.rb +6 -6
  63. data/lib/mutest/matcher/method/singleton.rb +5 -5
  64. data/lib/mutest/matcher/methods.rb +7 -6
  65. data/lib/mutest/matcher/namespace.rb +3 -3
  66. data/lib/mutest/matcher/null.rb +3 -3
  67. data/lib/mutest/matcher/scope.rb +3 -3
  68. data/lib/mutest/matcher/static.rb +3 -3
  69. data/lib/mutest/meta.rb +4 -4
  70. data/lib/mutest/meta/example.rb +5 -4
  71. data/lib/mutest/meta/example/dsl.rb +12 -11
  72. data/lib/mutest/meta/example/verification.rb +7 -6
  73. data/lib/mutest/mutation.rb +7 -6
  74. data/lib/mutest/mutator.rb +6 -6
  75. data/lib/mutest/mutator/node.rb +19 -7
  76. data/lib/mutest/mutator/node/and_asgn.rb +4 -4
  77. data/lib/mutest/mutator/node/argument.rb +6 -5
  78. data/lib/mutest/mutator/node/arguments.rb +18 -5
  79. data/lib/mutest/mutator/node/begin.rb +4 -4
  80. data/lib/mutest/mutator/node/binary.rb +4 -4
  81. data/lib/mutest/mutator/node/block.rb +6 -5
  82. data/lib/mutest/mutator/node/block_pass.rb +4 -4
  83. data/lib/mutest/mutator/node/break.rb +4 -4
  84. data/lib/mutest/mutator/node/case.rb +6 -4
  85. data/lib/mutest/mutator/node/class.rb +4 -4
  86. data/lib/mutest/mutator/node/conditional_loop.rb +4 -4
  87. data/lib/mutest/mutator/node/const.rb +4 -4
  88. data/lib/mutest/mutator/node/define.rb +6 -6
  89. data/lib/mutest/mutator/node/defined.rb +4 -4
  90. data/lib/mutest/mutator/node/dstr.rb +4 -4
  91. data/lib/mutest/mutator/node/dsym.rb +4 -4
  92. data/lib/mutest/mutator/node/generic.rb +5 -4
  93. data/lib/mutest/mutator/node/if.rb +6 -4
  94. data/lib/mutest/mutator/node/index.rb +128 -0
  95. data/lib/mutest/mutator/node/kwbegin.rb +4 -4
  96. data/lib/mutest/mutator/node/literal.rb +4 -4
  97. data/lib/mutest/mutator/node/literal/array.rb +8 -6
  98. data/lib/mutest/mutator/node/literal/boolean.rb +5 -5
  99. data/lib/mutest/mutator/node/literal/fixnum.rb +5 -5
  100. data/lib/mutest/mutator/node/literal/float.rb +5 -5
  101. data/lib/mutest/mutator/node/literal/hash.rb +6 -6
  102. data/lib/mutest/mutator/node/literal/nil.rb +5 -5
  103. data/lib/mutest/mutator/node/literal/range.rb +5 -5
  104. data/lib/mutest/mutator/node/literal/regex.rb +5 -5
  105. data/lib/mutest/mutator/node/literal/string.rb +5 -5
  106. data/lib/mutest/mutator/node/literal/symbol.rb +5 -5
  107. data/lib/mutest/mutator/node/masgn.rb +4 -4
  108. data/lib/mutest/mutator/node/match_current_line.rb +4 -4
  109. data/lib/mutest/mutator/node/mlhs.rb +4 -4
  110. data/lib/mutest/mutator/node/named_value/access.rb +6 -6
  111. data/lib/mutest/mutator/node/named_value/constant_assignment.rb +6 -5
  112. data/lib/mutest/mutator/node/named_value/variable_assignment.rb +5 -5
  113. data/lib/mutest/mutator/node/next.rb +4 -4
  114. data/lib/mutest/mutator/node/nthref.rb +4 -4
  115. data/lib/mutest/mutator/node/op_asgn.rb +4 -4
  116. data/lib/mutest/mutator/node/or_asgn.rb +5 -4
  117. data/lib/mutest/mutator/node/procarg_zero.rb +45 -0
  118. data/lib/mutest/mutator/node/regexp.rb +6 -6
  119. data/lib/mutest/mutator/node/regexp/alternation_meta.rb +5 -5
  120. data/lib/mutest/mutator/node/regexp/capture_group.rb +5 -5
  121. data/lib/mutest/mutator/node/regexp/character_type.rb +5 -5
  122. data/lib/mutest/mutator/node/regexp/end_of_line_anchor.rb +5 -5
  123. data/lib/mutest/mutator/node/regexp/end_of_string_or_before_end_of_line_anchor.rb +5 -5
  124. data/lib/mutest/mutator/node/regexp/one_or_more.rb +5 -5
  125. data/lib/mutest/mutator/node/regexp/zero_or_more.rb +5 -5
  126. data/lib/mutest/mutator/node/regopt.rb +4 -4
  127. data/lib/mutest/mutator/node/resbody.rb +6 -4
  128. data/lib/mutest/mutator/node/rescue.rb +6 -4
  129. data/lib/mutest/mutator/node/return.rb +5 -4
  130. data/lib/mutest/mutator/node/send.rb +6 -34
  131. data/lib/mutest/mutator/node/send/attribute_assignment.rb +5 -5
  132. data/lib/mutest/mutator/node/send/binary.rb +5 -5
  133. data/lib/mutest/mutator/node/send/conditional.rb +5 -5
  134. data/lib/mutest/mutator/node/splat.rb +4 -4
  135. data/lib/mutest/mutator/node/super.rb +4 -4
  136. data/lib/mutest/mutator/node/when.rb +4 -4
  137. data/lib/mutest/mutator/node/yield.rb +4 -4
  138. data/lib/mutest/mutator/node/zsuper.rb +4 -4
  139. data/lib/mutest/mutator/util.rb +3 -3
  140. data/lib/mutest/mutator/util/array.rb +6 -6
  141. data/lib/mutest/mutator/util/symbol.rb +4 -4
  142. data/lib/mutest/parallel.rb +16 -12
  143. data/lib/mutest/parallel/master.rb +4 -4
  144. data/lib/mutest/parallel/source.rb +6 -5
  145. data/lib/mutest/parallel/worker.rb +6 -5
  146. data/lib/mutest/parser.rb +4 -3
  147. data/lib/mutest/registry.rb +6 -5
  148. data/lib/mutest/reporter.rb +2 -2
  149. data/lib/mutest/reporter/cli.rb +3 -3
  150. data/lib/mutest/reporter/cli/format.rb +9 -8
  151. data/lib/mutest/reporter/cli/printer.rb +8 -8
  152. data/lib/mutest/reporter/cli/printer/config.rb +5 -5
  153. data/lib/mutest/reporter/cli/printer/env_progress.rb +16 -16
  154. data/lib/mutest/reporter/cli/printer/env_result.rb +5 -5
  155. data/lib/mutest/reporter/cli/printer/mutation_progress_result.rb +5 -5
  156. data/lib/mutest/reporter/cli/printer/mutation_result.rb +5 -5
  157. data/lib/mutest/reporter/cli/printer/status.rb +6 -5
  158. data/lib/mutest/reporter/cli/printer/status_progressive.rb +5 -5
  159. data/lib/mutest/reporter/cli/printer/subject_progress.rb +5 -5
  160. data/lib/mutest/reporter/cli/printer/subject_result.rb +5 -5
  161. data/lib/mutest/reporter/cli/printer/test_result.rb +5 -5
  162. data/lib/mutest/reporter/cli/tput.rb +6 -5
  163. data/lib/mutest/reporter/null.rb +3 -3
  164. data/lib/mutest/reporter/sequence.rb +3 -3
  165. data/lib/mutest/repository.rb +9 -7
  166. data/lib/mutest/require_highjack.rb +2 -2
  167. data/lib/mutest/requirer.rb +2 -2
  168. data/lib/mutest/result.rb +18 -12
  169. data/lib/mutest/runner.rb +6 -3
  170. data/lib/mutest/runner/sink.rb +3 -3
  171. data/lib/mutest/scope.rb +2 -2
  172. data/lib/mutest/selector.rb +4 -3
  173. data/lib/mutest/selector/expression.rb +3 -3
  174. data/lib/mutest/source_file.rb +6 -5
  175. data/lib/mutest/subject.rb +5 -3
  176. data/lib/mutest/subject/method.rb +3 -3
  177. data/lib/mutest/subject/method/instance.rb +5 -5
  178. data/lib/mutest/subject/method/singleton.rb +4 -4
  179. data/lib/mutest/test.rb +4 -3
  180. data/lib/mutest/util.rb +3 -3
  181. data/lib/mutest/version.rb +2 -2
  182. data/lib/mutest/warning_filter.rb +3 -3
  183. data/lib/mutest/zombifier.rb +5 -4
  184. data/meta/block.rb +22 -3
  185. data/meta/case.rb +29 -1
  186. data/meta/index.rb +132 -0
  187. data/meta/indexasgn.rb +42 -0
  188. data/meta/lambda.rb +17 -0
  189. data/meta/send.rb +5 -139
  190. data/mutest-rspec.gemspec +1 -1
  191. data/mutest.gemspec +11 -12
  192. data/spec/integration/mutest/rspec_spec.rb +1 -1
  193. data/spec/shared/framework_integration_behavior.rb +1 -1
  194. data/spec/shared/idempotent_method_behavior.rb +2 -1
  195. data/spec/spec_helper.rb +5 -5
  196. data/spec/support/compress_helper.rb +2 -1
  197. data/spec/support/corpus.rb +12 -8
  198. data/spec/support/fake_actor.rb +19 -14
  199. data/spec/support/file_system.rb +10 -7
  200. data/spec/support/ice_nine_config.rb +3 -3
  201. data/spec/support/ruby_vm.rb +10 -11
  202. data/spec/support/shared_context.rb +1 -1
  203. data/spec/support/test_app.rb +1 -1
  204. data/spec/support/warning.rb +8 -7
  205. data/spec/support/xspec.rb +18 -17
  206. data/spec/unit/mutest/actor/binding_spec.rb +1 -0
  207. data/spec/unit/mutest/ast/meta/optarg_spec.rb +1 -0
  208. data/spec/unit/mutest/ast/meta/send/proc_predicate_spec.rb +1 -1
  209. data/spec/unit/mutest/ast/meta/send/receiver_possible_top_level_const_predicate_spec.rb +1 -1
  210. data/spec/unit/mutest/ast/meta/send_spec.rb +14 -18
  211. data/spec/unit/mutest/ast/regexp_spec.rb +4 -3
  212. data/spec/unit/mutest/ast_spec.rb +1 -1
  213. data/spec/unit/mutest/cli_spec.rb +15 -15
  214. data/spec/unit/mutest/env/bootstrap_spec.rb +1 -1
  215. data/spec/unit/mutest/integration_spec.rb +1 -0
  216. data/spec/unit/mutest/isolation/none_spec.rb +1 -1
  217. data/spec/unit/mutest/matcher/config_spec.rb +1 -0
  218. data/spec/unit/mutest/mutator/node_spec.rb +1 -1
  219. data/spec/unit/mutest/parallel/master_spec.rb +3 -3
  220. data/spec/unit/mutest/reporter/cli/printer_spec.rb +2 -0
  221. data/spec/unit/mutest/reporter/cli/tput_spec.rb +2 -0
  222. data/spec/unit/mutest/reporter/cli_spec.rb +2 -0
  223. data/spec/unit/mutest/repository/diff_spec.rb +1 -1
  224. data/spec/unit/mutest/runner_spec.rb +1 -1
  225. data/spec/unit/mutest/subject_spec.rb +1 -1
  226. data/spec/unit/mutest/warning_filter_spec.rb +2 -3
  227. data/spec/unit/mutest/zombifier_spec.rb +1 -1
  228. data/test_app/Gemfile.rspec3.8 +7 -0
  229. metadata +67 -68
  230. data/.buildkite/hooks/pre-command +0 -3
  231. data/.buildkite/pipeline.yml +0 -38
  232. data/.gitmodules +0 -3
  233. data/circle.yml +0 -10
  234. data/config/triage.yml +0 -2
  235. data/config/yardstick.yml +0 -2
  236. data/lib/mutest/mutator/node/send/index.rb +0 -47
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: b26a90026934472e1be77ed82cac4f77c7a81019
4
- data.tar.gz: 190a041a713f8b506f3ed0c501cfdcdd8f761656
2
+ SHA256:
3
+ metadata.gz: 2d20005e53a54387ff8a502e7e4b88614e7831e373988407455cb6300add4796
4
+ data.tar.gz: 2d801c64f6f629b38c12a2b1842c5f32658bbce2ae6eac43ca3ca59730e888b6
5
5
  SHA512:
6
- metadata.gz: d56c47a5af0f59e062267ec62d0f3c8b0b638f61666d246f8a342f3c79bda3c0ab1b6f04f392457840d32e47237194dc5acdf3efd3e264e95fb30add61b14eaa
7
- data.tar.gz: 7ba5927e0912f67f2807de665da9a1c35ab4fc312edde1cb60d0667fc3bcbb81164e4ff10874a33fbee848fea92c97f71312e6dd094c697a44a0a5a701be5e81
6
+ metadata.gz: 804d11952cb1c4ed31d50c82c266cf1da28eadae6879778b175a9fda81195e082ffcb8ad6a8aa4d5c93aa0c072790c9409991b98adf0c661be74e03f6981ddbe
7
+ data.tar.gz: c5d8ce49b93973e2ab81a3543acb10a7ac429d48e5d12550aefe8712a0ece3da7f06faf96439e3483ea33ac6d39063d5e10437a674a124ec730b5f53bdb0ccf5
@@ -0,0 +1,38 @@
1
+ defaults: &defaults
2
+ working_directory: ~/mutant
3
+ docker:
4
+ - image: circleci/ruby:2.3.3
5
+ version: 2
6
+ jobs:
7
+ unit_specs:
8
+ <<: *defaults
9
+ steps:
10
+ - checkout
11
+ - run: bundle install
12
+ - run: COVERAGE=true bundle exec rspec spec/unit
13
+ integration_specs:
14
+ <<: *defaults
15
+ steps:
16
+ - checkout
17
+ - run: bundle install
18
+ - run: bundle exec rspec spec/integration
19
+ metrics:
20
+ <<: *defaults
21
+ steps:
22
+ - checkout
23
+ - run: bundle install
24
+ - run: bundle exec rubocop
25
+ mutest:
26
+ <<: *defaults
27
+ steps:
28
+ - checkout
29
+ - run: bundle install
30
+ - run: bundle exec rake metrics:mutest
31
+ workflows:
32
+ version: 2
33
+ test:
34
+ jobs:
35
+ - unit_specs
36
+ - integration_specs
37
+ - metrics
38
+ - mutest
@@ -1,31 +1,55 @@
1
1
  ---
2
2
  require:
3
3
  - rubocop-rspec
4
- - rubocop/devtools
5
4
  AllCops:
6
5
  Exclude:
7
6
  - 'test_app/**/*'
8
7
  - 'tmp/**/*'
9
8
  - vendor/**/*
10
9
  DisplayCopNames: true
11
- TargetRubyVersion: 2.2
12
- # This ends up being too spammy
13
- Style/Documentation:
14
- Enabled: false
15
- Style/ExtraSpacing:
10
+ TargetRubyVersion: 2.3
11
+ Layout/AlignHash:
12
+ EnforcedColonStyle: table
13
+ EnforcedHashRocketStyle: table
14
+ Layout/ExtraSpacing:
16
15
  AllowForAlignment: true
16
+ Layout/FirstArrayElementLineBreak:
17
+ Enabled: true
18
+ Layout/FirstHashElementLineBreak:
19
+ Enabled: true
20
+ Layout/FirstMethodArgumentLineBreak:
21
+ Enabled: true
22
+ Layout/FirstMethodParameterLineBreak:
23
+ Enabled: true
24
+ Layout/IndentArray:
25
+ EnforcedStyle: consistent
26
+ Layout/IndentHash:
27
+ EnforcedStyle: consistent
28
+ Layout/MultilineArrayBraceLayout:
29
+ Enabled: true
30
+ Layout/MultilineAssignmentLayout:
31
+ EnforcedStyle: new_line
32
+ Enabled: true
33
+ Layout/MultilineHashBraceLayout:
34
+ Enabled: true
35
+ Layout/MultilineMethodCallBraceLayout:
36
+ Enabled: true
37
+ Layout/MultilineMethodDefinitionBraceLayout:
38
+ Enabled: true
39
+ Layout/MultilineMethodCallIndentation:
40
+ EnforcedStyle: indented
41
+ Lint/AmbiguousBlockAssociation:
42
+ Enabled: false
17
43
  Metrics/LineLength:
18
44
  Max: 100
19
45
  Metrics/BlockLength:
20
- Exclude:
21
- # Ignore migration DSL
22
- - db/migrations/**/*
23
- # Ignore RSpec DSL
24
- - spec/**/*
25
- # Ignore Rake task DSL
26
- - Rakefile
27
- Style/IfUnlessModifier:
28
- MaxLineLength: 100
46
+ Enabled: false
47
+ Naming/UncommunicativeMethodParamName:
48
+ Enabled: false
49
+ Style/AccessModifierDeclarations:
50
+ Enabled: false
51
+ Style/Documentation:
52
+ Enabled: false
29
53
  Style/Next:
30
54
  EnforcedStyle: always
31
55
  Style/PercentLiteralDelimiters:
@@ -51,187 +75,28 @@ Style/Send:
51
75
  Enabled: true
52
76
  Style/AutoResourceCleanup:
53
77
  Enabled: true
54
- Style/FirstArrayElementLineBreak:
55
- Enabled: true
56
- Style/FirstHashElementLineBreak:
57
- Enabled: true
58
- Style/FirstMethodArgumentLineBreak:
59
- Enabled: true
60
- Style/FirstMethodParameterLineBreak:
61
- Enabled: true
62
- Style/MultilineArrayBraceLayout:
63
- Enabled: true
64
- Style/MultilineAssignmentLayout:
65
- EnforcedStyle: new_line
66
- Enabled: true
67
- Style/MultilineHashBraceLayout:
68
- Enabled: true
69
- Style/MultilineMethodCallBraceLayout:
70
- Enabled: true
71
- Style/MultilineMethodDefinitionBraceLayout:
72
- Enabled: true
73
78
  Style/OptionHash:
74
79
  Enabled: true
75
80
  Style/StringMethods:
76
81
  Enabled: true
77
- Style/IndentArray:
78
- EnforcedStyle: consistent
79
- Style/IndentHash:
80
- EnforcedStyle: consistent
81
- MultilineMethodCallIndentation:
82
- EnforcedStyle: indented
83
82
  Style/Alias:
84
83
  EnforcedStyle: prefer_alias_method
85
- Style/AlignHash:
86
- EnforcedColonStyle: table
87
- Style/SignalException:
88
- EnforcedStyle: semantic
89
84
  Style/SingleLineBlockParams:
90
85
  Enabled: false
91
- # We prefer being able to write
92
- #
93
- # foo(*%w[bar baz qux norf hello goodbye])
94
- #
95
- # over
96
- #
97
- # foo('bar', 'baz', 'qux', 'norf', 'hello', 'goodbye')
98
- #
99
- # because
100
- #
101
- # 1. the `%w` signals that all elements are strings without interpolation
102
- # 2. the `%w` case is more compact
103
- #
104
- # The only exception is method invocations with a single argument. These
105
- # cases should be `foo('bar')` and never `foo(*%w[bar])`
106
- #
107
- Lint/UnneededSplatExpansion:
108
- Enabled: false
109
- # We only use guard clauses when it guards two or more statements:
110
- #
111
- # # bad
112
- # def foo
113
- # return if bar
114
- #
115
- # baz
116
- # end
117
- #
118
- # # good
119
- # def foo
120
- # baz if bar
121
- # end
122
- #
123
- # This includes conditionals with an `else` branch:
124
- #
125
- # # bad
126
- # def foo
127
- # return qux if bar
128
- #
129
- # baz
130
- # end
131
- #
132
- # # good
133
- # def foo
134
- # if bar
135
- # qux
136
- # else
137
- # baz
138
- # end
139
- # end
140
- #
141
- # It is up to the author of the code in question if the condition concerns
142
- # exactly two statements
143
- #
144
- # # ok
145
- # def foo
146
- # return if bar
147
- #
148
- # baz
149
- # qux
150
- # end
151
- #
152
- # # also ok
153
- # def foo
154
- # if bar
155
- # baz
156
- # qux
157
- # end
158
- # end
159
- #
160
- # Use a guard clause if more than two statements are being guarded by the conditional
161
- #
162
- # # bad
163
- # def foo
164
- # if bar
165
- # baz
166
- # qux
167
- # norf
168
- # end
169
- # end
170
- #
171
- # # good
172
- # def foo
173
- # return if bar
174
- #
175
- # baz
176
- # qux
177
- # norf
178
- # end
179
86
  Style/GuardClause:
180
87
  Enabled: false
181
- # Prefer writing an empty method on two lines
182
- #
183
- # # good
184
- # def foo
185
- # end
186
- #
187
- # # bar
188
- # def foo; end
189
- #
190
88
  Style/EmptyMethod:
191
89
  EnforcedStyle: expanded
192
- # RuboCop disables end alignment by default. Explanation:
193
- #
194
- # The end alignment cops are in the Lint category because the bad
195
- # indentation could be something more serious than just a style issue.
196
- # It could be a mistake in which keyword you think you're matching with the end.
197
- # (ruby -w warns for these too, by the way.) So for this reason I don't think
198
- # we can add auto-correct for these cops.
199
- #
200
- # From https://github.com/bbatsov/rubocop/pull/1789#issuecomment-92308357
201
- #
202
- # I think we have more than enough tools that sound the alarms if we have
203
- # such an obvious mistake like mismatched tokens.
204
- #
205
- # - Our specs are likely to fail
206
- # - RuboCop will flag it regardless, it just doesn't autocorrect it by default
207
- # - Ruby will emit a warning which we configure to fail our specs
208
- #
209
- # So I think it is safe to enable autocorrect for end alignment cops because it
210
- # does not seem unsafe and it improves workflow to be able to autocorrect alignment
211
- Lint/DefEndAlignment:
212
- AutoCorrect: true
213
- # See explanation for `Lint/DefEndAlignment`
214
- Lint/EndAlignment:
215
- AutoCorrect: true
216
90
 
217
91
  # TODO is inlined so that it takes precedence.
218
92
 
219
- # This configuration was generated by
220
- # `rubocop --auto-gen-config --exclude-limit 0`
221
- # on 2017-01-27 00:08:49 -0800 using RuboCop version 0.47.1.
222
- # The point is for the user to remove these configuration records
223
- # one by one as the offenses are removed from the code base.
224
- # Note that changes in the inspected code, or installation of new
225
- # versions of RuboCop, may require this file to be generated again.
93
+ Lint/BooleanSymbol:
94
+ Enabled: false
226
95
 
227
- # Offense count: 1
228
- # Cop supports --auto-correct.
229
- # Configuration parameters: EnforcedStyleAlignWith, SupportedStylesAlignWith, AutoCorrect.
230
- # SupportedStylesAlignWith: keyword, variable, start_of_line
96
+ Lint/InterpolationCheck:
97
+ Enabled: false
231
98
 
232
- # Offense count: 4
233
- # Cop supports --auto-correct.
234
- Lint/UnifiedInteger:
99
+ Lint/MissingCopEnableDirective:
235
100
  Enabled: false
236
101
 
237
102
  # Offense count: 10
@@ -251,16 +116,25 @@ Metrics/LineLength:
251
116
  Style/AndOr:
252
117
  Enabled: false
253
118
 
119
+ Style/EvalWithLocation:
120
+ Enabled: false
121
+
122
+ Style/ExpandPathArguments:
123
+ Enabled: false
124
+
254
125
  # Offense count: 150
255
126
  # Cop supports --auto-correct.
256
- Style/FirstMethodArgumentLineBreak:
127
+ Layout/FirstMethodArgumentLineBreak:
128
+ Enabled: false
129
+
130
+ Style/FrozenStringLiteralComment:
257
131
  Enabled: false
258
132
 
259
133
  # Offense count: 2
260
134
  # Cop supports --auto-correct.
261
135
  # Configuration parameters: SupportedStyles, IndentationWidth.
262
136
  # SupportedStyles: special_inside_parentheses, consistent, align_braces
263
- Style/IndentHash:
137
+ Layout/IndentHash:
264
138
  EnforcedStyle: special_inside_parentheses
265
139
 
266
140
  # Offense count: 21
@@ -277,8 +151,7 @@ Style/LambdaCall:
277
151
  Style/Next:
278
152
  Enabled: false
279
153
 
280
- # Devtools Cops
281
- Devtools/GroupSingleLineLet:
154
+ Style/StderrPuts:
282
155
  Enabled: false
283
156
 
284
157
  # RSpec Cops
@@ -303,6 +176,15 @@ RSpec/DescribeClass:
303
176
  # Note that changes in the inspected code, or installation of new
304
177
  # versions of RuboCop, may require this file to be generated again.
305
178
 
179
+ RSpec/ContextWording:
180
+ Enabled: false
181
+
182
+ RSpec/ExpectChange:
183
+ Enabled: false
184
+
185
+ RSpec/ExpectInHook:
186
+ Enabled: false
187
+
306
188
  # Offense count: 89
307
189
  # Configuration parameters: CustomIncludeMethods.
308
190
  RSpec/EmptyExampleGroup:
@@ -339,12 +221,21 @@ RSpec/FilePath:
339
221
  - 'spec/unit/mutest/matcher/scope_spec.rb'
340
222
  - 'spec/unit/mutest/matcher/static_spec.rb'
341
223
 
224
+ RSpec/ImplicitSubject:
225
+ Enabled: false
226
+
342
227
  # Offense count: 5
343
228
  # Configuration parameters: AssignmentOnly.
344
229
  RSpec/InstanceVariable:
345
230
  Exclude:
346
231
  - 'spec/unit/mutest/parallel/master_spec.rb'
347
232
 
233
+ RSpec/IteratedExpectation:
234
+ Enabled: false
235
+
236
+ RSpec/LetBeforeExamples:
237
+ Enabled: false
238
+
348
239
  # Offense count: 93
349
240
  # Configuration parameters: EnforcedStyle, SupportedStyles.
350
241
  # SupportedStyles: allow, expect
@@ -382,6 +273,12 @@ RSpec/NestedGroups:
382
273
  - 'spec/unit/mutest/repository/diff_spec.rb'
383
274
  - 'spec/unit/mutest/runner/sink_spec.rb'
384
275
 
276
+ RSpec/ScatteredLet:
277
+ Enabled: false
278
+
279
+ RSpec/VoidExpect:
280
+ Enabled: false
281
+
385
282
  # Offense count: 18
386
283
  # Configuration parameters: IgnoreSymbolicNames.
387
284
  RSpec/VerifiedDoubles:
@@ -6,6 +6,14 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/).
6
6
 
7
7
  ## [Master (Unreleased)]
8
8
 
9
+ ## [0.0.10] - 2019-02-10
10
+
11
+ ### Fixed
12
+ - Fix ruby 2.5 inline rescue/ensure/else support (and probably other invalid mutations) [[#102](https://github.com/dgollahon/mutest/pull/102/files)] ([@dgollahon][])]
13
+
14
+ ### Changed
15
+ - Drop support for ruby 2.1 and 2.2. [[#100](https://github.com/dgollahon/mutest/pull/100/files)] ([@dgollahon][])]
16
+
9
17
  ## [0.0.9] - 2018-04-22
10
18
 
11
19
  ### Changed
data/Gemfile CHANGED
@@ -9,9 +9,8 @@ gem 'pry-byebug', '~> 3.4'
9
9
  gem 'rake', '~> 12'
10
10
  gem 'rspec', '~> 3.6'
11
11
  gem 'rspec-its', '~> 1.2.0'
12
- gem 'rubocop', '~> 0.47.1'
13
- gem 'rubocop-devtools', git: 'https://github.com/backus/rubocop-devtools.git'
14
- gem 'rubocop-rspec', '~> 1.10.0'
12
+ gem 'rubocop', '~> 0.63'
13
+ gem 'rubocop-rspec', '~> 1.32'
15
14
  gem 'simplecov', '~> 0.13.0'
16
15
 
17
16
  # Lock to 1.10 in tests until https://git.io/vHjug is released
@@ -1,17 +1,7 @@
1
- GIT
2
- remote: https://github.com/backus/rubocop-devtools.git
3
- revision: cafba9afd1e014a4b14c7ce06982960643823148
4
- specs:
5
- rubocop-devtools (0.0.1)
6
- adamantium (~> 0.2.0)
7
- anima (~> 0.3.0)
8
- concord (~> 0.1.5)
9
- ice_nine (~> 0.11.1)
10
-
11
1
  PATH
12
2
  remote: .
13
3
  specs:
14
- mutest (0.0.8)
4
+ mutest (0.0.9)
15
5
  abstract_type (~> 0.0.7)
16
6
  adamantium (~> 0.2.0)
17
7
  anima (~> 0.3.0)
@@ -26,7 +16,7 @@ PATH
26
16
  parser (>= 2.5.0.1, < 2.6)
27
17
  procto (~> 0.0.2)
28
18
  regexp_parser (~> 0.4.9)
29
- unparser (~> 0.2.5)
19
+ unparser (~> 0.4.2)
30
20
 
31
21
  GEM
32
22
  remote: https://rubygems.org/
@@ -40,8 +30,8 @@ GEM
40
30
  adamantium (~> 0.2)
41
31
  equalizer (~> 0.0.11)
42
32
  ast (2.4.0)
43
- byebug (9.0.6)
44
- coderay (1.1.1)
33
+ byebug (10.0.2)
34
+ coderay (1.1.2)
45
35
  concord (0.1.5)
46
36
  adamantium (~> 0.2.0)
47
37
  equalizer (~> 0.0.9)
@@ -49,10 +39,11 @@ GEM
49
39
  docile (1.1.5)
50
40
  equalizer (0.0.11)
51
41
  ice_nine (0.11.2)
42
+ jaro_winkler (1.5.2)
52
43
  json (2.1.0)
53
44
  memoizable (0.4.2)
54
45
  thread_safe (~> 0.3, >= 0.3.1)
55
- method_source (0.8.2)
46
+ method_source (0.9.2)
56
47
  morpher (0.2.6)
57
48
  abstract_type (~> 0.0.7)
58
49
  adamantium (~> 0.2.0)
@@ -63,55 +54,54 @@ GEM
63
54
  ice_nine (~> 0.11.0)
64
55
  procto (~> 0.0.2)
65
56
  parallel (1.10.0)
66
- parser (2.5.1.0)
57
+ parser (2.5.3.0)
67
58
  ast (~> 2.4.0)
68
- powerpack (0.1.1)
59
+ powerpack (0.1.2)
69
60
  procto (0.0.3)
70
- pry (0.10.4)
61
+ pry (0.12.2)
71
62
  coderay (~> 1.1.0)
72
- method_source (~> 0.8.1)
73
- slop (~> 3.4)
74
- pry-byebug (3.4.2)
75
- byebug (~> 9.0)
63
+ method_source (~> 0.9.0)
64
+ pry-byebug (3.6.0)
65
+ byebug (~> 10.0)
76
66
  pry (~> 0.10)
77
- rainbow (2.2.2)
78
- rake
79
- rake (12.0.0)
67
+ rainbow (3.0.0)
68
+ rake (12.3.2)
80
69
  regexp_parser (0.4.13)
81
- rspec (3.6.0)
82
- rspec-core (~> 3.6.0)
83
- rspec-expectations (~> 3.6.0)
84
- rspec-mocks (~> 3.6.0)
85
- rspec-core (3.6.0)
86
- rspec-support (~> 3.6.0)
87
- rspec-expectations (3.6.0)
70
+ rspec (3.8.0)
71
+ rspec-core (~> 3.8.0)
72
+ rspec-expectations (~> 3.8.0)
73
+ rspec-mocks (~> 3.8.0)
74
+ rspec-core (3.8.0)
75
+ rspec-support (~> 3.8.0)
76
+ rspec-expectations (3.8.2)
88
77
  diff-lcs (>= 1.2.0, < 2.0)
89
- rspec-support (~> 3.6.0)
78
+ rspec-support (~> 3.8.0)
90
79
  rspec-its (1.2.0)
91
80
  rspec-core (>= 3.0.0)
92
81
  rspec-expectations (>= 3.0.0)
93
- rspec-mocks (3.6.0)
82
+ rspec-mocks (3.8.0)
94
83
  diff-lcs (>= 1.2.0, < 2.0)
95
- rspec-support (~> 3.6.0)
96
- rspec-support (3.6.0)
97
- rubocop (0.47.1)
98
- parser (>= 2.3.3.1, < 3.0)
84
+ rspec-support (~> 3.8.0)
85
+ rspec-support (3.8.0)
86
+ rubocop (0.64.0)
87
+ jaro_winkler (~> 1.5.1)
88
+ parallel (~> 1.10)
89
+ parser (>= 2.5, != 2.5.1.1)
99
90
  powerpack (~> 0.1)
100
- rainbow (>= 1.99.1, < 3.0)
91
+ rainbow (>= 2.2.2, < 4.0)
101
92
  ruby-progressbar (~> 1.7)
102
- unicode-display_width (~> 1.0, >= 1.0.1)
103
- rubocop-rspec (1.10.0)
104
- rubocop (>= 0.42.0)
105
- ruby-progressbar (1.8.1)
93
+ unicode-display_width (~> 1.4.0)
94
+ rubocop-rspec (1.32.0)
95
+ rubocop (>= 0.60.0)
96
+ ruby-progressbar (1.10.0)
106
97
  simplecov (0.13.0)
107
98
  docile (~> 1.1.0)
108
99
  json (>= 1.8, < 3)
109
100
  simplecov-html (~> 0.10.0)
110
- simplecov-html (0.10.1)
111
- slop (3.6.0)
112
- thread_safe (0.3.5)
113
- unicode-display_width (1.2.1)
114
- unparser (0.2.7)
101
+ simplecov-html (0.10.2)
102
+ thread_safe (0.3.6)
103
+ unicode-display_width (1.4.1)
104
+ unparser (0.4.2)
115
105
  abstract_type (~> 0.0.7)
116
106
  adamantium (~> 0.2.0)
117
107
  concord (~> 0.1.5)
@@ -131,10 +121,9 @@ DEPENDENCIES
131
121
  rake (~> 12)
132
122
  rspec (~> 3.6)
133
123
  rspec-its (~> 1.2.0)
134
- rubocop (~> 0.47.1)
135
- rubocop-devtools!
136
- rubocop-rspec (~> 1.10.0)
124
+ rubocop (~> 0.63)
125
+ rubocop-rspec (~> 1.32)
137
126
  simplecov (~> 0.13.0)
138
127
 
139
128
  BUNDLED WITH
140
- 1.16.0
129
+ 1.17.2