mutant 0.8.8 → 0.8.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Changelog.md +9 -0
- data/README.md +1 -1
- data/Rakefile +12 -8
- data/bin/mutant +5 -1
- data/config/flay.yml +1 -1
- data/lib/mutant.rb +18 -17
- data/lib/mutant/actor.rb +1 -7
- data/lib/mutant/actor/env.rb +0 -4
- data/lib/mutant/actor/mailbox.rb +0 -4
- data/lib/mutant/actor/receiver.rb +0 -4
- data/lib/mutant/actor/sender.rb +0 -2
- data/lib/mutant/ast.rb +1 -5
- data/lib/mutant/ast/meta/const.rb +0 -2
- data/lib/mutant/ast/meta/optarg.rb +0 -2
- data/lib/mutant/ast/meta/send.rb +0 -12
- data/lib/mutant/ast/named_children.rb +0 -10
- data/lib/mutant/ast/sexp.rb +1 -5
- data/lib/mutant/cli.rb +19 -38
- data/lib/mutant/color.rb +1 -7
- data/lib/mutant/config.rb +11 -7
- data/lib/mutant/context.rb +0 -4
- data/lib/mutant/context/scope.rb +0 -18
- data/lib/mutant/delegator.rb +0 -6
- data/lib/mutant/diff.rb +0 -18
- data/lib/mutant/env.rb +8 -24
- data/lib/mutant/env/bootstrap.rb +18 -41
- data/lib/mutant/expression.rb +0 -8
- data/lib/mutant/expression/method.rb +6 -7
- data/lib/mutant/expression/methods.rb +5 -9
- data/lib/mutant/expression/namespace.rb +0 -13
- data/lib/mutant/expression/parser.rb +0 -6
- data/lib/mutant/integration.rb +2 -20
- data/lib/mutant/isolation.rb +0 -4
- data/lib/mutant/loader.rb +20 -35
- data/lib/mutant/matcher.rb +1 -1
- data/lib/mutant/matcher/chain.rb +1 -3
- data/lib/mutant/matcher/compiler.rb +0 -8
- data/lib/mutant/matcher/config.rb +2 -10
- data/lib/mutant/matcher/filter.rb +1 -3
- data/lib/mutant/matcher/method.rb +4 -26
- data/lib/mutant/matcher/method/instance.rb +1 -7
- data/lib/mutant/matcher/method/singleton.rb +0 -12
- data/lib/mutant/matcher/methods.rb +1 -19
- data/lib/mutant/matcher/namespace.rb +1 -7
- data/lib/mutant/matcher/null.rb +1 -3
- data/lib/mutant/matcher/scope.rb +1 -5
- data/lib/mutant/matcher/static.rb +0 -2
- data/lib/mutant/meta.rb +0 -2
- data/lib/mutant/meta/example.rb +0 -28
- data/lib/mutant/meta/example/dsl.rb +2 -16
- data/lib/mutant/mutation.rb +9 -18
- data/lib/mutant/mutator.rb +0 -24
- data/lib/mutant/mutator/node.rb +1 -33
- data/lib/mutant/mutator/node/and_asgn.rb +0 -2
- data/lib/mutant/mutator/node/argument.rb +0 -10
- data/lib/mutant/mutator/node/arguments.rb +0 -12
- data/lib/mutant/mutator/node/begin.rb +0 -4
- data/lib/mutant/mutator/node/binary.rb +2 -11
- data/lib/mutant/mutator/node/block.rb +0 -6
- data/lib/mutant/mutator/node/break.rb +0 -2
- data/lib/mutant/mutator/node/case.rb +0 -6
- data/lib/mutant/mutator/node/conditional_loop.rb +0 -2
- data/lib/mutant/mutator/node/const.rb +1 -3
- data/lib/mutant/mutator/node/define.rb +4 -11
- data/lib/mutant/mutator/node/defined.rb +0 -2
- data/lib/mutant/mutator/node/dstr.rb +0 -2
- data/lib/mutant/mutator/node/dsym.rb +0 -2
- data/lib/mutant/mutator/node/generic.rb +1 -3
- data/lib/mutant/mutator/node/if.rb +0 -8
- data/lib/mutant/mutator/node/kwbegin.rb +0 -2
- data/lib/mutant/mutator/node/literal/array.rb +0 -4
- data/lib/mutant/mutator/node/literal/boolean.rb +0 -2
- data/lib/mutant/mutator/node/literal/fixnum.rb +0 -6
- data/lib/mutant/mutator/node/literal/float.rb +0 -6
- data/lib/mutant/mutator/node/literal/hash.rb +0 -6
- data/lib/mutant/mutator/node/literal/nil.rb +0 -2
- data/lib/mutant/mutator/node/literal/range.rb +0 -8
- data/lib/mutant/mutator/node/literal/regex.rb +0 -4
- data/lib/mutant/mutator/node/literal/string.rb +0 -2
- data/lib/mutant/mutator/node/literal/symbol.rb +0 -2
- data/lib/mutant/mutator/node/masgn.rb +0 -2
- data/lib/mutant/mutator/node/match_current_line.rb +0 -2
- data/lib/mutant/mutator/node/mlhs.rb +0 -2
- data/lib/mutant/mutator/node/named_value/access.rb +0 -8
- data/lib/mutant/mutator/node/named_value/constant_assignment.rb +1 -7
- data/lib/mutant/mutator/node/named_value/variable_assignment.rb +0 -4
- data/lib/mutant/mutator/node/next.rb +0 -2
- data/lib/mutant/mutator/node/noop.rb +0 -2
- data/lib/mutant/mutator/node/nthref.rb +0 -2
- data/lib/mutant/mutator/node/op_asgn.rb +0 -2
- data/lib/mutant/mutator/node/or_asgn.rb +0 -2
- data/lib/mutant/mutator/node/resbody.rb +0 -4
- data/lib/mutant/mutator/node/rescue.rb +0 -10
- data/lib/mutant/mutator/node/return.rb +0 -2
- data/lib/mutant/mutator/node/send.rb +4 -32
- data/lib/mutant/mutator/node/send/attribute_assignment.rb +0 -6
- data/lib/mutant/mutator/node/send/binary.rb +0 -6
- data/lib/mutant/mutator/node/send/index.rb +0 -6
- data/lib/mutant/mutator/node/splat.rb +0 -2
- data/lib/mutant/mutator/node/super.rb +0 -2
- data/lib/mutant/mutator/node/when.rb +0 -10
- data/lib/mutant/mutator/node/yield.rb +0 -2
- data/lib/mutant/mutator/node/zsuper.rb +0 -2
- data/lib/mutant/mutator/registry.rb +0 -6
- data/lib/mutant/mutator/util.rb +0 -4
- data/lib/mutant/mutator/util/array.rb +0 -6
- data/lib/mutant/mutator/util/symbol.rb +0 -2
- data/lib/mutant/parallel.rb +21 -17
- data/lib/mutant/parallel/master.rb +0 -28
- data/lib/mutant/parallel/source.rb +0 -10
- data/lib/mutant/parallel/worker.rb +15 -10
- data/lib/mutant/parser.rb +23 -0
- data/lib/mutant/reporter.rb +5 -8
- data/lib/mutant/reporter/cli.rb +1 -15
- data/lib/mutant/reporter/cli/format.rb +3 -25
- data/lib/mutant/reporter/cli/printer.rb +0 -18
- data/lib/mutant/reporter/cli/printer/config.rb +0 -2
- data/lib/mutant/reporter/cli/printer/env_progress.rb +0 -2
- data/lib/mutant/reporter/cli/printer/env_result.rb +0 -2
- data/lib/mutant/reporter/cli/printer/mutation_progress_result.rb +0 -4
- data/lib/mutant/reporter/cli/printer/mutation_result.rb +0 -16
- data/lib/mutant/reporter/cli/printer/status.rb +0 -6
- data/lib/mutant/reporter/cli/printer/status_progressive.rb +0 -4
- data/lib/mutant/reporter/cli/printer/subject_progress.rb +0 -8
- data/lib/mutant/reporter/cli/printer/subject_result.rb +0 -2
- data/lib/mutant/reporter/cli/printer/test_result.rb +0 -2
- data/lib/mutant/reporter/cli/tput.rb +0 -4
- data/lib/mutant/repository.rb +4 -22
- data/lib/mutant/require_highjack.rb +0 -2
- data/lib/mutant/result.rb +23 -43
- data/lib/mutant/runner.rb +7 -20
- data/lib/mutant/runner/sink.rb +43 -86
- data/lib/mutant/selector.rb +0 -2
- data/lib/mutant/selector/expression.rb +0 -2
- data/lib/mutant/subject.rb +0 -22
- data/lib/mutant/subject/method.rb +2 -10
- data/lib/mutant/subject/method/instance.rb +0 -6
- data/lib/mutant/subject/method/singleton.rb +0 -2
- data/lib/mutant/test.rb +4 -3
- data/lib/mutant/version.rb +1 -1
- data/lib/mutant/warning_filter.rb +0 -10
- data/lib/mutant/zombifier.rb +5 -20
- data/meta/or_asgn.rb +6 -0
- data/meta/send.rb +29 -0
- data/mutant-rspec.gemspec +1 -1
- data/spec/integration/mutant/rspec_spec.rb +1 -1
- data/spec/integrations.yml +2 -3
- data/spec/shared/method_matcher_behavior.rb +7 -7
- data/spec/spec_helper.rb +2 -9
- data/spec/support/corpus.rb +37 -30
- data/spec/support/rb_bug.rb +1 -2
- data/spec/support/ruby_vm.rb +6 -3
- data/spec/support/shared_context.rb +19 -20
- data/spec/unit/mutant/actor/binding_spec.rb +6 -6
- data/spec/unit/mutant/actor/env_spec.rb +2 -2
- data/spec/unit/mutant/actor/mailbox_spec.rb +6 -6
- data/spec/unit/mutant/actor/message_spec.rb +2 -2
- data/spec/unit/mutant/actor/receiver_spec.rb +4 -4
- data/spec/unit/mutant/actor/sender_spec.rb +6 -6
- data/spec/unit/mutant/ast_spec.rb +9 -0
- data/spec/unit/mutant/cli_spec.rb +16 -10
- data/spec/unit/mutant/context/scope/root_spec.rb +1 -1
- data/spec/unit/mutant/context/scope/unqualified_name_spec.rb +1 -1
- data/spec/unit/mutant/context/scope_spec.rb +3 -3
- data/spec/unit/mutant/context_spec.rb +0 -22
- data/spec/unit/mutant/env/boostrap_spec.rb +34 -41
- data/spec/unit/mutant/env_spec.rb +74 -32
- data/spec/unit/mutant/integration/rspec_spec.rb +23 -17
- data/spec/unit/mutant/integration_spec.rb +4 -4
- data/spec/unit/mutant/isolation_spec.rb +4 -4
- data/spec/unit/mutant/loader_spec.rb +42 -0
- data/spec/unit/mutant/matcher/compiler_spec.rb +3 -3
- data/spec/unit/mutant/matcher/config_spec.rb +1 -1
- data/spec/unit/mutant/matcher/method/instance_spec.rb +8 -1
- data/spec/unit/mutant/matcher/method/singleton_spec.rb +8 -1
- data/spec/unit/mutant/matcher/namespace_spec.rb +7 -8
- data/spec/unit/mutant/matcher/null_spec.rb +3 -2
- data/spec/unit/mutant/mutation_spec.rb +11 -5
- data/spec/unit/mutant/mutator/registry_spec.rb +1 -1
- data/spec/unit/mutant/parallel/master_spec.rb +9 -9
- data/spec/unit/mutant/parallel/source/array_spec.rb +3 -3
- data/spec/unit/mutant/parallel/worker_spec.rb +5 -5
- data/spec/unit/mutant/parallel_spec.rb +4 -4
- data/spec/unit/mutant/parser_spec.rb +24 -0
- data/spec/unit/mutant/reporter/cli/printer_spec.rb +3 -3
- data/spec/unit/mutant/reporter/cli/tput_spec.rb +2 -2
- data/spec/unit/mutant/reporter/cli_spec.rb +7 -7
- data/spec/unit/mutant/reporter/null_spec.rb +5 -4
- data/spec/unit/mutant/repository/diff_spec.rb +30 -18
- data/spec/unit/mutant/repository/subject_filter_spec.rb +5 -5
- data/spec/unit/mutant/require_highjack_spec.rb +1 -1
- data/spec/unit/mutant/result/env_spec.rb +9 -9
- data/spec/unit/mutant/result/subject_spec.rb +5 -5
- data/spec/unit/mutant/runner/driver_spec.rb +4 -4
- data/spec/unit/mutant/runner/{sink/mutation_spec.rb → sink_spec.rb} +16 -4
- data/spec/unit/mutant/runner_spec.rb +31 -31
- data/spec/unit/mutant/selector/expression_spec.rb +8 -8
- data/spec/unit/mutant/subject/method/instance_spec.rb +9 -3
- data/spec/unit/mutant/subject/method/singleton_spec.rb +1 -1
- data/spec/unit/mutant/subject_spec.rb +1 -5
- data/spec/unit/mutant_spec.rb +3 -3
- metadata +9 -15
- data/config/mutant.yml +0 -14
- data/lib/mutant/cache.rb +0 -29
- data/lib/mutant/reporter/trace.rb +0 -36
- data/spec/support/rspec.rb +0 -21
- data/spec/unit/mutant/cache_spec.rb +0 -22
- data/spec/unit/mutant/loader/eval_spec.rb +0 -44
- data/spec/unit/mutant/reporter/trace_spec.rb +0 -21
- data/test_app/Gemfile.rspec3.2 +0 -7
@@ -0,0 +1,23 @@
|
|
1
|
+
module Mutant
|
2
|
+
# An AST Parser
|
3
|
+
class Parser
|
4
|
+
include Adamantium::Mutable, Equalizer.new
|
5
|
+
|
6
|
+
# Initialize object
|
7
|
+
#
|
8
|
+
# @return [undefined]
|
9
|
+
def initialize
|
10
|
+
@cache = {}
|
11
|
+
end
|
12
|
+
|
13
|
+
# Parse path into AST
|
14
|
+
#
|
15
|
+
# @param [Pathname] path
|
16
|
+
#
|
17
|
+
# @return [AST::Node]
|
18
|
+
def call(path)
|
19
|
+
@cache[path] ||= ::Parser::CurrentRuby.parse(path.read)
|
20
|
+
end
|
21
|
+
|
22
|
+
end # Parser
|
23
|
+
end # Mutant
|
data/lib/mutant/reporter.rb
CHANGED
@@ -8,8 +8,6 @@ module Mutant
|
|
8
8
|
# @param [String] message
|
9
9
|
#
|
10
10
|
# @return [self]
|
11
|
-
#
|
12
|
-
# @api private
|
13
11
|
abstract_method :warn
|
14
12
|
|
15
13
|
# Report start
|
@@ -17,8 +15,6 @@ module Mutant
|
|
17
15
|
# @param [Env] env
|
18
16
|
#
|
19
17
|
# @return [self]
|
20
|
-
#
|
21
|
-
# @api private
|
22
18
|
abstract_method :start
|
23
19
|
|
24
20
|
# Report collector state
|
@@ -26,8 +22,6 @@ module Mutant
|
|
26
22
|
# @param [Runner::Collector] collector
|
27
23
|
#
|
28
24
|
# @return [self]
|
29
|
-
#
|
30
|
-
# @api private
|
31
25
|
abstract_method :report
|
32
26
|
|
33
27
|
# Report progress on object
|
@@ -35,9 +29,12 @@ module Mutant
|
|
35
29
|
# @param [Object] object
|
36
30
|
#
|
37
31
|
# @return [self]
|
38
|
-
#
|
39
|
-
# @api private
|
40
32
|
abstract_method :progress
|
41
33
|
|
34
|
+
# The reporter delay
|
35
|
+
#
|
36
|
+
# @return [Float]
|
37
|
+
abstract_method :delay
|
38
|
+
|
42
39
|
end # Reporter
|
43
40
|
end # Mutant
|
data/lib/mutant/reporter/cli.rb
CHANGED
@@ -9,8 +9,6 @@ module Mutant
|
|
9
9
|
# @param [IO] output
|
10
10
|
#
|
11
11
|
# @return [Reporter::CLI]
|
12
|
-
#
|
13
|
-
# @api private
|
14
12
|
def self.build(output)
|
15
13
|
tput = Tput.detect
|
16
14
|
tty = output.respond_to?(:tty?) && output.tty?
|
@@ -24,11 +22,9 @@ module Mutant
|
|
24
22
|
|
25
23
|
# Report start
|
26
24
|
#
|
27
|
-
# @param [Env] env
|
25
|
+
# @param [Env::Bootstrap] env
|
28
26
|
#
|
29
27
|
# @return [self]
|
30
|
-
#
|
31
|
-
# @api private
|
32
28
|
def start(env)
|
33
29
|
write(format.start(env))
|
34
30
|
self
|
@@ -39,8 +35,6 @@ module Mutant
|
|
39
35
|
# @param [Parallel::Status] status
|
40
36
|
#
|
41
37
|
# @return [self]
|
42
|
-
#
|
43
|
-
# @api private
|
44
38
|
def progress(status)
|
45
39
|
write(format.progress(status))
|
46
40
|
self
|
@@ -51,8 +45,6 @@ module Mutant
|
|
51
45
|
# TODO: Move this to a callback registration
|
52
46
|
#
|
53
47
|
# @return [Float]
|
54
|
-
#
|
55
|
-
# @api private
|
56
48
|
def delay
|
57
49
|
format.delay
|
58
50
|
end
|
@@ -62,8 +54,6 @@ module Mutant
|
|
62
54
|
# @param [String] message
|
63
55
|
#
|
64
56
|
# @return [self]
|
65
|
-
#
|
66
|
-
# @api private
|
67
57
|
def warn(message)
|
68
58
|
output.puts(message)
|
69
59
|
self
|
@@ -74,8 +64,6 @@ module Mutant
|
|
74
64
|
# @param [Result::Env] env
|
75
65
|
#
|
76
66
|
# @return [self]
|
77
|
-
#
|
78
|
-
# @api private
|
79
67
|
def report(env)
|
80
68
|
Printer::EnvResult.call(output, env)
|
81
69
|
self
|
@@ -88,8 +76,6 @@ module Mutant
|
|
88
76
|
# @param [String] frame
|
89
77
|
#
|
90
78
|
# @return [undefined]
|
91
|
-
#
|
92
|
-
# @api private
|
93
79
|
def write(frame)
|
94
80
|
output.write(frame)
|
95
81
|
end
|
@@ -7,11 +7,9 @@ module Mutant
|
|
7
7
|
|
8
8
|
# Start representation
|
9
9
|
#
|
10
|
-
# @param [Env] env
|
10
|
+
# @param [Env::Bootstrap] env
|
11
11
|
#
|
12
12
|
# @return [String]
|
13
|
-
#
|
14
|
-
# @api private
|
15
13
|
abstract_method :start
|
16
14
|
|
17
15
|
# Progress representation
|
@@ -19,15 +17,11 @@ module Mutant
|
|
19
17
|
# @param [Runner::Status] status
|
20
18
|
#
|
21
19
|
# @return [String]
|
22
|
-
#
|
23
|
-
# @api private
|
24
20
|
abstract_method :progress
|
25
21
|
|
26
22
|
# Report delay in seconds
|
27
23
|
#
|
28
24
|
# @return [Float]
|
29
|
-
#
|
30
|
-
# @api private
|
31
25
|
def delay
|
32
26
|
self.class::REPORT_DELAY
|
33
27
|
end
|
@@ -39,8 +33,6 @@ module Mutant
|
|
39
33
|
# Test if output is a tty
|
40
34
|
#
|
41
35
|
# @return [Boolean]
|
42
|
-
#
|
43
|
-
# @api private
|
44
36
|
alias_method :tty?, :tty
|
45
37
|
public :tty?
|
46
38
|
|
@@ -59,8 +51,6 @@ module Mutant
|
|
59
51
|
# @param [Object] object
|
60
52
|
#
|
61
53
|
# @return [String]
|
62
|
-
#
|
63
|
-
# @api private
|
64
54
|
def format(printer, object)
|
65
55
|
buffer = new_buffer
|
66
56
|
printer.call(Output.new(tty, buffer), object)
|
@@ -77,8 +67,6 @@ module Mutant
|
|
77
67
|
# Start representation
|
78
68
|
#
|
79
69
|
# @return [String]
|
80
|
-
#
|
81
|
-
# @api private
|
82
70
|
def start(env)
|
83
71
|
format(Printer::Config, env.config)
|
84
72
|
end
|
@@ -86,8 +74,6 @@ module Mutant
|
|
86
74
|
# Progress representation
|
87
75
|
#
|
88
76
|
# @return [String]
|
89
|
-
#
|
90
|
-
# @api private
|
91
77
|
def progress(status)
|
92
78
|
format(Printer::StatusProgressive, status)
|
93
79
|
end
|
@@ -97,8 +83,6 @@ module Mutant
|
|
97
83
|
# New buffer
|
98
84
|
#
|
99
85
|
# @return [StringIO]
|
100
|
-
#
|
101
|
-
# @api private
|
102
86
|
def new_buffer
|
103
87
|
StringIO.new
|
104
88
|
end
|
@@ -116,11 +100,9 @@ module Mutant
|
|
116
100
|
|
117
101
|
# Format start
|
118
102
|
#
|
119
|
-
# @param [Env] env
|
103
|
+
# @param [Env::Bootstrap] env
|
120
104
|
#
|
121
105
|
# @return [String]
|
122
|
-
#
|
123
|
-
# @api private
|
124
106
|
def start(_env)
|
125
107
|
tput.prepare
|
126
108
|
end
|
@@ -130,8 +112,6 @@ module Mutant
|
|
130
112
|
# @param [Runner::Status] status
|
131
113
|
#
|
132
114
|
# @return [String]
|
133
|
-
#
|
134
|
-
# @api private
|
135
115
|
def progress(status)
|
136
116
|
format(Printer::Status, status)
|
137
117
|
end
|
@@ -141,10 +121,8 @@ module Mutant
|
|
141
121
|
# New buffer
|
142
122
|
#
|
143
123
|
# @return [StringIO]
|
144
|
-
#
|
145
|
-
# @api private
|
146
124
|
def new_buffer
|
147
|
-
# For some reason this raises an
|
125
|
+
# For some reason this raises an Errno::EACCESS error:
|
148
126
|
#
|
149
127
|
# StringIO.new(Tput::INSTANCE.restore, BUFFER_FLAGS)
|
150
128
|
#
|
@@ -14,8 +14,6 @@ module Mutant
|
|
14
14
|
# Run printer
|
15
15
|
#
|
16
16
|
# @return [self]
|
17
|
-
#
|
18
|
-
# @api private
|
19
17
|
abstract_method :run
|
20
18
|
|
21
19
|
private
|
@@ -23,8 +21,6 @@ module Mutant
|
|
23
21
|
# Status color
|
24
22
|
#
|
25
23
|
# @return [Color]
|
26
|
-
#
|
27
|
-
# @api private
|
28
24
|
def status_color
|
29
25
|
success? ? Color::GREEN : Color::RED
|
30
26
|
end
|
@@ -35,8 +31,6 @@ module Mutant
|
|
35
31
|
# @return [Enumerable<Object>] collection
|
36
32
|
#
|
37
33
|
# @return [undefined]
|
38
|
-
#
|
39
|
-
# @api private
|
40
34
|
def visit_collection(printer, collection)
|
41
35
|
collection.each do |object|
|
42
36
|
visit(printer, object)
|
@@ -49,8 +43,6 @@ module Mutant
|
|
49
43
|
# @param [Object] object
|
50
44
|
#
|
51
45
|
# @return [undefined]
|
52
|
-
#
|
53
|
-
# @api private
|
54
46
|
def visit(printer, object)
|
55
47
|
printer.call(output, object)
|
56
48
|
end
|
@@ -58,8 +50,6 @@ module Mutant
|
|
58
50
|
# Print an info line to output
|
59
51
|
#
|
60
52
|
# @return [undefined]
|
61
|
-
#
|
62
|
-
# @api private
|
63
53
|
def info(string, *arguments)
|
64
54
|
puts(format(string, *arguments))
|
65
55
|
end
|
@@ -67,8 +57,6 @@ module Mutant
|
|
67
57
|
# Print a status line to output
|
68
58
|
#
|
69
59
|
# @return [undefined]
|
70
|
-
#
|
71
|
-
# @api private
|
72
60
|
def status(string, *arguments)
|
73
61
|
puts(colorize(status_color, format(string, *arguments)))
|
74
62
|
end
|
@@ -76,8 +64,6 @@ module Mutant
|
|
76
64
|
# Print a line to output
|
77
65
|
#
|
78
66
|
# @return [undefined]
|
79
|
-
#
|
80
|
-
# @api private
|
81
67
|
def puts(string)
|
82
68
|
output.puts(string)
|
83
69
|
end
|
@@ -90,8 +76,6 @@ module Mutant
|
|
90
76
|
# @return [String]
|
91
77
|
# if color is enabled
|
92
78
|
# unmodified message otherwise
|
93
|
-
#
|
94
|
-
# @api private
|
95
79
|
def colorize(color, message)
|
96
80
|
color = Color::NONE unless tty?
|
97
81
|
color.format(message)
|
@@ -100,8 +84,6 @@ module Mutant
|
|
100
84
|
# Test if output is a tty
|
101
85
|
#
|
102
86
|
# @return [Boolean]
|
103
|
-
#
|
104
|
-
# @api private
|
105
87
|
def tty?
|
106
88
|
output.tty?
|
107
89
|
end
|
@@ -10,8 +10,6 @@ module Mutant
|
|
10
10
|
# Run printer
|
11
11
|
#
|
12
12
|
# @return [undefined]
|
13
|
-
#
|
14
|
-
# @api private
|
15
13
|
def run
|
16
14
|
char(success? ? SUCCESS : FAILURE)
|
17
15
|
end
|
@@ -23,8 +21,6 @@ module Mutant
|
|
23
21
|
# @param [String] char
|
24
22
|
#
|
25
23
|
# @return [undefined]
|
26
|
-
#
|
27
|
-
# @api private
|
28
24
|
def char(char)
|
29
25
|
output.write(colorize(status_color, char))
|
30
26
|
end
|
@@ -49,8 +49,6 @@ module Mutant
|
|
49
49
|
# Run report printer
|
50
50
|
#
|
51
51
|
# @return [undefined]
|
52
|
-
#
|
53
|
-
# @api private
|
54
52
|
def run
|
55
53
|
puts(mutation.identification)
|
56
54
|
print_details
|
@@ -62,8 +60,6 @@ module Mutant
|
|
62
60
|
# Print mutation details
|
63
61
|
#
|
64
62
|
# @return [undefined]
|
65
|
-
#
|
66
|
-
# @api private
|
67
63
|
def print_details
|
68
64
|
__send__(MAP.fetch(mutation.class))
|
69
65
|
end
|
@@ -71,8 +67,6 @@ module Mutant
|
|
71
67
|
# Evil mutation details
|
72
68
|
#
|
73
69
|
# @return [String]
|
74
|
-
#
|
75
|
-
# @api private
|
76
70
|
def evil_details
|
77
71
|
diff = Diff.build(mutation.original_source, mutation.source)
|
78
72
|
diff = color? ? diff.colorized_diff : diff.diff
|
@@ -86,8 +80,6 @@ module Mutant
|
|
86
80
|
# Print no diff message
|
87
81
|
#
|
88
82
|
# @return [undefined]
|
89
|
-
#
|
90
|
-
# @api private
|
91
83
|
def print_no_diff_message
|
92
84
|
info(
|
93
85
|
NO_DIFF_MESSAGE,
|
@@ -101,8 +93,6 @@ module Mutant
|
|
101
93
|
# Noop details
|
102
94
|
#
|
103
95
|
# @return [String]
|
104
|
-
#
|
105
|
-
# @api private
|
106
96
|
def noop_details
|
107
97
|
info(NOOP_MESSAGE)
|
108
98
|
visit_test_result
|
@@ -111,8 +101,6 @@ module Mutant
|
|
111
101
|
# Neutral details
|
112
102
|
#
|
113
103
|
# @return [String]
|
114
|
-
#
|
115
|
-
# @api private
|
116
104
|
def neutral_details
|
117
105
|
info(NEUTRAL_MESSAGE, original_node.inspect, mutation.source)
|
118
106
|
visit_test_result
|
@@ -121,8 +109,6 @@ module Mutant
|
|
121
109
|
# Visit failed test results
|
122
110
|
#
|
123
111
|
# @return [undefined]
|
124
|
-
#
|
125
|
-
# @api private
|
126
112
|
def visit_test_result
|
127
113
|
visit(TestResult, test_result)
|
128
114
|
end
|
@@ -130,8 +116,6 @@ module Mutant
|
|
130
116
|
# Original node
|
131
117
|
#
|
132
118
|
# @return [Parser::AST::Node]
|
133
|
-
#
|
134
|
-
# @api private
|
135
119
|
def original_node
|
136
120
|
mutation.subject.node
|
137
121
|
end
|
@@ -13,8 +13,6 @@ module Mutant
|
|
13
13
|
# Print progress for collector
|
14
14
|
#
|
15
15
|
# @return [undefined]
|
16
|
-
#
|
17
|
-
# @api private
|
18
16
|
def run
|
19
17
|
visit(EnvProgress, payload)
|
20
18
|
job_status
|
@@ -27,8 +25,6 @@ module Mutant
|
|
27
25
|
# Print worker status
|
28
26
|
#
|
29
27
|
# @return [undefined]
|
30
|
-
#
|
31
|
-
# @api private
|
32
28
|
def job_status
|
33
29
|
return if active_jobs.empty?
|
34
30
|
info(ACTIVE_JOB_HEADER)
|
@@ -40,8 +36,6 @@ module Mutant
|
|
40
36
|
# Active subject results
|
41
37
|
#
|
42
38
|
# @return [Array<Result::Subject>]
|
43
|
-
#
|
44
|
-
# @api private
|
45
39
|
def active_subject_results
|
46
40
|
active_subjects = active_jobs.map(&:payload).flat_map(&:subject)
|
47
41
|
|