Commit Graph

36 Commits

Author SHA1 Message Date
Markus Schirp cb2ca5132e Remove redundant freeze calls
* Rubocop meanwhile knows the singleton class problem.
2018-12-25 11:42:51 +00:00
Markus Schirp 7d1744649a Replace Time.now usage with Mutant::Timer.now 2018-11-25 21:51:40 +00:00
Markus Schirp d6a2195744 Upgrade parser dependency 2018-09-12 13:15:43 +00:00
Markus Schirp 99ab9ff171 Change required Ruby version to >=2.3
* This commit does every 2.3 change required to get the build pass
* None of the changes can be extracted, without changing the build setup
2018-09-12 14:21:24 +00:00
Bartek Bułat 0be9fa75d6 Add Ruby 2.4 support for mutant
Several steps were made to achieve mutant working with Ruby 2.4 without
warnings and spec failures:

* Fix Fixnum deprecation warning
* Update RuboCop to 0.47 and fix offenses
* Relax version requirements on parser gem
* Update diff-lcs to 1.3
* Update rake 11.x -> 12.x
* Update reek 4.5 -> 4.6 (to work with parser 2.4)
* Update json 2.0 -> 2.1
* Update parallel 1.10 -> 1.11
* Update simplecov 0.12 -> 0.14
* Run regexp_parser integration against v0.4.3 (as we requiring this
    exact version)
* Update warnings.yml with new whitelist
* Run CircleCI tests on Ruby 2.3 and 2.4 (Bundler.with_clean_env
    was causing troubles on new CircleCI 2.0 setup, so it was removed)
2017-07-06 11:18:41 +02:00
John Backus fee9e6fe5e
Fix RuboCop and Reek violations
Introduced by new devtools release
2016-07-24 13:56:28 -07:00
John Backus c4dd8693cb Change AlignHash rubocop preference to `table` 2016-03-19 21:25:51 -07:00
Markus Schirp 1714a9e92c Fix integration coverage 2016-01-10 18:44:01 +00:00
Markus Schirp e92358b3cc Fix rspec test id generation to be simpler 2016-01-09 16:05:34 +00:00
Markus Schirp b7fdf846bc Remove redundant @api private YARD docs 2015-11-15 23:13:43 +00:00
Markus Schirp 84eec1eef3 Fix ordering of attributes
* Unless there is a good reason against these should be alphabetic
2015-11-15 20:13:48 +00:00
Tim Chambers 03a46ab8c5 Correct simple typos in code comments 2015-11-18 15:06:22 -08:00
Tim Chambers 5bb516b184 Correct typos in description 2015-07-15 07:04:45 -07:00
Markus Schirp 8335cccafb Fix YARD summary line
* Reduce redunrant 'Return' prefix on summaries
* Improve summary line to reflect the semantics of operation better
2015-07-03 15:21:39 +00:00
Markus Schirp 4bd15abeb6 Fix positioning of @api YARD tag 2015-07-02 03:35:54 +00:00
Markus Schirp d647563055 Refactor expression parsing and representation
* Avoids boot time mutation of REGISTER constant
* Allows to define project specific expression parsing
* Avoids custom (slow) serialization of Expression objects speeding up
  reporter / killer IPC
* Improve specification
* Improve integration API as it now finally references an object the config
* Allow reproduction of syntax from Expression#syntax
* Allow instantiation of Expresssion objects without generating the
  syntax, much nicer for most specs & internal code, avoids generating
  a string to parse it into an expression
* Fix LSP violation in Mutant::Matcher namespace
2015-06-21 14:44:33 +00:00
Markus Schirp d03e7fbdc2 Change integrations to reference config object
* Future changes depend on this one
* Also fixes the smell of "stateless" integration objects we had in the
  past
2015-06-29 18:39:08 +00:00
Markus Schirp 41101e4abe Add support for rspec mutant expression metadata 2015-05-16 23:30:07 +00:00
Markus Schirp 2624e2eb87 Add unit test for rspec integration 2015-05-16 23:23:20 +00:00
Markus Schirp 3e76cdb96f Fix null integration 2015-01-24 23:13:19 +00:00
Markus Schirp 207c159c23 Always build valid result objects
* Before Mutant::Expression was not marshallable resulting in the need
  to build "partial" result objects from killforks.
* Fixes an adjacent bug in spec selection
2014-12-22 17:54:20 +00:00
Markus Schirp ae65509258 Prevent ignore of metadata duplicates in rspec integration
* Example groups with identical metadata still can represent different
  test cases.
* Using the relative example group index as an additional key resolves
  this.

[fixes #279]
2014-12-21 21:06:04 +00:00
Markus Schirp af4b543a18 Fix silent exclusion of metadata duplicates in rspec integration 2014-12-21 21:01:49 +00:00
Markus Schirp 84c2f75cf4 Add rspec metadata flag to blacklist an example group from mutation testing 2014-12-13 01:06:04 +00:00
Markus Schirp 5b769ba5ff Remove redundant require 2014-12-03 14:36:39 +00:00
Markus Schirp 40c337ce5b Fine grained rspec integration
* Flattens the rspec example groups on filtering to remove redundant
  work being done on executing subtrees of already executed example
  groups
* Uses test batching to kill one mutation per isolation that results in
  a significant speedup.
* Drop rspec 2 support.

[closes #256]
2014-12-01 22:43:28 +00:00
Markus Schirp 3654ba010d Remove remaining encoding headers 2014-08-10 21:33:44 +00:00
Markus Schirp 105730f5ba Add parallel runner / reporter 2014-07-17 15:05:57 +00:00
Markus Schirp 609fb3cccb Simplify rspec integration differencies between rspec2 and rspec3 2014-07-12 16:46:10 +00:00
Markus Schirp 41d9700473 Refactor runer infrastructure
* Nuke around 800 lock
* Honor LSP with not anymore squeezing something non LSP compatible in
  the same inheritance tree.
* Separate running from result tree.
* Clean up kill logic and early exits on already dead mutations.
* Fix #runnin? smell for reporters.
* Decouple config object from VM state. Makes it serializable to enable
  config loading.
* Fix sequence of global VM events to match PRIOR rspec infects VM with
  gazillions of classes / modules. Thix fixes a startup speed
  degeneration.
* Various fixes to enhance determinism.
* Replace some unneded manual double dispatch with single manual dispatch for
  reporter / runners.
2014-07-05 23:04:38 +00:00
Markus Schirp 652f4080ec Handle collissions in rspec example group to mutant expression mapping 2014-07-02 20:27:04 +00:00
Markus Schirp 4247fcc8ed Remove require for rspec/core/version
Turns out that rspec2 and rspec3 require this on require 'rspec/core'
already.

[Closes #210]
2014-07-02 10:31:31 +00:00
Markus Schirp afcee32994 Move rspec integration endpoint into mutant/integration/rspec 2014-06-30 13:55:58 +00:00
Markus Schirp 3390d59954 Fix naming of Expression.{try_,}_parse
* try_parse is now the one that does not raise
* parse is now the one that does rase
2014-06-29 23:16:36 +00:00
Markus Schirp 55b93b5d76 Separate rspec2 and rspec3 integrations 2014-06-28 23:54:21 +00:00
Markus Schirp d1c764a86f Rename strategy to integration 2014-06-28 23:04:18 +00:00