Cleanup missing whitespace after comma
* There must be a code metric tool helping me in converting my style.
This commit is contained in:
parent
3963166344
commit
d50ecc483d
43 changed files with 157 additions and 157 deletions
|
@ -1,5 +1,5 @@
|
|||
module Mutant
|
||||
class Context
|
||||
class Context
|
||||
# Constant context for mutation (Class or Module)
|
||||
class Constant < Context
|
||||
include Veritas::Immutable
|
||||
|
@ -24,7 +24,7 @@ module Mutant
|
|||
raise ArgumentError, 'Can only build constant mutation scope from class or module'
|
||||
end
|
||||
|
||||
new(value,*arguments)
|
||||
new(value, *arguments)
|
||||
end
|
||||
|
||||
# Return ast wrapping mutated node
|
||||
|
@ -35,13 +35,13 @@ module Mutant
|
|||
#
|
||||
def root(node)
|
||||
root = root_ast
|
||||
root.body = @scope_class.new(1,root.name,node)
|
||||
root.body = @scope_class.new(1, root.name, node)
|
||||
Rubinius::AST::Script.new(root)
|
||||
end
|
||||
|
||||
# Return unqualified name of constant
|
||||
#
|
||||
# @return [String]
|
||||
# @return [String]
|
||||
#
|
||||
# @api private
|
||||
#
|
||||
|
@ -66,11 +66,11 @@ module Mutant
|
|||
#
|
||||
# @api private
|
||||
#
|
||||
def initialize(constant,keyword,scope_class)
|
||||
@constant,@keyword,@scope_class = constant,keyword,scope_class
|
||||
def initialize(constant, keyword, scope_class)
|
||||
@constant, @keyword, @scope_class = constant, keyword, scope_class
|
||||
end
|
||||
|
||||
# Return new root ast
|
||||
# Return new root ast
|
||||
#
|
||||
# @return [Rubinius::AST::Node]
|
||||
#
|
||||
|
@ -82,7 +82,7 @@ module Mutant
|
|||
|
||||
# Return qualified name of constant
|
||||
#
|
||||
# @return [String]
|
||||
# @return [String]
|
||||
#
|
||||
# @api private
|
||||
#
|
||||
|
|
|
@ -2,12 +2,12 @@ module Mutant
|
|||
# A method object for inserting an AST into the Rubinius VM
|
||||
#
|
||||
# The idea is to split the steps for a mutation into documented
|
||||
# methods. Also subclasses can override the steps. Also passing
|
||||
# methods. Also subclasses can override the steps. Also passing
|
||||
# around the root node is not needed with a method object.
|
||||
#
|
||||
# As the initializer does the work there is no need for the
|
||||
# As the initializer does the work there is no need for the
|
||||
# instances of this class to be used outside of this class, hence
|
||||
# the Loader.new method is private and the Loader.run method
|
||||
# the Loader.new method is private and the Loader.run method
|
||||
# returns self.
|
||||
#
|
||||
class Loader
|
||||
|
@ -46,8 +46,8 @@ module Mutant
|
|||
|
||||
# Return compiled code for node
|
||||
#
|
||||
# This method actually returns a Rubnius::CompiledMethod
|
||||
# instance. But it is named on the future name of CompiledMethod
|
||||
# This method actually returns a Rubnius::CompiledMethod
|
||||
# instance. But it is named on the future name of CompiledMethod
|
||||
# that will be renamed to Rubinius::CompiledCode.
|
||||
#
|
||||
# @return [Rubinius::CompiledMethod]
|
||||
|
|
|
@ -25,7 +25,7 @@ module Mutant
|
|||
# returns self when block given
|
||||
#
|
||||
# @api private
|
||||
#
|
||||
#
|
||||
def each(&block)
|
||||
return to_enum unless block_given?
|
||||
mutatee.tap do |mutatee|
|
||||
|
@ -68,7 +68,7 @@ module Mutant
|
|||
|
||||
|
||||
# Initialize method filter
|
||||
#
|
||||
#
|
||||
# @param [String] constant_name
|
||||
# @param [Symbol] method_name
|
||||
#
|
||||
|
@ -77,11 +77,11 @@ module Mutant
|
|||
# @api private
|
||||
#
|
||||
def initialize(constant_name, method_name)
|
||||
@constant_name,@method_name = constant_name, method_name
|
||||
@constant_name, @method_name = constant_name, method_name
|
||||
end
|
||||
|
||||
# Return method
|
||||
#
|
||||
#
|
||||
# @return [UnboundMethod]
|
||||
#
|
||||
# @api private
|
||||
|
@ -96,7 +96,7 @@ module Mutant
|
|||
#
|
||||
abstract :node_class
|
||||
|
||||
# Check if node is matched
|
||||
# Check if node is matched
|
||||
#
|
||||
# @param [Rubinius::AST::Node] node
|
||||
#
|
||||
|
@ -109,8 +109,8 @@ module Mutant
|
|||
# @api private
|
||||
#
|
||||
def match?(node)
|
||||
node.line == source_file_line &&
|
||||
node.class == node_class &&
|
||||
node.line == source_file_line &&
|
||||
node.class == node_class &&
|
||||
node.name == method_name
|
||||
end
|
||||
|
||||
|
@ -160,7 +160,7 @@ module Mutant
|
|||
#
|
||||
# @api private
|
||||
#
|
||||
abstract :matched_node
|
||||
abstract :matched_node
|
||||
|
||||
# Return mutatee
|
||||
#
|
||||
|
@ -171,7 +171,7 @@ module Mutant
|
|||
def mutatee
|
||||
node = matched_node
|
||||
if node
|
||||
Mutatee.new(context,node)
|
||||
Mutatee.new(context, node)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -182,7 +182,7 @@ module Mutant
|
|||
# @api private
|
||||
#
|
||||
def constant
|
||||
constant_name.split('::').inject(::Object) do |parent,name|
|
||||
constant_name.split('::').inject(::Object) do |parent, name|
|
||||
parent.const_get(name)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
module Mutant
|
||||
class Matcher
|
||||
class Matcher
|
||||
class Method < Matcher
|
||||
# Matcher for instance methods
|
||||
class Instance < Method
|
||||
|
@ -7,7 +7,7 @@ module Mutant
|
|||
private
|
||||
|
||||
# Return method instance
|
||||
#
|
||||
#
|
||||
# @return [UnboundMethod]
|
||||
#
|
||||
# @api private
|
||||
|
@ -16,8 +16,8 @@ module Mutant
|
|||
constant.instance_method(method_name)
|
||||
end
|
||||
|
||||
# Return matched node class
|
||||
#
|
||||
# Return matched node class
|
||||
#
|
||||
# @return [Rubinius::AST::Define]
|
||||
#
|
||||
# @api private
|
||||
|
|
|
@ -7,7 +7,7 @@ module Mutant
|
|||
private
|
||||
|
||||
# Return method instance
|
||||
#
|
||||
#
|
||||
# @return [UnboundMethod]
|
||||
#
|
||||
# @api private
|
||||
|
@ -16,8 +16,8 @@ module Mutant
|
|||
constant.method(method_name)
|
||||
end
|
||||
|
||||
# Return matched node class
|
||||
#
|
||||
# Return matched node class
|
||||
#
|
||||
# @return [Rubinius::AST::DefineSingletonScope]
|
||||
#
|
||||
# @api private
|
||||
|
@ -28,7 +28,7 @@ module Mutant
|
|||
|
||||
# Check for stopping AST walk on branch
|
||||
#
|
||||
# This method exist to protect against the
|
||||
# This method exist to protect against the
|
||||
# artifical edge case where DefineSingleton nodes
|
||||
# with differend receivers exist on the same line.
|
||||
#
|
||||
|
@ -41,13 +41,13 @@ module Mutant
|
|||
# returns false when node can be followed
|
||||
#
|
||||
# @api private
|
||||
#
|
||||
#
|
||||
def stop?(node)
|
||||
node.is_a?(Rubinius::AST::DefineSingleton) && !match_receiver?(node)
|
||||
end
|
||||
|
||||
# Check if receiver matches
|
||||
#
|
||||
#
|
||||
# @param [Rubinius::AST::DefineSingleton] node
|
||||
#
|
||||
# @return [true]
|
||||
|
|
|
@ -31,26 +31,26 @@ module Mutant
|
|||
#
|
||||
def each(&block)
|
||||
return to_enum unless block_given?
|
||||
Mutator.each(node,&block)
|
||||
Mutator.each(node, &block)
|
||||
|
||||
self
|
||||
end
|
||||
|
||||
# Reset implementation to original
|
||||
# Reset implementation to original
|
||||
#
|
||||
# This method inserts the original node again.
|
||||
# This method inserts the original node again.
|
||||
#
|
||||
# @return [self]
|
||||
#
|
||||
# @api private
|
||||
#
|
||||
#
|
||||
def reset
|
||||
insert(@node)
|
||||
|
||||
self
|
||||
end
|
||||
|
||||
private
|
||||
private
|
||||
|
||||
# Initialize a mutatee
|
||||
#
|
||||
|
@ -64,18 +64,18 @@ module Mutant
|
|||
#
|
||||
# @api private
|
||||
#
|
||||
def initialize(context,node)
|
||||
@context,@node = context,node
|
||||
def initialize(context, node)
|
||||
@context, @node = context, node
|
||||
end
|
||||
|
||||
# Insert AST node under context
|
||||
#
|
||||
# @param [Rubinius::AST::Node] node
|
||||
#
|
||||
#
|
||||
# @return [self]
|
||||
#
|
||||
# @api private
|
||||
#
|
||||
#
|
||||
def insert(node)
|
||||
Loader.load(context.root(node))
|
||||
|
||||
|
|
|
@ -13,9 +13,9 @@ module Mutant
|
|||
#
|
||||
# @api private
|
||||
#
|
||||
def self.each(node,&block)
|
||||
return to_enum(__method__,node) unless block_given?
|
||||
generator(node).new(node,block)
|
||||
def self.each(node, &block)
|
||||
return to_enum(__method__, node) unless block_given?
|
||||
generator(node).new(node, block)
|
||||
|
||||
self
|
||||
end
|
||||
|
@ -33,7 +33,7 @@ module Mutant
|
|||
#
|
||||
def self.generator(node)
|
||||
unqualified_name = node.class.name.split('::').last
|
||||
const_get(unqualified_name)
|
||||
const_get(unqualified_name)
|
||||
end
|
||||
|
||||
private_class_method :generator
|
||||
|
@ -49,8 +49,8 @@ module Mutant
|
|||
#
|
||||
# @api private
|
||||
#
|
||||
def initialize(node,block)
|
||||
@node,@block = node,block
|
||||
def initialize(node, block)
|
||||
@node, @block = node, block
|
||||
dispatch
|
||||
end
|
||||
|
||||
|
@ -93,7 +93,7 @@ module Mutant
|
|||
# a nice interface for retring generation when generation accidentally generated the
|
||||
# same AST that is about to be mutated.
|
||||
#
|
||||
# @yield
|
||||
# @yield
|
||||
# Execute block until AST node that does not equal wrapped node is generated by block
|
||||
#
|
||||
# @return [self]
|
||||
|
@ -104,10 +104,10 @@ module Mutant
|
|||
# @api private
|
||||
#
|
||||
def emit_new
|
||||
MAX_TRIES.times do
|
||||
MAX_TRIES.times do
|
||||
node = yield
|
||||
if new?(node)
|
||||
emit_unsafe(node)
|
||||
emit_unsafe(node)
|
||||
return
|
||||
end
|
||||
end
|
||||
|
@ -116,7 +116,7 @@ module Mutant
|
|||
end
|
||||
|
||||
# Call block with node
|
||||
#
|
||||
#
|
||||
# @param [Rubinius::AST::Node] node
|
||||
#
|
||||
# @return [self]
|
||||
|
@ -163,8 +163,8 @@ module Mutant
|
|||
#
|
||||
# @api private
|
||||
#
|
||||
def emit(node_class,*arguments)
|
||||
emit_safe(new(node_class,*arguments))
|
||||
def emit(node_class, *arguments)
|
||||
emit_safe(new(node_class, *arguments))
|
||||
end
|
||||
|
||||
# Create a new AST node with same class as wrapped node
|
||||
|
@ -174,7 +174,7 @@ module Mutant
|
|||
# @api private
|
||||
#
|
||||
def new_self(*arguments)
|
||||
new(node.class,*arguments)
|
||||
new(node.class, *arguments)
|
||||
end
|
||||
|
||||
# Create a new AST node with Rubnius::AST::NilLiteral class
|
||||
|
@ -195,8 +195,8 @@ module Mutant
|
|||
#
|
||||
# @api private
|
||||
#
|
||||
def new(node_class,*arguments)
|
||||
node_class.new(node.line,*arguments)
|
||||
def new(node_class, *arguments)
|
||||
node_class.new(node.line, *arguments)
|
||||
end
|
||||
|
||||
# Emit a new AST node with same class as wrapped node
|
||||
|
@ -248,7 +248,7 @@ module Mutant
|
|||
# @api private
|
||||
#
|
||||
def emit_elements(elements)
|
||||
elements.each_with_index do |element,index|
|
||||
elements.each_with_index do |element, index|
|
||||
dup_elements = elements.dup
|
||||
Mutator.each(element).each do |mutation|
|
||||
dup_elements[index]=mutation
|
||||
|
@ -274,7 +274,7 @@ module Mutant
|
|||
# @api private
|
||||
#
|
||||
def negative_infinity
|
||||
new(Rubinius::AST::Negate,infinity)
|
||||
new(Rubinius::AST::Negate, infinity)
|
||||
end
|
||||
|
||||
# Return AST representing infinity
|
||||
|
@ -284,7 +284,7 @@ module Mutant
|
|||
# @api private
|
||||
#
|
||||
def infinity
|
||||
new_call(new_float(1),:/,new_float(0))
|
||||
new_call(new_float(1), :/, new_float(0))
|
||||
end
|
||||
|
||||
|
||||
|
@ -298,8 +298,8 @@ module Mutant
|
|||
#
|
||||
# @api private
|
||||
#
|
||||
def new_call(receiver,name,arguments)
|
||||
new(Rubinius::AST::SendWithArguments,receiver,name,arguments)
|
||||
def new_call(receiver, name, arguments)
|
||||
new(Rubinius::AST::SendWithArguments, receiver, name, arguments)
|
||||
end
|
||||
|
||||
# Return new float literal
|
||||
|
@ -311,7 +311,7 @@ module Mutant
|
|||
# @api private
|
||||
#
|
||||
def new_float(value)
|
||||
new(Rubinius::AST::FloatLiteral,value)
|
||||
new(Rubinius::AST::FloatLiteral, value)
|
||||
end
|
||||
|
||||
# Return AST representing NaN
|
||||
|
@ -321,7 +321,7 @@ module Mutant
|
|||
# @api private
|
||||
#
|
||||
def nan
|
||||
new_call(new_float(0),:/,new_float(0))
|
||||
new_call(new_float(0), :/, new_float(0))
|
||||
end
|
||||
|
||||
memoize :sexp
|
||||
|
|
|
@ -13,7 +13,7 @@ module Mutant
|
|||
#
|
||||
def dispatch
|
||||
emit_nil
|
||||
emit_safe(inverse(node.start,node.finish))
|
||||
emit_safe(inverse(node.start, node.finish))
|
||||
emit_range
|
||||
end
|
||||
|
||||
|
@ -24,11 +24,11 @@ module Mutant
|
|||
# @api private
|
||||
#
|
||||
def emit_range
|
||||
start,finish = node.start,node.finish
|
||||
emit_self(negative_infinity,finish)
|
||||
emit_self(nan,finish)
|
||||
emit_self(start,infinity)
|
||||
emit_self(start,nan)
|
||||
start, finish = node.start, node.finish
|
||||
emit_self(negative_infinity, finish)
|
||||
emit_self(nan, finish)
|
||||
emit_self(start, infinity)
|
||||
emit_self(start, nan)
|
||||
end
|
||||
|
||||
# Return inverse AST node class
|
||||
|
|
|
@ -16,7 +16,7 @@ module Mutant
|
|||
emit_safe(inverse)
|
||||
end
|
||||
|
||||
# Return inverse
|
||||
# Return inverse
|
||||
#
|
||||
# @return [Rubinius::AST::Node]
|
||||
#
|
||||
|
|
|
@ -13,7 +13,7 @@ module Mutant
|
|||
#
|
||||
def dispatch
|
||||
emit_nil
|
||||
emit(Rubinius::AST::ArrayLiteral,[new_nil])
|
||||
emit(Rubinius::AST::ArrayLiteral, [new_nil])
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -2,7 +2,7 @@ module Mutant
|
|||
class Mutator
|
||||
# Represent mutations of false literal
|
||||
class FalseLiteral < Boolean
|
||||
|
||||
|
||||
private
|
||||
|
||||
# Return inverse class
|
||||
|
|
|
@ -24,7 +24,7 @@ module Mutant
|
|||
# @api private
|
||||
#
|
||||
def values
|
||||
[0,1,-node.value]
|
||||
[0, 1, -node.value]
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -5,7 +5,7 @@ module Mutant
|
|||
|
||||
private
|
||||
|
||||
# Emit mutants
|
||||
# Emit mutants
|
||||
#
|
||||
# @return [undefined]
|
||||
#
|
||||
|
@ -25,7 +25,7 @@ module Mutant
|
|||
# @api private
|
||||
#
|
||||
def values
|
||||
[0.0,1.0] << -node.value
|
||||
[0.0, 1.0] << -node.value
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -39,7 +39,7 @@ module Mutant
|
|||
end
|
||||
|
||||
# Return values to mutate against
|
||||
#
|
||||
#
|
||||
# @return [Array]
|
||||
#
|
||||
# @api private
|
||||
|
@ -55,7 +55,7 @@ module Mutant
|
|||
# @api private
|
||||
#
|
||||
def emit_element_presence
|
||||
0.step(array.length-1,2) do |index|
|
||||
0.step(array.length-1, 2) do |index|
|
||||
contents = dup_array
|
||||
contents.delete_at(index)
|
||||
contents.delete_at(index)
|
||||
|
|
|
@ -5,14 +5,14 @@ module Mutant
|
|||
|
||||
private
|
||||
|
||||
# Return inverse
|
||||
# Return inverse
|
||||
#
|
||||
# @return [Rubinius::AST::RangeExclude]
|
||||
#
|
||||
# @api private
|
||||
#
|
||||
def inverse(*arguments)
|
||||
new(Rubinius::AST::RangeExclude,*arguments)
|
||||
new(Rubinius::AST::RangeExclude, *arguments)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -12,7 +12,7 @@ module Mutant
|
|||
# @api private
|
||||
#
|
||||
def inverse(*arguments)
|
||||
new(Rubinius::AST::Range,*arguments)
|
||||
new(Rubinius::AST::Range, *arguments)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -13,7 +13,7 @@ module Mutant
|
|||
#
|
||||
def dispatch
|
||||
emit_nil
|
||||
emit_new { new_self(Mutant.random_hex_string,node.options) }
|
||||
emit_new { new_self(Mutant.random_hex_string, node.options) }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -2,10 +2,10 @@ module Mutant
|
|||
class Mutator
|
||||
# Represent mutations of true literal
|
||||
class TrueLiteral < Boolean
|
||||
|
||||
|
||||
private
|
||||
|
||||
# Return inverse
|
||||
# Return inverse
|
||||
#
|
||||
# @return [Rubinius::AST::FalseLiteral]
|
||||
#
|
||||
|
|
|
@ -41,9 +41,9 @@ module Mutant
|
|||
# @api private
|
||||
#
|
||||
def define_singleton_method(name)
|
||||
class_eval(<<-RUBY,__FILE__,__LINE__+1)
|
||||
class_eval(<<-RUBY, __FILE__, __LINE__+1)
|
||||
def #{name}(*)
|
||||
raise NotImplementedError,"\#{self.name}.\#{__method__} is not implemented"
|
||||
raise NotImplementedError, "\#{self.name}.\#{__method__} is not implemented"
|
||||
end
|
||||
RUBY
|
||||
end
|
||||
|
@ -57,9 +57,9 @@ module Mutant
|
|||
# @api private
|
||||
#
|
||||
def define_instance_method(name)
|
||||
class_eval(<<-RUBY,__FILE__,__LINE__+1)
|
||||
class_eval(<<-RUBY, __FILE__, __LINE__+1)
|
||||
def #{name}(*)
|
||||
raise NotImplementedError,"\#{self.class.name}#\#{__method__} is not implemented"
|
||||
raise NotImplementedError, "\#{self.class.name}#\#{__method__} is not implemented"
|
||||
end
|
||||
RUBY
|
||||
end
|
||||
|
|
|
@ -1,17 +1,17 @@
|
|||
require 'spec_helper'
|
||||
|
||||
if "".respond_to?(:to_ast)
|
||||
if "".respond_to?(:to_ast)
|
||||
class CodeLoadingSubject
|
||||
def x
|
||||
true
|
||||
end
|
||||
end
|
||||
|
||||
describe Mutant,'code loading' do
|
||||
describe Mutant, 'code loading' do
|
||||
let(:context) { Mutant::Context::Constant.build(CodeLoadingSubject) }
|
||||
let(:node) { 'def foo; :bar; end'.to_ast }
|
||||
let(:root) { context.root(node) }
|
||||
|
||||
|
||||
subject { Mutant::Loader.load(root) }
|
||||
|
||||
before { subject }
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
require 'spec_helper'
|
||||
|
||||
if "".respond_to?(:to_ast)
|
||||
describe Mutant,'method matching' do
|
||||
describe Mutant, 'method matching' do
|
||||
after do
|
||||
if defined?(::Foo)
|
||||
Object.send(:remove_const,'Foo')
|
||||
Object.send(:remove_const, 'Foo')
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -12,7 +12,7 @@ if "".respond_to?(:to_ast)
|
|||
eval(body)
|
||||
File.stub(:read => body)
|
||||
end
|
||||
|
||||
|
||||
let(:defaults) { {} }
|
||||
|
||||
context 'on instance methods' do
|
||||
|
@ -28,7 +28,7 @@ if "".respond_to?(:to_ast)
|
|||
|
||||
context 'when method is defined once' do
|
||||
let(:body) do
|
||||
<<-RUBY
|
||||
<<-RUBY
|
||||
class Foo
|
||||
def bar; end
|
||||
end
|
||||
|
@ -45,7 +45,7 @@ if "".respond_to?(:to_ast)
|
|||
context 'when method is defined multiple times' do
|
||||
context 'on differend lines' do
|
||||
let(:body) do
|
||||
<<-RUBY
|
||||
<<-RUBY
|
||||
class Foo
|
||||
def bar; end
|
||||
def bar(arg); end
|
||||
|
@ -65,7 +65,7 @@ if "".respond_to?(:to_ast)
|
|||
|
||||
context 'on the same line' do
|
||||
let(:body) do
|
||||
<<-RUBY
|
||||
<<-RUBY
|
||||
class Foo
|
||||
def bar; end; def bar(arg); end
|
||||
end
|
||||
|
@ -84,7 +84,7 @@ if "".respond_to?(:to_ast)
|
|||
|
||||
context 'on the same line with differend scope' do
|
||||
let(:body) do
|
||||
<<-RUBY
|
||||
<<-RUBY
|
||||
class Foo
|
||||
def self.bar; end; def bar(arg); end
|
||||
end
|
||||
|
@ -107,7 +107,7 @@ if "".respond_to?(:to_ast)
|
|||
context 'in class' do
|
||||
let(:body) do
|
||||
<<-RUBY
|
||||
class Foo
|
||||
class Foo
|
||||
class Bar
|
||||
def baz; end
|
||||
end
|
||||
|
@ -116,7 +116,7 @@ if "".respond_to?(:to_ast)
|
|||
end
|
||||
|
||||
let(:expectation) do
|
||||
{
|
||||
{
|
||||
:method_line => 3,
|
||||
:method_name => :baz,
|
||||
:constant => Foo::Bar
|
||||
|
@ -129,7 +129,7 @@ if "".respond_to?(:to_ast)
|
|||
context 'in module' do
|
||||
let(:body) do
|
||||
<<-RUBY
|
||||
module Foo
|
||||
module Foo
|
||||
class Bar
|
||||
def baz; end
|
||||
end
|
||||
|
@ -138,7 +138,7 @@ if "".respond_to?(:to_ast)
|
|||
end
|
||||
|
||||
let(:expectation) do
|
||||
{
|
||||
{
|
||||
:method_line => 3,
|
||||
:method_name => :baz,
|
||||
:constant => Foo::Bar
|
||||
|
|
|
@ -30,10 +30,10 @@ shared_examples_for 'a method match' do
|
|||
end
|
||||
|
||||
it 'should have correct constant in context' do
|
||||
context.send(:constant).should eql(constant)
|
||||
context.send(:constant).should eql(constant)
|
||||
end
|
||||
|
||||
it 'should have the correct node class' do
|
||||
node.should be_a(node_class)
|
||||
node.should be_a(node_class)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -8,8 +8,8 @@ unless defined?(Rubinius)
|
|||
|
||||
attr_accessor :body
|
||||
|
||||
def initialize(line,name,body=[])
|
||||
@line,@name,@body = line,name,body
|
||||
def initialize(line, name, body=[])
|
||||
@line, @name, @body = line, name, body
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -27,16 +27,16 @@ unless defined?(Rubinius)
|
|||
|
||||
# Dummy class node
|
||||
class Class < Node
|
||||
def initialize(line,name,superclass,body)
|
||||
super(line,name)
|
||||
@superclass,@body = superclass,body
|
||||
def initialize(line, name, superclass, body)
|
||||
super(line, name)
|
||||
@superclass, @body = superclass, body
|
||||
end
|
||||
end
|
||||
|
||||
# Dummy module node
|
||||
class Module < Node
|
||||
def initialize(line,name,body)
|
||||
super(line,name)
|
||||
def initialize(line, name, body)
|
||||
super(line, name)
|
||||
@body = body
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe Mutant::Context::Constant,'.build' do
|
||||
describe Mutant::Context::Constant, '.build' do
|
||||
subject { described_class.build(constant) }
|
||||
|
||||
let(:object) { described_class }
|
||||
|
@ -14,7 +14,7 @@ describe Mutant::Context::Constant,'.build' do
|
|||
let(:constant) { Module.new }
|
||||
|
||||
it 'should initialize context correctly' do
|
||||
described_class.should_receive(:new).with(constant,'module',Rubinius::AST::ModuleScope).and_return(context)
|
||||
described_class.should_receive(:new).with(constant, 'module', Rubinius::AST::ModuleScope).and_return(context)
|
||||
should be(context)
|
||||
end
|
||||
|
||||
|
@ -25,7 +25,7 @@ describe Mutant::Context::Constant,'.build' do
|
|||
let(:constant) { Class.new }
|
||||
|
||||
it 'should initialize context correctly' do
|
||||
described_class.should_receive(:new).with(constant,'class',Rubinius::AST::ClassScope).and_return(context)
|
||||
described_class.should_receive(:new).with(constant, 'class', Rubinius::AST::ClassScope).and_return(context)
|
||||
should be(context)
|
||||
end
|
||||
|
||||
|
@ -36,7 +36,7 @@ describe Mutant::Context::Constant,'.build' do
|
|||
let(:constant) { Object.new }
|
||||
|
||||
it 'should raise error' do
|
||||
expect { subject }.to raise_error(ArgumentError,'Can only build constant mutation scope from class or module')
|
||||
expect { subject }.to raise_error(ArgumentError, 'Can only build constant mutation scope from class or module')
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
require 'spec_helper'
|
||||
|
||||
if "".respond_to?(:to_ast)
|
||||
if "".respond_to?(:to_ast)
|
||||
describe Mutant::Context::Constant, '#root' do
|
||||
subject { object.root(node) }
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe Mutant::Context,'#root' do
|
||||
describe Mutant::Context, '#root' do
|
||||
subject { object.root(mock) }
|
||||
|
||||
let(:object) { described_class.allocate }
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe Mutant::Loader,'.load' do
|
||||
describe Mutant::Loader, '.load' do
|
||||
subject { object.load(node) }
|
||||
|
||||
let(:object) { described_class }
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe Mutant::Matcher,'#context' do
|
||||
describe Mutant::Matcher, '#context' do
|
||||
subject { object.context }
|
||||
|
||||
let(:object) { described_class.new(constant_name) }
|
||||
|
|
|
@ -3,12 +3,12 @@ require 'spec_helper'
|
|||
# This spec is only present to ensure 100% test coverage.
|
||||
# The code should not be triggered on runtime.
|
||||
|
||||
describe Mutant::Matcher,'#each' do
|
||||
describe Mutant::Matcher, '#each' do
|
||||
subject { object.send(:each) }
|
||||
|
||||
let(:object) { described_class.allocate }
|
||||
|
||||
it 'should raise error' do
|
||||
expect { subject }.to raise_error(NotImplementedError,'Mutant::Matcher#each is not implemented')
|
||||
expect { subject }.to raise_error(NotImplementedError, 'Mutant::Matcher#each is not implemented')
|
||||
end
|
||||
end
|
||||
|
|
|
@ -38,7 +38,7 @@ describe Mutant::Matcher::Method::Classifier, '.run' do
|
|||
let(:input) { 'Foo' }
|
||||
|
||||
it 'should raise error' do
|
||||
expect { subject }.to raise_error(ArgumentError,"Cannot determine subject from #{input.inspect}")
|
||||
expect { subject }.to raise_error(ArgumentError, "Cannot determine subject from #{input.inspect}")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
require 'spec_helper'
|
||||
|
||||
# This method cannot be called directly, spec only exists for heckle demands
|
||||
describe Mutant::Matcher::Method::Classifier,'#matcher' do
|
||||
describe Mutant::Matcher::Method::Classifier, '#matcher' do
|
||||
subject { object.matcher }
|
||||
|
||||
let(:object) { described_class.send(:new,match) }
|
||||
let(:object) { described_class.send(:new, match) }
|
||||
|
||||
let(:match) { [mock,constant_name,scope_symbol,method_name] }
|
||||
let(:match) { [mock, constant_name, scope_symbol, method_name] }
|
||||
|
||||
let(:constant_name) { mock('Constant Name') }
|
||||
let(:method_name) { 'foo' }
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe Mutant::Matcher::Method,'#context' do
|
||||
describe Mutant::Matcher::Method, '#context' do
|
||||
subject { object.context }
|
||||
|
||||
let(:object) { described_class::Singleton.new('SampleSubjects::ExampleModule','foo') }
|
||||
let(:object) { described_class::Singleton.new('SampleSubjects::ExampleModule', 'foo') }
|
||||
let(:context) { mock('Context') }
|
||||
|
||||
before do
|
||||
|
|
|
@ -2,7 +2,7 @@ require 'spec_helper'
|
|||
|
||||
# This method implementation cannot be called from the outside, but heckle needs to be happy.
|
||||
|
||||
describe Mutant::Matcher::Method,'#each' do
|
||||
describe Mutant::Matcher::Method, '#each' do
|
||||
let(:class_under_test) do
|
||||
node = self.matched_node
|
||||
Class.new(described_class) do
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe Mutant::Matcher::Method,'#method' do
|
||||
describe Mutant::Matcher::Method, '#method' do
|
||||
subject { object.send(:method) }
|
||||
|
||||
let(:object) { described_class.allocate }
|
||||
|
||||
it 'should raise error' do
|
||||
expect { subject }.to raise_error(NotImplementedError,'Mutant::Matcher::Method#method is not implemented')
|
||||
expect { subject }.to raise_error(NotImplementedError, 'Mutant::Matcher::Method#method is not implemented')
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe Mutant::Matcher::Method,'#node_class' do
|
||||
describe Mutant::Matcher::Method, '#node_class' do
|
||||
subject { object.send(:node_class) }
|
||||
|
||||
let(:object) { described_class.allocate }
|
||||
|
||||
it 'should raise error' do
|
||||
expect { subject }.to raise_error(NotImplementedError,'Mutant::Matcher::Method#node_class is not implemented')
|
||||
expect { subject }.to raise_error(NotImplementedError, 'Mutant::Matcher::Method#node_class is not implemented')
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe Mutant::Mutatee,'.new' do
|
||||
subject { object.new(context,ast) }
|
||||
describe Mutant::Mutatee, '.new' do
|
||||
subject { object.new(context, ast) }
|
||||
|
||||
let(:object) { described_class }
|
||||
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe Mutant::Mutatee,'#context' do
|
||||
describe Mutant::Mutatee, '#context' do
|
||||
subject { object.context }
|
||||
|
||||
let(:object) { described_class.new(context,ast) }
|
||||
let(:object) { described_class.new(context, ast) }
|
||||
let(:ast) { mock('AST') }
|
||||
let(:context) { mock('Context') }
|
||||
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe Mutant::Mutatee,'#each' do
|
||||
describe Mutant::Mutatee, '#each' do
|
||||
subject { object.each { |item| yields << item } }
|
||||
|
||||
let(:object) { described_class.new(context,ast) }
|
||||
let(:object) { described_class.new(context, ast) }
|
||||
let(:root) { mock('Root AST') }
|
||||
let(:ast) { mock('AST') }
|
||||
let(:context) { mock('Context', :root => root) }
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe Mutant::Mutatee,'#node' do
|
||||
describe Mutant::Mutatee, '#node' do
|
||||
subject { object.node }
|
||||
let(:object) { described_class.new(context,node) }
|
||||
let(:object) { described_class.new(context, node) }
|
||||
let(:node) { mock('Node') }
|
||||
let(:context) { mock('Context') }
|
||||
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe Mutant::Mutatee,'#reset' do
|
||||
describe Mutant::Mutatee, '#reset' do
|
||||
subject { object.reset }
|
||||
|
||||
let(:object) { described_class.new(context,ast) }
|
||||
let(:object) { described_class.new(context, ast) }
|
||||
let(:root) { mock('Root AST') }
|
||||
let(:ast) { mock('AST') }
|
||||
let(:context) { mock('Context', :root => root) }
|
||||
|
|
|
@ -12,7 +12,7 @@ shared_examples_for 'a mutation enumerator method' do
|
|||
|
||||
it { should be_instance_of(to_enum.class) }
|
||||
|
||||
let(:expected_mutations) do
|
||||
let(:expected_mutations) do
|
||||
mutations.map do |mutation|
|
||||
if mutation.respond_to?(:to_ast)
|
||||
mutation.to_ast.to_sexp
|
||||
|
@ -136,7 +136,7 @@ describe Mutant::Mutator, '.each' do
|
|||
mutations << [:negate, [:call, [:lit, 1.0], :/, [:arglist, [:lit, 0.0]]]]
|
||||
mutations << [:lit, -10.0]
|
||||
end
|
||||
|
||||
|
||||
let(:random_float) { 7.123 }
|
||||
|
||||
before do
|
||||
|
@ -171,7 +171,7 @@ describe Mutant::Mutator, '.each' do
|
|||
|
||||
# Literal replaced with nil
|
||||
mutations << [:nil]
|
||||
|
||||
|
||||
# Mutation of each element in array
|
||||
mutations << '[nil, false]'
|
||||
mutations << '[false, false]'
|
||||
|
@ -188,7 +188,7 @@ describe Mutant::Mutator, '.each' do
|
|||
# Extra element
|
||||
mutations << '[true, false, nil]'
|
||||
end
|
||||
|
||||
|
||||
it_should_behave_like 'a mutation enumerator method'
|
||||
end
|
||||
|
||||
|
@ -226,7 +226,7 @@ describe Mutant::Mutator, '.each' do
|
|||
end
|
||||
|
||||
context 'range literal' do
|
||||
let(:source) { '1..100' }
|
||||
let(:source) { '1..100' }
|
||||
|
||||
let(:mutations) do
|
||||
mutations = []
|
||||
|
@ -242,7 +242,7 @@ describe Mutant::Mutator, '.each' do
|
|||
end
|
||||
|
||||
context 'exclusive range literal' do
|
||||
let(:source) { '1...100' }
|
||||
let(:source) { '1...100' }
|
||||
|
||||
let(:mutations) do
|
||||
mutations = []
|
||||
|
@ -288,7 +288,7 @@ describe Mutant::Mutator, '.each' do
|
|||
|
||||
let(:mutations) do
|
||||
mutations = []
|
||||
|
||||
|
||||
# Mutation of each statement in block
|
||||
mutations << "nil\nfalse"
|
||||
mutations << "false\nfalse"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe Mutant::Mutator,'#emit_new' do
|
||||
describe Mutant::Mutator, '#emit_new' do
|
||||
subject { object.send(:emit_new) { node } }
|
||||
|
||||
class Block
|
||||
|
@ -15,7 +15,7 @@ describe Mutant::Mutator,'#emit_new' do
|
|||
end
|
||||
end
|
||||
|
||||
let(:object) { class_under_test.new(wrapped_node,block) }
|
||||
let(:object) { class_under_test.new(wrapped_node, block) }
|
||||
let(:block) { Block.new }
|
||||
let(:wrapped_node) { '"foo"'.to_ast }
|
||||
|
||||
|
@ -40,12 +40,12 @@ describe Mutant::Mutator,'#emit_new' do
|
|||
block.arguments.should eql([node])
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
context 'when new AST could not be generated' do
|
||||
let(:node) { '"foo"'.to_ast }
|
||||
|
||||
it 'should raise error' do
|
||||
expect { subject }.to raise_error(RuntimeError,'New AST could not be generated after 3 attempts')
|
||||
expect { subject }.to raise_error(RuntimeError, 'New AST could not be generated after 3 attempts')
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe Mutant::Mutator,'#emit_safe' do
|
||||
subject { object.send(:emit_safe,node) }
|
||||
describe Mutant::Mutator, '#emit_safe' do
|
||||
subject { object.send(:emit_safe, node) }
|
||||
|
||||
class Block
|
||||
attr_reader :arguments
|
||||
|
@ -15,7 +15,7 @@ describe Mutant::Mutator,'#emit_safe' do
|
|||
end
|
||||
end
|
||||
|
||||
let(:object) { class_under_test.new(wrapped_node,block) }
|
||||
let(:object) { class_under_test.new(wrapped_node, block) }
|
||||
let(:block) { Block.new }
|
||||
let(:wrapped_node) { '"foo"'.to_ast }
|
||||
|
||||
|
@ -40,7 +40,7 @@ describe Mutant::Mutator,'#emit_safe' do
|
|||
block.arguments.should eql([node])
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
context 'with node that is equal to wrapped node' do
|
||||
let(:node) { '"foo"'.to_ast }
|
||||
|
||||
|
|
Loading…
Reference in a new issue