Commit graph

35 commits

Author SHA1 Message Date
Markus Schirp
e085e92e1c Default to forking rspec killer
* Also update library require statements
2012-08-28 19:15:10 +02:00
Markus Schirp
28bbf9af00 Remove use of root level namespace within the lib
This allows the easy creation of Zombie to mutate Mutant.
2012-08-16 22:59:25 +02:00
Markus Schirp
cee1d3943c Add colorized diffs to cli reporter 2012-08-16 18:02:03 +02:00
Markus Schirp
42e6fe84e5 Add runner with reporter
* Use MethodObject mixin
* Rename Context::Constant to Context::Scope
* Use Mutation class instead of passing around raw nodes
2012-08-16 04:10:54 +02:00
Markus Schirp
3a2c1ab7b5 Add Mutation class 2012-08-16 04:09:14 +02:00
Markus Schirp
6ed134ad38 Add method object mixin 2012-08-16 04:07:45 +02:00
Markus Schirp
d20655f4c2 Add a spike runner 2012-08-14 22:45:34 +02:00
Markus Schirp
23ee68ac1e Rename Runner to Killer
* Add working integration spec for rspec (mutant) killer.
2012-08-14 12:27:56 +02:00
Markus Schirp
7644a06f33 Add simple mutator for defines 2012-08-14 12:04:48 +02:00
Markus Schirp
fda5d716a4 Add initial rspec2 runner
* Needs integration spec!
2012-08-09 19:46:20 +02:00
Markus Schirp
23a04009ce Use abstract support gem instead of homebrew
The support gem is better speced than the homebrew version ever was.
2012-08-03 01:28:15 +02:00
Markus Schirp
51e68800d4 Do not require uncommited code 2012-08-03 00:34:50 +02:00
Markus Schirp
72996901bb Use immutable support gem 2012-08-03 00:19:01 +02:00
Markus Schirp
b6de7fad91 Add abstract (test) runner 2012-08-01 19:05:34 +02:00
Markus Schirp
8810c6e009 Rename Mutantee to Subject 2012-08-01 18:34:03 +02:00
Markus Schirp
a25f99c97a Add initial support for mutating case statements 2012-08-01 17:52:12 +02:00
Markus Schirp
00136ab9df Fix YARD coverage and flay score 2012-08-01 17:03:24 +02:00
Markus Schirp
890f02e7fe Handle 18 vs 19-mode differencies for if-statement 2012-08-01 16:58:29 +02:00
Markus Schirp
1d85b78f93 Adjust flay score and rename class based on roodi complaint 2012-08-01 16:06:36 +02:00
Markus Schirp
cc811aecf5 Add support for mutating if statements
* Also some other minor cleanups
2012-08-01 15:55:49 +02:00
Markus Schirp
bb9809fa39 Reorganize unit specs.
* The old nameing did not make any sense. Sorry for not useing git mv.
2012-08-01 14:13:57 +02:00
Markus Schirp
fb7bb942a3 Add mutation of simple send without arguments
* Lets the block spec work again as 1.8 and 1.9 mode do not behave
  differend as with literals.
2012-08-01 13:53:28 +02:00
Markus Schirp
b9b95ebe94 Break up mutation spec in class specific files
* Also add mutation class registry to improve readability.
* Calling mutations are still broken.
2012-08-01 13:27:35 +02:00
Markus Schirp
f318a7a68e Use to_source and ice_nine
* Adding to_source only to gemspec
* Use ice_nine to deep freeze the deep_cloned nodes that are subject of
  mutation to prevent bad mutators having a side effect.
2012-07-31 22:01:55 +02:00
Markus Schirp
7f3797ffa1 Introduce Mutant::Random
* Cleans up naming duplication from the Mutant.random_* names.
2012-07-31 20:11:37 +02:00
Markus Schirp
ef7516c3a2 Do not require virtus anymore 2012-07-31 19:50:43 +02:00
Markus Schirp
75e6a229f8 Create namespace for literal mutations
* Do not follow rubinius names anymore.
  An explict declaration now declares a mutator handles
  specific AST node.

* Has a nice impact on metrics.
2012-07-31 19:45:46 +02:00
Markus Schirp
3e1f9c408f Cleanup and dedup mutation generation
* Mutator and Generator where merged.
* A single pass over all duplications was made.
* It is clear a specific handles?(node) code for finding mutators
  is needed. Like virtus does for attributes, should also cache.
* Does not pass on 1.9 mode currently as blocks are unexpectly parsed
  differend when it comes to a series of literal booleans.
2012-07-31 04:00:05 +02:00
Markus Schirp
ef9172bca4 Guard against the generation of equal mutants
* Move Mutant::Mutator::Generator in a dedicated file
* Mutant::Mutator::Generator#append only forwards mutated node when it
  does not equal original nodes sexpession. This does not catch
  equivalent mutations, but mutations that exactly reproduce the same
  AST. This way a check for not generating the same asts can be
  centralized.
2012-07-30 21:40:49 +02:00
Markus Schirp
564220c453 Correct name of Mutant.random_float 2012-07-29 22:28:30 +02:00
Markus Schirp
0b9b46d12f Add range literal support
* Full of duplication. Will be addressed when all literals are done.
2012-07-28 00:17:00 +02:00
Markus Schirp
9e8b451933 Add mutation for some literals
* This is in progress code. The plan is to support all literals before
  beginning to cleanup and dedup the mutation generation. Have to
  understand the AST and the possible mutations more in depth before
  making structural decisions here.
2012-07-27 22:39:31 +02:00
Markus Schirp
10c3dfc390 Finalize method matching
* Add tests for all edge cases I could create
* Add infrastructure for loading mutations into the vm.
* The fun part is next!
2012-07-26 19:25:23 +02:00
Markus Schirp
dc893bfd7d Progress on method matching
* Adjust metrics
* Add initial integration spec on method matching
* Yard and Heckle coverage is at 100% (heckle cov is disputable)
* Rcov does not really make sense as MRI 1.8 cannot reach all code
  paths.
2012-07-24 01:41:08 +02:00
Markus Schirp
df6ccafeab Add method matcher infrastructure
Needs more specs for sure. Especially edge cases.
2012-07-23 22:54:35 +02:00