Handle masgn outside of generic mutator

May result in syntactially invalid AST.
Currently is a noop.
This commit is contained in:
Markus Schirp 2013-07-05 13:44:13 +02:00
parent 023df844f9
commit 7505344a8b
7 changed files with 49 additions and 3 deletions

1
TODO
View file

@ -4,6 +4,7 @@ Code:
* Log all warnings through reporter, so remove random $stderr.puts calls
Mutations:
* Add true masgn mutations
* Add binary operator specific mutations (YAY, finally reached this point)
* Add some kind of a "do not touch me object" that raises on all messages.
It can be used to make sure each literal value is touched.

View file

@ -1,3 +1,3 @@
---
threshold: 16
total_score: 671
total_score: 674

View file

@ -64,6 +64,7 @@ require 'mutant/mutator/node/when'
require 'mutant/mutator/node/assignment'
require 'mutant/mutator/node/define'
require 'mutant/mutator/node/mlhs'
require 'mutant/mutator/node/masgn'
require 'mutant/mutator/node/return'
require 'mutant/mutator/node/block'
require 'mutant/mutator/node/if'

View file

@ -12,7 +12,7 @@ module Mutant
:next, :break, :match, :gvar, :cvar, :ensure,
:dstr, :dsym, :yield, :rescue, :redo, :defined?,
:lvar, :splat, :const, :blockarg, :block_pass, :op_asgn, :regopt,
:ivar, :restarg, :casgn, :masgn, :resbody, :retry, :arg_expr,
:ivar, :restarg, :casgn, :resbody, :retry, :arg_expr,
:kwrestarg, :kwoptarg, :kwarg, :undef, :module, :cbase, :empty,
:alias, :for, :xstr, :back_ref, :nth_ref, :class, :sclass, :match_with_lvasgn,
:match_current_line, :or_asgn, :kwbegin

View file

@ -0,0 +1,27 @@
module Mutant
class Mutator
class Node
# Mutation emitter to handle multipl assignment nodes
class MultipleAssignment < self
handle(:masgn)
children :left, :right
private
# Perform dispatch
#
# @return [undefined]
#
# @api private
#
def dispatch
# noop, for now
end
end # MultipleAssignment
end # Node
end # Mutator
end # Mutant

View file

@ -2,7 +2,7 @@
Gem::Specification.new do |gem|
gem.name = 'mutant'
gem.version = '0.3.0.beta11'
gem.version = '0.3.0.beta12'
gem.authors = [ 'Markus Schirp' ]
gem.email = [ 'mbj@schirp-dso.com' ]

View file

@ -0,0 +1,17 @@
require 'spec_helper'
describe Mutant::Mutator, 'masgn' do
before do
Mutant::Random.stub(:hex_string => 'random')
end
let(:source) { 'a, b = c, d' }
let(:mutations) do
mutants = []
end
it_should_behave_like 'a mutator'
end