From 25bc3b9bc038db4e961388782ae3204f303f653b Mon Sep 17 00:00:00 2001 From: Dan Kubb Date: Sun, 28 Jul 2013 13:20:09 -0700 Subject: [PATCH] Add block_pass mutator --- lib/mutant.rb | 1 + lib/mutant/mutator/node/block_pass.rb | 25 +++++++++++++++++++ lib/mutant/mutator/node/generic.rb | 2 +- .../mutator/node/block_pass/mutation_spec.rb | 12 +++++++++ 4 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 lib/mutant/mutator/node/block_pass.rb create mode 100644 spec/unit/mutant/mutator/node/block_pass/mutation_spec.rb diff --git a/lib/mutant.rb b/lib/mutant.rb index 92426015..7363e410 100644 --- a/lib/mutant.rb +++ b/lib/mutant.rb @@ -57,6 +57,7 @@ require 'mutant/mutator/node/literal/nil' require 'mutant/mutator/node/argument' require 'mutant/mutator/node/arguments' require 'mutant/mutator/node/begin' +require 'mutant/mutator/node/block_pass' require 'mutant/mutator/node/cbase' require 'mutant/mutator/node/connective/binary' require 'mutant/mutator/node/const' diff --git a/lib/mutant/mutator/node/block_pass.rb b/lib/mutant/mutator/node/block_pass.rb new file mode 100644 index 00000000..65615c7f --- /dev/null +++ b/lib/mutant/mutator/node/block_pass.rb @@ -0,0 +1,25 @@ +module Mutant + class Mutator + class Node + + # Mutation emitter to handle block_pass nodes + class BlockPass < self + + handle(:block_pass) + + private + + # Emit mutations + # + # @return [undefined] + # + # @api private + # + def dispatch + # noop, for now + end + + end # BlockPass + end # Node + end # Mutator +end # Mutant diff --git a/lib/mutant/mutator/node/generic.rb b/lib/mutant/mutator/node/generic.rb index 149b9782..a648e848 100644 --- a/lib/mutant/mutator/node/generic.rb +++ b/lib/mutant/mutator/node/generic.rb @@ -11,7 +11,7 @@ module Mutant :defined, :next, :break, :match, :ensure, :dstr, :dsym, :yield, :rescue, :redo, :defined?, - :blockarg, :block_pass, :op_asgn, :and_asgn, + :blockarg, :op_asgn, :and_asgn, :regopt, :restarg, :resbody, :retry, :arg_expr, :kwrestarg, :kwoptarg, :kwarg, :undef, :module, :empty, :alias, :for, :xstr, :back_ref, :nth_ref, :class, diff --git a/spec/unit/mutant/mutator/node/block_pass/mutation_spec.rb b/spec/unit/mutant/mutator/node/block_pass/mutation_spec.rb new file mode 100644 index 00000000..628a824c --- /dev/null +++ b/spec/unit/mutant/mutator/node/block_pass/mutation_spec.rb @@ -0,0 +1,12 @@ +require 'spec_helper' + +describe Mutant::Mutator::Node::NamedValue::Access, 'block_pass' do + let(:source) { 'foo(&bar)' } + + let(:mutations) do + mutants = [] + mutants << 'foo' + end + + it_should_behave_like 'a mutator' +end