mutant 0.8.8 → 0.8.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
|