mutant 0.8.24 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.circleci/config.yml +3 -3
- data/Changelog.md +14 -654
- data/Gemfile +13 -0
- data/Gemfile.lock +59 -64
- data/LICENSE +271 -20
- data/README.md +73 -140
- data/Rakefile +0 -21
- data/bin/mutant +7 -2
- data/config/reek.yml +2 -1
- data/config/rubocop.yml +5 -9
- data/docs/incremental.md +76 -0
- data/docs/known-problems.md +0 -14
- data/docs/mutant-minitest.md +1 -1
- data/docs/mutant-rspec.md +2 -24
- data/lib/mutant.rb +45 -53
- data/lib/mutant/ast/nodes.rb +0 -2
- data/lib/mutant/ast/types.rb +1 -117
- data/lib/mutant/base.rb +192 -0
- data/lib/mutant/bootstrap.rb +145 -0
- data/lib/mutant/cli.rb +68 -54
- data/lib/mutant/config.rb +119 -6
- data/lib/mutant/env.rb +94 -8
- data/lib/mutant/expression.rb +6 -1
- data/lib/mutant/expression/parser.rb +9 -31
- data/lib/mutant/integration.rb +64 -36
- data/lib/mutant/isolation.rb +16 -1
- data/lib/mutant/isolation/fork.rb +105 -40
- data/lib/mutant/license.rb +34 -0
- data/lib/mutant/license/subscription.rb +47 -0
- data/lib/mutant/license/subscription/commercial.rb +57 -0
- data/lib/mutant/license/subscription/opensource.rb +77 -0
- data/lib/mutant/loader.rb +27 -4
- data/lib/mutant/matcher.rb +48 -1
- data/lib/mutant/matcher/chain.rb +1 -1
- data/lib/mutant/matcher/config.rb +0 -2
- data/lib/mutant/matcher/filter.rb +1 -1
- data/lib/mutant/matcher/method.rb +11 -7
- data/lib/mutant/matcher/methods.rb +1 -1
- data/lib/mutant/matcher/namespace.rb +1 -1
- data/lib/mutant/matcher/null.rb +1 -1
- data/lib/mutant/matcher/scope.rb +1 -1
- data/lib/mutant/meta/example/dsl.rb +0 -8
- data/lib/mutant/mutation.rb +1 -2
- data/lib/mutant/mutator/node.rb +2 -9
- data/lib/mutant/mutator/node/arguments.rb +1 -1
- data/lib/mutant/mutator/node/class.rb +0 -8
- data/lib/mutant/mutator/node/define.rb +0 -12
- data/lib/mutant/mutator/node/generic.rb +30 -44
- data/lib/mutant/mutator/node/index.rb +4 -4
- data/lib/mutant/mutator/node/literal/regex.rb +0 -39
- data/lib/mutant/mutator/node/send.rb +13 -12
- data/lib/mutant/parallel.rb +61 -40
- data/lib/mutant/parallel/driver.rb +59 -0
- data/lib/mutant/parallel/source.rb +6 -2
- data/lib/mutant/parallel/worker.rb +63 -45
- data/lib/mutant/range.rb +15 -0
- data/lib/mutant/reporter/cli.rb +5 -11
- data/lib/mutant/reporter/cli/format.rb +3 -46
- data/lib/mutant/reporter/cli/printer/config.rb +5 -6
- data/lib/mutant/reporter/cli/printer/env.rb +40 -0
- data/lib/mutant/reporter/cli/printer/env_progress.rb +13 -17
- data/lib/mutant/reporter/cli/printer/isolation_result.rb +17 -3
- data/lib/mutant/reporter/cli/printer/mutation_result.rb +2 -3
- data/lib/mutant/reporter/cli/printer/status_progressive.rb +19 -10
- data/lib/mutant/repository.rb +0 -65
- data/lib/mutant/repository/diff.rb +104 -0
- data/lib/mutant/repository/diff/ranges.rb +52 -0
- data/lib/mutant/result.rb +16 -7
- data/lib/mutant/runner.rb +38 -47
- data/lib/mutant/runner/sink.rb +1 -1
- data/lib/mutant/selector/null.rb +19 -0
- data/lib/mutant/subject.rb +3 -1
- data/lib/mutant/subject/method/instance.rb +3 -1
- data/lib/mutant/transform.rb +511 -0
- data/lib/mutant/variable.rb +282 -0
- data/lib/mutant/version.rb +1 -1
- data/lib/mutant/warnings.rb +113 -0
- data/meta/case.rb +1 -0
- data/meta/class.rb +0 -9
- data/meta/def.rb +1 -26
- data/meta/regexp.rb +10 -20
- data/meta/send.rb +14 -46
- data/mutant-minitest.gemspec +1 -1
- data/mutant-rspec.gemspec +2 -2
- data/mutant.gemspec +15 -16
- data/mutant.yml +6 -0
- data/spec/integration/mutant/isolation/fork_spec.rb +22 -5
- data/spec/integration/mutant/minitest_spec.rb +3 -2
- data/spec/integration/mutant/rspec_spec.rb +4 -3
- data/spec/integrations.yml +16 -13
- data/spec/shared/base_behavior.rb +45 -0
- data/spec/shared/framework_integration_behavior.rb +43 -14
- data/spec/spec_helper.rb +21 -17
- data/spec/support/corpus.rb +56 -95
- data/spec/support/shared_context.rb +37 -14
- data/spec/support/xspec.rb +7 -3
- data/spec/unit/mutant/bootstrap_spec.rb +216 -0
- data/spec/unit/mutant/cli_spec.rb +173 -117
- data/spec/unit/mutant/config_spec.rb +126 -0
- data/spec/unit/mutant/either_spec.rb +247 -0
- data/spec/unit/mutant/env_spec.rb +162 -40
- data/spec/unit/mutant/expression/method_spec.rb +16 -0
- data/spec/unit/mutant/expression/parser_spec.rb +29 -33
- data/spec/unit/mutant/expression_spec.rb +5 -7
- data/spec/unit/mutant/integration_spec.rb +100 -9
- data/spec/unit/mutant/isolation/fork_spec.rb +125 -67
- data/spec/unit/mutant/isolation/result_spec.rb +33 -1
- data/spec/unit/mutant/license_spec.rb +257 -0
- data/spec/unit/mutant/loader_spec.rb +50 -11
- data/spec/unit/mutant/matcher/compiler_spec.rb +0 -78
- data/spec/unit/mutant/matcher/method/instance_spec.rb +55 -11
- data/spec/unit/mutant/matcher/method/singleton_spec.rb +12 -2
- data/spec/unit/mutant/matcher_spec.rb +102 -0
- data/spec/unit/mutant/maybe_spec.rb +60 -0
- data/spec/unit/mutant/meta/example/dsl_spec.rb +1 -17
- data/spec/unit/mutant/mutation_spec.rb +13 -6
- data/spec/unit/mutant/parallel/driver_spec.rb +112 -14
- data/spec/unit/mutant/parallel/source/array_spec.rb +25 -17
- data/spec/unit/mutant/parallel/worker_spec.rb +182 -44
- data/spec/unit/mutant/parallel_spec.rb +105 -8
- data/spec/unit/mutant/range_spec.rb +141 -0
- data/spec/unit/mutant/reporter/cli/printer/config_spec.rb +7 -21
- data/spec/unit/mutant/reporter/cli/printer/env_progress_spec.rb +15 -6
- data/spec/unit/mutant/reporter/cli/printer/env_result_spec.rb +10 -2
- data/spec/unit/mutant/reporter/cli/printer/isolation_result_spec.rb +12 -4
- data/spec/unit/mutant/reporter/cli/printer/mutation_result_spec.rb +31 -2
- data/spec/unit/mutant/reporter/cli/printer/status_progressive_spec.rb +4 -4
- data/spec/unit/mutant/reporter/cli/printer/subject_result_spec.rb +5 -0
- data/spec/unit/mutant/reporter/cli_spec.rb +46 -123
- data/spec/unit/mutant/repository/diff/ranges_spec.rb +180 -0
- data/spec/unit/mutant/repository/diff_spec.rb +84 -71
- data/spec/unit/mutant/require_highjack_spec.rb +1 -1
- data/spec/unit/mutant/result/env_spec.rb +39 -9
- data/spec/unit/mutant/result/test_spec.rb +14 -0
- data/spec/unit/mutant/runner_spec.rb +88 -41
- data/spec/unit/mutant/selector/expression_spec.rb +11 -10
- data/spec/unit/mutant/selector/null_spec.rb +17 -0
- data/spec/unit/mutant/subject/method/instance_spec.rb +44 -5
- data/spec/unit/mutant/subject/method/singleton_spec.rb +9 -2
- data/spec/unit/mutant/subject_spec.rb +9 -1
- data/spec/unit/mutant/transform/array_spec.rb +92 -0
- data/spec/unit/mutant/transform/bool_spec.rb +63 -0
- data/spec/unit/mutant/transform/error_spec.rb +132 -0
- data/spec/unit/mutant/transform/exception_spec.rb +44 -0
- data/spec/unit/mutant/transform/hash_spec.rb +236 -0
- data/spec/unit/mutant/transform/index_spec.rb +92 -0
- data/spec/unit/mutant/transform/named_spec.rb +49 -0
- data/spec/unit/mutant/transform/primitive_spec.rb +56 -0
- data/spec/unit/mutant/transform/sequence_spec.rb +98 -0
- data/spec/unit/mutant/variable_spec.rb +618 -0
- data/spec/unit/mutant/warnings_spec.rb +89 -0
- data/spec/unit/mutant/world_spec.rb +63 -0
- data/test_app/Gemfile.minitest +0 -2
- metadata +79 -113
- data/.gitattributes +0 -1
- data/.ruby-gemset +0 -1
- data/config/triage.yml +0 -2
- data/lib/mutant/actor.rb +0 -57
- data/lib/mutant/actor/env.rb +0 -31
- data/lib/mutant/actor/mailbox.rb +0 -34
- data/lib/mutant/actor/receiver.rb +0 -42
- data/lib/mutant/actor/sender.rb +0 -26
- data/lib/mutant/ast/meta/restarg.rb +0 -19
- data/lib/mutant/ast/regexp.rb +0 -42
- data/lib/mutant/ast/regexp/transformer.rb +0 -187
- data/lib/mutant/ast/regexp/transformer/direct.rb +0 -123
- data/lib/mutant/ast/regexp/transformer/named_group.rb +0 -59
- data/lib/mutant/ast/regexp/transformer/options_group.rb +0 -83
- data/lib/mutant/ast/regexp/transformer/quantifier.rb +0 -114
- data/lib/mutant/ast/regexp/transformer/recursive.rb +0 -58
- data/lib/mutant/ast/regexp/transformer/root.rb +0 -31
- data/lib/mutant/ast/regexp/transformer/text.rb +0 -60
- data/lib/mutant/env/bootstrap.rb +0 -160
- data/lib/mutant/matcher/compiler.rb +0 -60
- data/lib/mutant/mutator/node/regexp.rb +0 -35
- data/lib/mutant/mutator/node/regexp/alternation_meta.rb +0 -23
- data/lib/mutant/mutator/node/regexp/capture_group.rb +0 -28
- data/lib/mutant/mutator/node/regexp/character_type.rb +0 -32
- data/lib/mutant/mutator/node/regexp/end_of_line_anchor.rb +0 -23
- data/lib/mutant/mutator/node/regexp/end_of_string_or_before_end_of_line_anchor.rb +0 -23
- data/lib/mutant/mutator/node/regexp/greedy_zero_or_more.rb +0 -27
- data/lib/mutant/parallel/master.rb +0 -181
- data/lib/mutant/reporter/cli/printer/status.rb +0 -53
- data/lib/mutant/reporter/cli/tput.rb +0 -46
- data/lib/mutant/warning_filter.rb +0 -61
- data/meta/regexp/character_types.rb +0 -23
- data/meta/regexp/regexp_alternation_meta.rb +0 -13
- data/meta/regexp/regexp_bol_anchor.rb +0 -10
- data/meta/regexp/regexp_bos_anchor.rb +0 -18
- data/meta/regexp/regexp_capture_group.rb +0 -19
- data/meta/regexp/regexp_eol_anchor.rb +0 -10
- data/meta/regexp/regexp_eos_anchor.rb +0 -8
- data/meta/regexp/regexp_eos_ob_eol_anchor.rb +0 -10
- data/meta/regexp/regexp_greedy_zero_or_more.rb +0 -12
- data/meta/regexp/regexp_root_expression.rb +0 -10
- data/meta/restarg.rb +0 -10
- data/spec/support/fake_actor.rb +0 -111
- data/spec/support/warning.rb +0 -66
- data/spec/unit/mutant/actor/binding_spec.rb +0 -34
- data/spec/unit/mutant/actor/env_spec.rb +0 -31
- data/spec/unit/mutant/actor/mailbox_spec.rb +0 -28
- data/spec/unit/mutant/actor/message_spec.rb +0 -25
- data/spec/unit/mutant/actor/receiver_spec.rb +0 -58
- data/spec/unit/mutant/actor/sender_spec.rb +0 -24
- data/spec/unit/mutant/ast/regexp/parse_spec.rb +0 -19
- data/spec/unit/mutant/ast/regexp/transformer/lookup_table/table_spec.rb +0 -21
- data/spec/unit/mutant/ast/regexp/transformer/lookup_table_spec.rb +0 -35
- data/spec/unit/mutant/ast/regexp/transformer_spec.rb +0 -21
- data/spec/unit/mutant/ast/regexp_spec.rb +0 -704
- data/spec/unit/mutant/env/bootstrap_spec.rb +0 -188
- data/spec/unit/mutant/matcher/compiler/subject_prefix_spec.rb +0 -26
- data/spec/unit/mutant/parallel/master_spec.rb +0 -338
- data/spec/unit/mutant/reporter/cli/printer/status_spec.rb +0 -121
- data/spec/unit/mutant/reporter/cli/tput_spec.rb +0 -50
- data/spec/unit/mutant/warning_filter_spec.rb +0 -106
- data/spec/unit/mutant_spec.rb +0 -17
- data/test_app/Gemfile.rspec3.7 +0 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6e9289e21c711435b21d02a17ed24ccdd084eea6ff1562c2f96fc7ed898c6af1
|
4
|
+
data.tar.gz: 930f03c76551cdd0887aeb661835c8b5ec4597344132a57b48ce21f426892999
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4d744106f328779f86c7ee3b49e08a83510c400345bb41c9f22b989fe4b7c74afa9b246b768bc8356d760cb091c96f91e6d97bcfdf074df4fb4265597c827332
|
7
|
+
data.tar.gz: f9e252adfb3edd063de29ee628bd044c359dc7ebb441b3f4f31a6d1751281f52689a7360e06b14bd0db9b71d242c0973b723844649e5f7d6785c542ea53811ea
|
data/.circleci/config.yml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
defaults: &defaults
|
2
2
|
working_directory: ~/mutant
|
3
3
|
docker:
|
4
|
-
|
4
|
+
- image: circleci/ruby:2.6.0
|
5
5
|
version: 2
|
6
6
|
jobs:
|
7
7
|
unit_specs:
|
@@ -9,7 +9,7 @@ jobs:
|
|
9
9
|
steps:
|
10
10
|
- checkout
|
11
11
|
- run: bundle install
|
12
|
-
- run: bundle exec rspec spec/unit
|
12
|
+
- run: bundle exec rspec spec/unit spec/integration/mutant/test_mutator_handles_types_spec.rb
|
13
13
|
integration_minitest:
|
14
14
|
<<: *defaults
|
15
15
|
steps:
|
@@ -40,7 +40,7 @@ jobs:
|
|
40
40
|
steps:
|
41
41
|
- checkout
|
42
42
|
- run: bundle install
|
43
|
-
- run: bundle exec
|
43
|
+
- run: bundle exec mutant --jobs 4 --since HEAD~1 --zombie -- 'Mutant*'
|
44
44
|
workflows:
|
45
45
|
version: 2
|
46
46
|
test:
|
data/Changelog.md
CHANGED
@@ -1,3 +1,16 @@
|
|
1
|
+
# v0.9.0
|
2
|
+
|
3
|
+
* New license.
|
4
|
+
* Fix mutations to void value expressions to not be reported as integration error.
|
5
|
+
* Remove regexp body mutations
|
6
|
+
* Remove restarg mutations
|
7
|
+
* Remove support for rspec-3.{4,5,6}
|
8
|
+
|
9
|
+
# v0.8.25 2018-12-31
|
10
|
+
|
11
|
+
* Change to {I,M}Var based concurrency
|
12
|
+
* Remove actors
|
13
|
+
|
1
14
|
# v0.8.24 2018-12-29
|
2
15
|
|
3
16
|
* Change to always insert mutations with frozen string literals
|
@@ -21,657 +34,4 @@
|
|
21
34
|
|
22
35
|
* Replace internal timers with monotonic ones.
|
23
36
|
|
24
|
-
|
25
|
-
|
26
|
-
* Drop support for Ruby < 2.5
|
27
|
-
* Fix bug when mutating a module that includes Memoizable
|
28
|
-
|
29
|
-
# v0.8.18 2018-10-24
|
30
|
-
|
31
|
-
* Add support for regexp unicode print nodes https://github.com/mbj/mutant/pull/749
|
32
|
-
|
33
|
-
# v0.8.17 2018-09-12
|
34
|
-
|
35
|
-
* Drop support for Ruby < 2.3
|
36
|
-
* Use frozen string literals globally
|
37
|
-
* Update to parser ~> 2.5
|
38
|
-
|
39
|
-
# v0.8.16 2018-08-03
|
40
|
-
|
41
|
-
* Support for rspec-3.x
|
42
|
-
|
43
|
-
# v0.8.15 2018-07-17
|
44
|
-
|
45
|
-
* Fix boot time issue
|
46
|
-
* Support for rspec-3.7
|
47
|
-
|
48
|
-
# v0.8.14 2017-07-06
|
49
|
-
|
50
|
-
* Support ruby 2.4 #719
|
51
|
-
|
52
|
-
# v0.8.13 2017-06-01
|
53
|
-
|
54
|
-
* Allow empty match expressions on CLI
|
55
|
-
* Add support for rspec-3.6 by @krzysiek150
|
56
|
-
* Add support for configurable corpus glob exprssions by @jekuta
|
57
|
-
|
58
|
-
# v0.8.12 2016-10-17
|
59
|
-
|
60
|
-
* Add mutation from `/foo|bar/` to `/foo/` and `/bar/`
|
61
|
-
* Add mutation from `/$/` to `/\z/`
|
62
|
-
* Add mutation from `/\h/` to `/\H/`
|
63
|
-
* Add mutation from `/\H/` to `/\h/`
|
64
|
-
* Add mutation from `/\Z/` to `/\z/`
|
65
|
-
* Add mutation from `flat_map` to `map`
|
66
|
-
* Add mutation from `/(foo)/` to `/(?:foo)/`
|
67
|
-
* Add mutation from `/a*/` to `/a+/`
|
68
|
-
* Add mutation from `/a*/` to `/a/`
|
69
|
-
* Add mutation from `!!foo` to `foo`
|
70
|
-
* Add mutation from `proc { }` to `lambda { }`
|
71
|
-
|
72
|
-
# v0.8.11 2016-08-01
|
73
|
-
|
74
|
-
* Add support for rspec-3.5
|
75
|
-
* Remove misleading `--debug` option
|
76
|
-
* Remove misleading `--expect-coverage` option
|
77
|
-
* Add basic support for regexp mutations (machinery and simple anchor mutations)
|
78
|
-
* Add support for mutating csend (duck tape operator) into regular sends
|
79
|
-
* Add mutation from `foo&.bar` to `foo.bar`
|
80
|
-
* Add mutation from `#to_a` to `#to_set`
|
81
|
-
* Add mutation from `foo.dig(a, b)` to `foo.fetch(a).dig(b)`
|
82
|
-
* Add mutation from `def foo(bar:); end` to `def foo(_bar:); end`
|
83
|
-
* Add mutation from `def foo(bar: baz); end` to `def foo(_bar: baz); end`
|
84
|
-
* Add mutation from `/regex/i` to `/regex/`
|
85
|
-
* Add mutation from `foo[n..-1]` to `foo.drop(n)`
|
86
|
-
* Add mutation from `/^/` to `/\A/`
|
87
|
-
* Add mutation from `#first` to `#last`
|
88
|
-
* Add mutation from `#last` to `#first`
|
89
|
-
* Add mutation from `#sample` to `#first` and `#last`
|
90
|
-
* Remove mutations from `1..n` to `1..(0.0 / 0.0)` and `1..(1.0 / 0.0)`
|
91
|
-
|
92
|
-
# v0.8.10 2016-01-24
|
93
|
-
|
94
|
-
* Add support for parser 2.3 (via unparser 0.2.5)
|
95
|
-
|
96
|
-
# v0.8.9 2016-01-05
|
97
|
-
|
98
|
-
* Add mutation from `Hash#[]` to `Hash#key?` (#511)
|
99
|
-
* Add mutation from `Hash#fetch` to `Hash#key?` (#511)
|
100
|
-
* Add mutation from `#at` to `#key?` (#511)
|
101
|
-
* Add mutation from `Hash#values_at` to `Hash#fetch_values` (#510)
|
102
|
-
|
103
|
-
# v0.8.8 2015-11-15
|
104
|
-
|
105
|
-
* Drop support for rspec-3.2
|
106
|
-
* Remove CI specific job number default
|
107
|
-
* Add support for rspec-3.3.4
|
108
|
-
* Add mutations/s performance metric to report
|
109
|
-
|
110
|
-
# v0.8.7 2015-10-30
|
111
|
-
|
112
|
-
* Fix blackliting regexp to correctly match the String `(eval)` absolutely.
|
113
|
-
|
114
|
-
# v0.8.6. 2015-10-27
|
115
|
-
|
116
|
-
* Add mutation from `Date.parse` to more strict parsing methods #448
|
117
|
-
* Add mutation from `foo.to_i` to `Integer(foo)` #455
|
118
|
-
* Add mutation from `@foo` to `foo` #454
|
119
|
-
|
120
|
-
# v0.8.5 2015-09-11
|
121
|
-
|
122
|
-
* Fix misimplementation of block gluing operator that
|
123
|
-
as side effect could also cause invalid AST crashes
|
124
|
-
|
125
|
-
# v0.8.4 2015-09-10
|
126
|
-
|
127
|
-
* Add mutation from `a != b` to `!a.eql?(b)` and `!a.equal?(b)` #417
|
128
|
-
* Add mutation `A.const_get(:B)` -> `A::B` #426
|
129
|
-
* Add mutation `def foo(*args); end` into `def foo(*args); args = []; end` #423
|
130
|
-
* Add mutation from `foo.baz { bar }` to `foo.bar` #416
|
131
|
-
* Update anima dependency to 0.3.0
|
132
|
-
|
133
|
-
# v0.8.3 2015-09-01
|
134
|
-
|
135
|
-
* Remove invalid mutation `super(...)` to `super`
|
136
|
-
* Add mutation from `def foo(a = true); end` to `def foo(a = true); a = true; end` #419
|
137
|
-
* Add mutation from `def foo; end` to `remove_method :foo` #413
|
138
|
-
|
139
|
-
# v0.8.2 2015-08-11
|
140
|
-
|
141
|
-
* Remove invalid mutation `foo or bar` to `!(foo or bar)` see #287
|
142
|
-
* Add mutation from `#to_h` to `#to_hash` #218
|
143
|
-
* Add mutation from `super` to `super()` #309
|
144
|
-
* Add mutation from `#defined?` to `true` / `false` #399
|
145
|
-
* Reduce framed (multiline) progress reporter noise
|
146
|
-
* Fix a bug where killfork pipes where not properly closed
|
147
|
-
|
148
|
-
# v0.8.1 2015-07-24
|
149
|
-
|
150
|
-
* Add --since flag to constrain mutated subjects based on
|
151
|
-
repository diff from HEAD to other REVISON.
|
152
|
-
* Add mutation from #[] to #at / #fetch
|
153
|
-
* Some internal improvements
|
154
|
-
|
155
|
-
# v0.8.0 2015-06-15
|
156
|
-
|
157
|
-
* Drop support for ruby < 2.1
|
158
|
-
* Remove broken `--code` option
|
159
|
-
* Remove deprecated `--score` option
|
160
|
-
* Add support for rspec-3.3
|
161
|
-
* End support for rspec-3.{0,1}
|
162
|
-
* Internal quality improvements
|
163
|
-
|
164
|
-
# v0.7.9 2015-05-30
|
165
|
-
|
166
|
-
* Deprecate `--score` flag replace with `--expected-coverage`
|
167
|
-
* Set default job count to 4 under CI environments.
|
168
|
-
* Relax parser dependency to ~>2.2.2
|
169
|
-
|
170
|
-
# v0.7.8 2015-03-8
|
171
|
-
|
172
|
-
* Kill imperfect float rounding for exact coverage expectations.
|
173
|
-
|
174
|
-
# v0.7.7 2015-02-15
|
175
|
-
|
176
|
-
* Add support for rspec-3.2
|
177
|
-
|
178
|
-
# v0.7.6 2015-01-25
|
179
|
-
|
180
|
-
* Fix crash on using the null integration.
|
181
|
-
|
182
|
-
# v0.7.5 2015-01-14
|
183
|
-
|
184
|
-
* Bump deps to support MRI 2.2.
|
185
|
-
|
186
|
-
# v0.7.4 2014-12-22
|
187
|
-
|
188
|
-
* Fix rspec example visibility on duplicate metadata examples [#279](https://github.com/mbj/mutant/issues/279).
|
189
|
-
* Add naked if/else body emitter [#280](https://github.com/mbj/mutant/issues/280).
|
190
|
-
|
191
|
-
# v0.7.3 2014-12-09
|
192
|
-
|
193
|
-
* Fix communication between workers and killforks to work for all binaries.
|
194
|
-
|
195
|
-
# v0.7.2 2014-12-08
|
196
|
-
|
197
|
-
* Fix synthetic race conditon in actor implementation
|
198
|
-
* Fix progressive reporter slowdown
|
199
|
-
|
200
|
-
# v0.7.1 2014-12-04
|
201
|
-
|
202
|
-
* Fix invalid dependencies on rspec for mutant-rspec
|
203
|
-
|
204
|
-
# v0.7.0 2014-12-04
|
205
|
-
|
206
|
-
* Use homegrown actor based parallelization
|
207
|
-
* Fix redundant spec execution in rspec integration
|
208
|
-
* Add mutation from `#send` to `#__send__` (the canonical form).
|
209
|
-
|
210
|
-
# v0.6.7 2014-11-17
|
211
|
-
|
212
|
-
* Fix duplicate neutral emit for memoized instance method subjects
|
213
|
-
* Fix neutral error detection edge cases
|
214
|
-
|
215
|
-
# v0.6.6 2014-11-11
|
216
|
-
|
217
|
-
* Fix emitter to recurse into left and right of binary nodes.
|
218
|
-
|
219
|
-
# v0.6.5 2014-10-28
|
220
|
-
|
221
|
-
* Fix killforks not to leak zombies.
|
222
|
-
|
223
|
-
# v0.6.4 2014-10-27
|
224
|
-
|
225
|
-
* Do not buffer report prints, speedup large report generation.
|
226
|
-
* Fix some cases where --fail-fast semantics stopped far to late.
|
227
|
-
* Fix crashing / stuckage from using parallel in a nested way.
|
228
|
-
|
229
|
-
# v0.6.3 2014-09-22
|
230
|
-
|
231
|
-
* Add support for rspec-3.1.
|
232
|
-
|
233
|
-
# v0.6.2 2014-09-16
|
234
|
-
|
235
|
-
* Fix matcher to ignore metaprogrammed defines [#254](https://github.com/mbj/mutant/issues/254)
|
236
|
-
* Add rescue resbody body concat-promotion mutation
|
237
|
-
* Add rescue else body concat-promotion mutation #245
|
238
|
-
|
239
|
-
# v0.6.1 2014-09-16
|
240
|
-
|
241
|
-
* Incorrectly released on partial state. Yanked.
|
242
|
-
|
243
|
-
# v0.6.0 2014-08-11
|
244
|
-
|
245
|
-
* Parallel execution / reporting.
|
246
|
-
* Add -j, --jobs flag to control concurrency.
|
247
|
-
* Fix blind spots on send with block.
|
248
|
-
* Add mutation from `foo { bar }` to `bar`
|
249
|
-
* Add mutation from `#reverse_merge` to `#merge`
|
250
|
-
* Add mutation from `#<=` to `#<`, `#==`, `#eql?`, `#equal?`
|
251
|
-
* Add mutation from `#>=` to `#>`, `#==`, `#eql?`, `#equal?`
|
252
|
-
* Add mutation from `#>` to `#==`, `#eql?`, `#equal?`
|
253
|
-
* Add mutation from `#<` to `#==`, `#eql?`, `#equal?`
|
254
|
-
* Fix reporting of diff errors to include context [tjchambers]
|
255
|
-
|
256
|
-
# v0.5.26 2014-07-07
|
257
|
-
|
258
|
-
* Fix exceptions generation matcher errors
|
259
|
-
* Fix report generation with formatted string as payload of diffs.
|
260
|
-
|
261
|
-
# v0.5.25 2014-07-07
|
262
|
-
|
263
|
-
* Make ordering of subjects and tests deterministic
|
264
|
-
* Fix performance of subject selection
|
265
|
-
* Improve noop and neutral reporting.
|
266
|
-
* Rename noop mutations to neutral mutations
|
267
|
-
* Simplify code nuked around 1kloc.
|
268
|
-
|
269
|
-
# v0.5.24 2014-06-30
|
270
|
-
|
271
|
-
* Fix invalid AST on op_assign mutations
|
272
|
-
* Make subject matching result order deterministic
|
273
|
-
* Improve internals a bit for more consistency.
|
274
|
-
* Add instance methods expression 'Foo#'
|
275
|
-
* Add singleton methods expression 'Foo.'
|
276
|
-
* Split rspec2 and rspec3 integration with minimal duplication
|
277
|
-
* Move test matching outside of integrations.
|
278
|
-
|
279
|
-
# v0.5.23 2014-06-15
|
280
|
-
|
281
|
-
* Propagate exceptions from child-isolation-killforks to master
|
282
|
-
|
283
|
-
# v0.5.22 2014-06-15
|
284
|
-
|
285
|
-
* Fix invalid AST generation on operator method mutation with self as receiver.
|
286
|
-
|
287
|
-
# v0.5.21 2014-06-15
|
288
|
-
|
289
|
-
* Readd mutation of index assignments
|
290
|
-
* Remove a bunch of useless mutations to nil.something
|
291
|
-
* Readd mutation of index reference arguments
|
292
|
-
|
293
|
-
# v0.5.20 2014-06-14
|
294
|
-
|
295
|
-
* Remove support for matchers prefixed with ::
|
296
|
-
* Fix cases where mutated source diff was empty #198
|
297
|
-
* Fix mutate to simpler primitive violation break to next #203
|
298
|
-
* Improve integration / corpus tests to spot highlevel regressions on CI level.
|
299
|
-
|
300
|
-
* Remove support for matchers prefixed with ::
|
301
|
-
|
302
|
-
# v0.5.19 2014-06-06
|
303
|
-
|
304
|
-
Changes:
|
305
|
-
|
306
|
-
* Do not emit more powerful rescue matchers #183
|
307
|
-
* Do not emit more powerful loop control #201
|
308
|
-
|
309
|
-
# v0.5.18 2014-06-04
|
310
|
-
|
311
|
-
Changes:
|
312
|
-
|
313
|
-
* Do not rename lhs of or assigns when lhs is a ivasgn. Closes #150
|
314
|
-
|
315
|
-
# v0.5.17 2014-05-27
|
316
|
-
|
317
|
-
Changes:
|
318
|
-
|
319
|
-
* Report selected tests in progress runner
|
320
|
-
* Fix scope of rspec selections to include meaningful parents.
|
321
|
-
* Add short circuits on already dead mutations under multiple test selections.
|
322
|
-
|
323
|
-
# v0.5.16 2014-05-27
|
324
|
-
|
325
|
-
Changes:
|
326
|
-
|
327
|
-
* Fix granularity of test selection under rspec
|
328
|
-
* Add mutation from [item] to item
|
329
|
-
* Add mutation from #reverse_each to #each
|
330
|
-
* Add mutation from #reverse_map to #each, #map
|
331
|
-
* Add mutation from #map to #each
|
332
|
-
|
333
|
-
# v0.5.15 2014-05-24
|
334
|
-
|
335
|
-
Changes:
|
336
|
-
|
337
|
-
* Put isolation pipe into binmode
|
338
|
-
|
339
|
-
Changes:
|
340
|
-
|
341
|
-
* Add support for rspec-3.0.0.rc1
|
342
|
-
* Remove some senseless rescue mutations
|
343
|
-
|
344
|
-
# v0.5.13 2014-05-23
|
345
|
-
|
346
|
-
Changes:
|
347
|
-
|
348
|
-
* Improve reporting of isolation problems
|
349
|
-
* Centralize test selection
|
350
|
-
* Report selected tests
|
351
|
-
* Report rspec output on noop failures
|
352
|
-
* Silence warnings on methods without source location
|
353
|
-
|
354
|
-
# v0.5.12 2014-05-09
|
355
|
-
|
356
|
-
Changes:
|
357
|
-
|
358
|
-
* Remove pointless mutation nil => Object.new
|
359
|
-
|
360
|
-
# v0.5.11 2014-04-22
|
361
|
-
|
362
|
-
Changes:
|
363
|
-
|
364
|
-
* Fix crash on while and until without body
|
365
|
-
* Better require highjack based zombifier
|
366
|
-
* Do not mutate nthref $1 to gvar $0
|
367
|
-
* Use faster duplicate guarding hashing AST::Node instances
|
368
|
-
* Fix lots of shadowed invalid ASTs
|
369
|
-
* Fix undefine initialize warnings, Closes #175
|
370
|
-
|
371
|
-
# v0.5.10 2014-04-06
|
372
|
-
|
373
|
-
Changes:
|
374
|
-
|
375
|
-
* Fix crash on case without conditional
|
376
|
-
* Remove dependency to descendants tracker
|
377
|
-
* Add mutation #== => #eql?, #equal?
|
378
|
-
* Add mutation #eql? => #equal?
|
379
|
-
|
380
|
-
# v0.5.9 2014-03-28
|
381
|
-
|
382
|
-
Changes:
|
383
|
-
|
384
|
-
* Fix mutation of memoized methods with the memoizable gem.
|
385
|
-
|
386
|
-
# v0.5.8 2014-03-26
|
387
|
-
|
388
|
-
Changes:
|
389
|
-
|
390
|
-
* Fix crash on Module#name and Class#name returning non Strings
|
391
|
-
|
392
|
-
# v0.5.7 2014-03-23
|
393
|
-
|
394
|
-
Changes:
|
395
|
-
|
396
|
-
* Fix crash on invalid partial AST unparsing, closes: #164
|
397
|
-
|
398
|
-
# v0.5.6 2014-03-09
|
399
|
-
|
400
|
-
Changes:
|
401
|
-
|
402
|
-
* Correctly specifiy diff-lcs dependency
|
403
|
-
|
404
|
-
# v0.5.5 2014-03-09
|
405
|
-
|
406
|
-
Changes:
|
407
|
-
|
408
|
-
* Morpher dependency bump
|
409
|
-
|
410
|
-
# v0.5.4 2014-03-08
|
411
|
-
|
412
|
-
Changes:
|
413
|
-
|
414
|
-
* Morpher dependency bump
|
415
|
-
|
416
|
-
# v0.5.3 2014-03-05
|
417
|
-
|
418
|
-
Changes:
|
419
|
-
|
420
|
-
* mutant-rspec now supports rspec3 beta
|
421
|
-
|
422
|
-
# v0.5.2 2014-03-04
|
423
|
-
|
424
|
-
Changes:
|
425
|
-
|
426
|
-
* Use parser 2.1.6 that has its own Parser::Meta::NODE_LIST
|
427
|
-
|
428
|
-
# v0.5.1 2014-03-03
|
429
|
-
|
430
|
-
Changes:
|
431
|
-
|
432
|
-
* Remove rspec dep from main mutant gem
|
433
|
-
|
434
|
-
# v0.5.0 2014-03-02
|
435
|
-
|
436
|
-
Changes:
|
437
|
-
|
438
|
-
* Add configurable coverage expectation via --coverage (default 100%)
|
439
|
-
* rspec integration was moved into a gem 'mutant-rspec'
|
440
|
-
* Replace filters implementation with morpher predicates
|
441
|
-
* Drop --rspec option use: --use rspec instead.
|
442
|
-
|
443
|
-
# v0.4.0 2014-02-16
|
444
|
-
|
445
|
-
Status: Yanked because of broken dependencies.
|
446
|
-
|
447
|
-
# v0.3.4 2014-01-11
|
448
|
-
|
449
|
-
Changes:
|
450
|
-
|
451
|
-
* Depend on anima-0.2.0
|
452
|
-
|
453
|
-
# v0.3.4 2014-01-11
|
454
|
-
|
455
|
-
Bugfixes:
|
456
|
-
|
457
|
-
* Correctly fix crash on attribute assignments nodes: https://github.com/mbj/mutant/issues/149
|
458
|
-
|
459
|
-
# v0.3.3 2014-01-11
|
460
|
-
|
461
|
-
Changes:
|
462
|
-
|
463
|
-
* Bump dependency to unparser-0.1.8 that fixes dozens of non reported issues.
|
464
|
-
|
465
|
-
Bugfixes:
|
466
|
-
|
467
|
-
* Fix crash on attribute assignments nodes: https://github.com/mbj/mutant/issues/149
|
468
|
-
|
469
|
-
# v0.3.2 2013-12-31
|
470
|
-
|
471
|
-
Bugfixes:
|
472
|
-
|
473
|
-
* Fix crash on until nodes: https://github.com/mbj/mutant/issues/143
|
474
|
-
* Fix missing requires: https://github.com/mbj/mutant/issues/141
|
475
|
-
* Fix crash on unknown nodes, fixes #143
|
476
|
-
* Use more durable unparser version 0.1.6
|
477
|
-
|
478
|
-
# v0.3.1 2013-12-19
|
479
|
-
|
480
|
-
Bugfixes:
|
481
|
-
|
482
|
-
* Add missing require of stringio, #141
|
483
|
-
|
484
|
-
# v0.3.0 2013-12-10
|
485
|
-
|
486
|
-
Feature:
|
487
|
-
|
488
|
-
* Rewrite all mutators on top of whitequark/parser (major!)
|
489
|
-
* Also mutate conditions in case statements
|
490
|
-
* Add tons of mutators I lost track about during development.
|
491
|
-
* Add --ignore-subject optoin supporting the same syntax as matchers
|
492
|
-
|
493
|
-
Bugfixes:
|
494
|
-
|
495
|
-
* Fix lots of crashes.
|
496
|
-
* Fix all known multiple diff errors
|
497
|
-
* Handle methods memoized with adamantium correctly
|
498
|
-
|
499
|
-
Bugfixes:
|
500
|
-
|
501
|
-
* Fix all bugs caused by mutant-melbourne
|
502
|
-
|
503
|
-
# v0.2.20 2013-03-01
|
504
|
-
|
505
|
-
* Update dependencies
|
506
|
-
|
507
|
-
[Compare v0.2.17..v0.2.20](https://github.com/mbj/mutant/compare/v0.2.17...v0.2.20)
|
508
|
-
|
509
|
-
# v0.2.17 2013-01-20
|
510
|
-
|
511
|
-
* Kill mutations in #initialize from class methods.
|
512
|
-
|
513
|
-
# v0.2.17 2013-01-20
|
514
|
-
|
515
|
-
Other:
|
516
|
-
|
517
|
-
* Update dependencies
|
518
|
-
|
519
|
-
[Compare v0.2.16..v0.2.17](https://github.com/mbj/mutant/compare/v0.2.16...v0.2.17)
|
520
|
-
|
521
|
-
# v0.2.16 2013-01-20
|
522
|
-
|
523
|
-
Bugfix:
|
524
|
-
|
525
|
-
* Handle Rubinius::AST::NthRef as noop
|
526
|
-
|
527
|
-
[Compare v0.2.15..v0.2.16](https://github.com/mbj/mutant/compare/v0.2.15...v0.2.16)
|
528
|
-
|
529
|
-
# v0.2.15 2013-01-10
|
530
|
-
|
531
|
-
Bugfix:
|
532
|
-
|
533
|
-
* Do not mutate super to super() anymore. This needs a context check in future.
|
534
|
-
|
535
|
-
[Compare v0.2.14..v0.2.15](https://github.com/mbj/mutant/compare/v0.2.14...v0.2.15)
|
536
|
-
|
537
|
-
# v0.2.14 2013-01-09
|
538
|
-
|
539
|
-
Bugfix:
|
540
|
-
|
541
|
-
* Do not emit mutation to { nil => nil } for hash literals
|
542
|
-
|
543
|
-
[Compare v0.2.13..v0.2.14](https://github.com/mbj/mutant/compare/v0.2.13...v0.2.14)
|
544
|
-
|
545
|
-
# v0.2.13 2013-01-09
|
546
|
-
|
547
|
-
Bugfix:
|
548
|
-
|
549
|
-
* Capture failures that occur in the window between mutation insertion and spec run as kills
|
550
|
-
|
551
|
-
[Compare v0.2.12..v0.2.13](https://github.com/mbj/mutant/compare/v0.2.12...v0.2.13)
|
552
|
-
|
553
|
-
# v0.2.12 2013-01-03
|
554
|
-
|
555
|
-
Bugfix:
|
556
|
-
|
557
|
-
* Do not crash when trying to load methods from precompiled ruby under rbx
|
558
|
-
|
559
|
-
[Compare v0.2.11..v0.2.12](https://github.com/mbj/mutant/compare/v0.2.11...v0.2.12)
|
560
|
-
|
561
|
-
# v0.2.11 2013-01-03
|
562
|
-
|
563
|
-
Feature:
|
564
|
-
|
565
|
-
* Handle binary operator methods in dedicated mutator
|
566
|
-
|
567
|
-
Bugfix:
|
568
|
-
|
569
|
-
* Do not crash when mutating binary operator method
|
570
|
-
|
571
|
-
[Compare v0.2.10..v0.2.11](https://github.com/mbj/mutant/compare/v0.2.10...v0.2.11)
|
572
|
-
|
573
|
-
# v0.2.10 2013-01-03
|
574
|
-
|
575
|
-
Bugfix:
|
576
|
-
|
577
|
-
* Do not mutate receivers away when message name is a keyword
|
578
|
-
|
579
|
-
[Compare v0.2.9..v0.2.10](https://github.com/mbj/mutant/compare/v0.2.9...v0.2.10)
|
580
|
-
|
581
|
-
# v0.2.9 2013-01-02
|
582
|
-
|
583
|
-
Feature:
|
584
|
-
|
585
|
-
* Mutate instance and global variable assignments
|
586
|
-
* Mutate super calls
|
587
|
-
|
588
|
-
[Compare v0.2.8..v0.2.9](https://github.com/mbj/mutant/compare/v0.2.8...v0.2.9)
|
589
|
-
|
590
|
-
# v0.2.8 2012-12-29
|
591
|
-
|
592
|
-
Feature:
|
593
|
-
|
594
|
-
* Do not mutate argument or local variable names beginning with an underscore
|
595
|
-
* Mutate unary calls ```coerce(object)``` => ```object```
|
596
|
-
* Mutate method call receivers ```foo.bar``` => ```foo```
|
597
|
-
|
598
|
-
[Compare v0.2.7..v0.2.8](https://github.com/mbj/mutant/compare/v0.2.7...v0.2.8)
|
599
|
-
|
600
|
-
# v0.2.7 2012-12-21
|
601
|
-
|
602
|
-
Feature:
|
603
|
-
|
604
|
-
* Use latest adamantium and ice_nine
|
605
|
-
|
606
|
-
[Compare v0.2.6..v0.2.7](https://github.com/mbj/mutant/compare/v0.2.6...v0.2.7)
|
607
|
-
|
608
|
-
# v0.2.6 2012-12-14
|
609
|
-
|
610
|
-
Bugfix:
|
611
|
-
|
612
|
-
* Correctly set file and line of injected mutants
|
613
|
-
|
614
|
-
[Compare v0.2.5..v0.2.6](https://github.com/mbj/mutant/compare/v0.2.5...v0.2.6)
|
615
|
-
|
616
|
-
# v0.2.5 2012-12-12
|
617
|
-
|
618
|
-
Feature:
|
619
|
-
|
620
|
-
* Add --debug flag for showing killer output and mutation
|
621
|
-
* Run noop mutation per subject to guard against initial failing specs
|
622
|
-
* Mutate default into required arguments
|
623
|
-
* Mutate default literals
|
624
|
-
* Mutate unwinding of pattern args ```|(a, b), c|``` => ```|a, b, c|```
|
625
|
-
* Mutate define and block arguments
|
626
|
-
* Mutate block arguments, inklusive pattern args
|
627
|
-
* Recurse into block bodies
|
628
|
-
* Unvendor inflector use mbj-inflector from rubygems
|
629
|
-
|
630
|
-
Bugfix:
|
631
|
-
|
632
|
-
* Insert mutations at correct constant scope
|
633
|
-
* Crash on mutating yield, added a noop for now
|
634
|
-
* Crash on singleton methods defined on other than constants or self
|
635
|
-
|
636
|
-
[Compare v0.2.4..v0.2.5](https://github.com/mbj/mutant/compare/v0.2.4...v0.2.5)
|
637
|
-
|
638
|
-
# v0.2.4 2012-12-12
|
639
|
-
|
640
|
-
Bugfix:
|
641
|
-
|
642
|
-
* Correctly vendor inflector
|
643
|
-
|
644
|
-
[Compare v0.2.3..v0.2.4](https://github.com/mbj/mutant/compare/v0.2.3...v0.2.4)
|
645
|
-
|
646
|
-
# v0.2.3 2012-12-08
|
647
|
-
|
648
|
-
Bugfix:
|
649
|
-
|
650
|
-
* Prepend extra elements to hash and array instead of append. This fixes unkillable mutators in parallel assignments!
|
651
|
-
|
652
|
-
[Compare v0.2.2..v0.2.3](https://github.com/mbj/mutant/compare/v0.2.2...v0.2.3)
|
653
|
-
|
654
|
-
# v0.2.2 2012-12-07
|
655
|
-
|
656
|
-
Feature:
|
657
|
-
|
658
|
-
* Add a shitload of operator expansions for dm2 strategy
|
659
|
-
|
660
|
-
[Compare v0.2.1..v0.2.2](https://github.com/mbj/mutant/compare/v0.2.1...v0.2.2)
|
661
|
-
|
662
|
-
# v0.2.1 2012-12-07
|
663
|
-
|
664
|
-
Bugfix:
|
665
|
-
|
666
|
-
* Crash on unavailable source location
|
667
|
-
* Incorrect handling of if and unless statements
|
668
|
-
* Expand Foo#initialize to spec/unit/foo in rspec dm2 strategy
|
669
|
-
* Correctly expand [] to element_reader_spec.rb in rspec dm2 strategy
|
670
|
-
* Correctly expand []= to element_writer_spec.rb in rspec dm2 strategy
|
671
|
-
* Correctly expand foo= to foo_writer_spec.rb in rspec dm2 strategy
|
672
|
-
|
673
|
-
[Compare v0.2.0..v0.2.1](https://github.com/mbj/mutant/compare/v0.2.0...v0.2.1)
|
674
|
-
|
675
|
-
# v0.2.0 2012-12-07
|
676
|
-
|
677
|
-
First public release!
|
37
|
+
Find older changelogs in the project [history](https://github.com/mbj/mutant/blob/84d119fe49ebad51b213cb08285b95e6e7c4fab6/Changelog.md#v0821-2018-12-03)
|