- Add support for rspec-3.2
- Fix crash on using the null integration.
- Bump deps to support MRI 2.2.
- Fix rspec example visibility on duplicate metadata examples #279.
- Add naked if/else body emitter #280.
- Fix communication between workers and killforks to work for all binaries.
- Fix synthetic race conditon in actor implementation
- Fix progressive reporter slowdown
- Fix invalid dependencies on rspec for mutant-rspec
- Use homegrown actor based parallelization
- Fix redundant spec execution in rspec integration
- Add mutation from
#send
to#__send__
(the canonical form).
- Fix duplicate neutral emit for memoized instance method subjects
- Fix neutral error detection edge cases
- Fix emitter to recurse into left and right of binary nodes.
- Fix killforks not to leak zombies.
- Do not buffer report prints, speedup large report generation.
- Fix some cases where --fail-fast semantics stopped far to late.
- Fix crashing / stuckage from using parallel in a nested way.
- Add support for rspec-3.1.
- Fix matcher to ignore metaprogrammed defines #254
- Add rescue resbody body concat-promotion mutation
- Add rescue else body concat-promotion mutation #245
- Incorrectly released on partial state. Yanked.
- Parallel execution / reporting.
- Add -j, --jobs flag to control concurrency.
- Fix blind spots on send with block.
- Add mutation from
foo { bar }
tobar
- Add mutation from
#reverse_merge
to#merge
- Add mutation from
#<=
to#<
,#==
,#eql?
,#equal?
- Add mutation from
#>=
to#>
,#==
,#eql?
,#equal?
- Add mutation from
#>
to#==
,#eql?
,#equal?
- Add mutation from
#<
to#==
,#eql?
,#equal?
- Fix reporting of diff errors to include context [tjchambers]
- Fix exceptions generation matcher errors
- Fix report generation with formatted string as payload of diffs.
- Make ordering of subjects and tests deterministic
- Fix performance of subject selection
- Improve noop and neutral reporting.
- Rename noop mutations to neutral mutations
- Simplify code nuked around 1kloc.
- Fix invalid AST on op_assign mutations
- Make subject matching result order deterministic
- Improve internals a bit for more consistency.
- Add instance methods expression 'Foo#'
- Add singleton methods expression 'Foo.'
- Split rspec2 and rspec3 integration with minimal duplication
- Move test matching outside of integrations.
- Propagate exceptions from child-isolation-killforks to master
- Fix invalid AST generation on operator method mutation with self as receiver.
- Readd mutation of index assignments
- Remove a bunch of useless mutations to nil.something
- Readd mutation of index reference arguments
-
Remove support for matchers prefixed with ::
-
Fix cases where mutated source diff was empty #198
-
Fix mutate to simpler primitive violation break to next #203
-
Improve integration / corpus tests to spot highlevel regressions on CI level.
-
Remove support for matchers prefixed with ::
Changes:
- Do not emit more powerful rescue matchers #183
- Do not emit more powerful loop control #201
Changes:
- Do not rename lhs of or assigns when lhs is a ivasgn. Closes #150
Changes:
- Report selected tests in progress runner
- Fix scope of rspec selections to include meaningful parents.
- Add short circuits on already dead mutations under multiple test selections.
Changes:
- Fix granularity of test selection under rspec
- Add mutation from [item] to item
- Add mutation from #reverse_each to #each
- Add mutation from #reverse_map to #each, #map
- Add mutation from #map to #each
Changes:
- Put isolation pipe into binmode
Changes:
- Add support for rspec-3.0.0.rc1
- Remove some senseless rescue mutations
Changes:
- Improve reporting of isolation problems
- Centralize test selection
- Report selected tests
- Report rspec output on noop failures
- Silence warnings on methods without source location
Changes:
- Remove pointless mutation nil => Object.new
Changes:
- Fix crash on while and until without body
- Better require highjack based zombifier
- Do not mutate nthref $1 to gvar $0
- Use faster duplicate guarding hashing AST::Node instances
- Fix lots of shadowed invalid ASTs
- Fix undefine initialize warnings, Closes #175
Changes:
- Fix crash on case without conditional
- Remove dependency to descendants tracker
- Add mutation #== => #eql?, #equal?
- Add mutation #eql? => #equal?
Changes:
- Fix mutation of memoized methods with the memoizable gem.
Changes:
- Fix crash on Module#name and Class#name returning non Strings
Changes:
- Fix crash on invalid partial AST unparsing, closes: #164
Changes:
- Correctly specifiy diff-lcs dependency
Changes:
- Morpher dependency bump
Changes:
- Morpher dependency bump
Changes:
- mutant-rspec now supports rspec3 beta
Changes:
- Use parser 2.1.6 that has its own Parser::Meta::NODE_LIST
Changes:
- Remove rspec dep from main mutant gem
Changes:
- Add configurable coverage expectation via --coverage (default 100%)
- rspec integration was moved into a gem 'mutant-rspec'
- Replace filters implementation with morpher predicates
- Drop --rspec option use: --use rspec instead.
Status: Yanked because of broken dependencies.
Changes:
- Depend on anima-0.2.0
Bugfixes:
- Correctly fix crash on attribute assignments nodes: mbj#149
Changes:
- Bump dependency to unparser-0.1.8 that fixes dozens of non reported issues.
Bugfixes:
- Fix crash on attribute assignments nodes: mbj#149
Bugfixes:
- Fix crash on until nodes: mbj#143
- Fix missing requires: mbj#141
- Fix crash on unknown nodes, fixes #143
- Use more durable unparser version 0.1.6
Bugfixes:
- Add missing require of stringio, #141
Feature:
- Rewrite all mutators on top of whitequark/parser (major!)
- Also mutate conditions in case statements
- Add tons of mutators I lost track about during development.
- Add --ignore-subject optoin supporting the same syntax as matchers
Bugfixes:
- Fix lots of crashes.
- Fix all known multiple diff errors
- Handle methods memoized with adamantium correctly
Bugfixes:
- Fix all bugs caused by mutant-melbourne
- Update dependencies
- Kill mutations in #initialize from class methods.
Other:
- Update dependencies
Bugfix:
- Handle Rubinius::AST::NthRef as noop
Bugfix:
- Do not mutate super to super() anymore. This needs a context check in future.
Bugfix:
- Do not emit mutation to { nil => nil } for hash literals
Bugfix:
- Capture failures that occur in the window between mutation insertion and spec run as kills
Bugfix:
- Do not crash when trying to load methods from precompiled ruby under rbx
Feature:
- Handle binary operator methods in dedicated mutator
Bugfix:
- Do not crash when mutating binary operator method
Bugfix:
- Do not mutate receivers away when message name is a keyword
Feature:
- Mutate instance and global variable assignments
- Mutate super calls
Feature:
- Do not mutate argument or local variable names beginning with an underscore
- Mutate unary calls
coerce(object)
=>object
- Mutate method call receivers
foo.bar
=>foo
Feature:
- Use latest adamantium and ice_nine
Bugfix:
- Correctly set file and line of injected mutants
Feature:
- Add --debug flag for showing killer output and mutation
- Run noop mutation per subject to guard against initial failing specs
- Mutate default into required arguments
- Mutate default literals
- Mutate unwinding of pattern args
|(a, b), c|
=>|a, b, c|
- Mutate define and block arguments
- Mutate block arguments, inklusive pattern args
- Recurse into block bodies
- Unvendor inflector use mbj-inflector from rubygems
Bugfix:
- Insert mutations at correct constant scope
- Crash on mutating yield, added a noop for now
- Crash on singleton methods defined on other than constants or self
Bugfix:
- Correctly vendor inflector
Bugfix:
- Prepend extra elements to hash and array instead of append. This fixes unkillable mutators in parallel assignments!
Feature:
- Add a shitload of operator expansions for dm2 strategy
Bugfix:
- Crash on unavailable source location
- Incorrect handling of if and unless statements
- Expand Foo#initialize to spec/unit/foo in rspec dm2 strategy
- Correctly expand [] to element_reader_spec.rb in rspec dm2 strategy
- Correctly expand []= to element_writer_spec.rb in rspec dm2 strategy
- Correctly expand foo= to foo_writer_spec.rb in rspec dm2 strategy
First public release!