mutant 0.7.9 → 0.8.0
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 +11 -1
- data/README.md +5 -12
- data/bin/mutant +17 -1
- data/config/flay.yml +1 -1
- data/config/flog.yml +1 -1
- data/config/reek.yml +4 -4
- data/config/rubocop.yml +21 -3
- data/lib/mutant.rb +15 -61
- data/lib/mutant/cli.rb +1 -7
- data/lib/mutant/color.rb +2 -2
- data/lib/mutant/config.rb +1 -1
- data/lib/mutant/expression/method.rb +1 -1
- data/lib/mutant/expression/methods.rb +1 -1
- data/lib/mutant/expression/namespace.rb +1 -1
- data/lib/mutant/mutator/node/send.rb +18 -18
- data/lib/mutant/reporter/cli.rb +1 -6
- data/lib/mutant/reporter/cli/format.rb +2 -2
- data/lib/mutant/reporter/cli/printer.rb +5 -500
- data/lib/mutant/reporter/cli/printer/config.rb +32 -0
- data/lib/mutant/reporter/cli/printer/env_progress.rb +66 -0
- data/lib/mutant/reporter/cli/printer/env_result.rb +23 -0
- data/lib/mutant/reporter/cli/printer/mutation_progress_result.rb +37 -0
- data/lib/mutant/reporter/cli/printer/mutation_result.rb +151 -0
- data/lib/mutant/reporter/cli/printer/status.rb +60 -0
- data/lib/mutant/reporter/cli/printer/status_progressive.rb +52 -0
- data/lib/mutant/reporter/cli/printer/subject_progress.rb +90 -0
- data/lib/mutant/reporter/cli/printer/subject_result.rb +28 -0
- data/lib/mutant/reporter/cli/printer/test_result.rb +33 -0
- data/lib/mutant/require_highjack.rb +11 -50
- data/lib/mutant/version.rb +1 -1
- data/lib/mutant/zombifier.rb +79 -37
- data/meta/send.rb +1 -1
- data/mutant-rspec.gemspec +1 -1
- data/mutant.gemspec +3 -3
- data/spec/integration/mutant/corpus_spec.rb +2 -2
- data/spec/integration/mutant/rspec_spec.rb +5 -15
- data/spec/integrations.yml +3 -3
- data/spec/spec_helper.rb +1 -0
- data/spec/support/corpus.rb +233 -220
- data/spec/support/file_system.rb +60 -0
- data/spec/support/rb_bug.rb +1 -1
- data/spec/support/ruby_vm.rb +82 -0
- data/spec/support/shared_context.rb +19 -10
- data/spec/unit/mutant/ast_spec.rb +2 -2
- data/spec/unit/mutant/cache_spec.rb +22 -0
- data/spec/unit/mutant/cli_spec.rb +1 -30
- data/spec/unit/mutant/context_spec.rb +1 -0
- data/spec/unit/mutant/expression/method_spec.rb +6 -4
- data/spec/unit/mutant/parallel/master_spec.rb +1 -1
- data/spec/unit/mutant/reporter/cli/printer/config_spec.rb +33 -0
- data/spec/unit/mutant/reporter/cli/printer/env_progress_spec.rb +76 -0
- data/spec/unit/mutant/reporter/cli/printer/env_result_spec.rb +35 -0
- data/spec/unit/mutant/reporter/cli/printer/mutation_progress_result_spec.rb +23 -0
- data/spec/unit/mutant/reporter/cli/printer/mutation_result_spec.rb +110 -0
- data/spec/unit/mutant/reporter/cli/printer/status_progressive_spec.rb +51 -0
- data/spec/unit/mutant/reporter/cli/printer/status_spec.rb +145 -0
- data/spec/unit/mutant/reporter/cli/printer/subject_progress_spec.rb +37 -0
- data/spec/unit/mutant/reporter/cli/printer/subject_result_spec.rb +37 -0
- data/spec/unit/mutant/reporter/cli/printer/test_result_spec.rb +14 -0
- data/spec/unit/mutant/reporter/cli/printer_spec.rb +140 -0
- data/spec/unit/mutant/reporter/cli_spec.rb +69 -313
- data/spec/unit/mutant/reporter/trace_spec.rb +12 -0
- data/spec/unit/mutant/require_highjack_spec.rb +25 -28
- data/spec/unit/mutant/warning_filter_spec.rb +7 -0
- data/spec/unit/mutant/zombifier_spec.rb +120 -0
- data/spec/unit/mutant_spec.rb +0 -43
- data/test_app/Gemfile.rspec3.3 +6 -0
- metadata +46 -17
- data/.travis.yml +0 -20
- data/lib/mutant/zombifier/file.rb +0 -100
- data/spec/integration/mutant/zombie_spec.rb +0 -6
data/.travis.yml
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
sudo: false
|
2
|
-
language: ruby
|
3
|
-
script: "bundle exec rake ci"
|
4
|
-
env:
|
5
|
-
- TRAVIS=true
|
6
|
-
rvm:
|
7
|
-
- '2.0'
|
8
|
-
- '2.1'
|
9
|
-
- '2.2'
|
10
|
-
- rbx
|
11
|
-
matrix:
|
12
|
-
allow_failures:
|
13
|
-
- rvm: rbx
|
14
|
-
- rvm: '2.0'
|
15
|
-
notifications:
|
16
|
-
irc:
|
17
|
-
channels:
|
18
|
-
- irc.freenode.org#mutant
|
19
|
-
on_success: never
|
20
|
-
on_failure: change
|
@@ -1,100 +0,0 @@
|
|
1
|
-
module Mutant
|
2
|
-
class Zombifier
|
3
|
-
# File containing source being zombified
|
4
|
-
class File
|
5
|
-
include Adamantium::Flat, Concord::Public.new(:path), AST::Sexp
|
6
|
-
|
7
|
-
# Zombify contents of file
|
8
|
-
#
|
9
|
-
# @return [self]
|
10
|
-
#
|
11
|
-
# @api private
|
12
|
-
#
|
13
|
-
# Probably one of the only valid uses of eval.
|
14
|
-
#
|
15
|
-
# rubocop:disable Lint/Eval
|
16
|
-
#
|
17
|
-
def zombify(namespace)
|
18
|
-
$stderr.puts("Zombifying #{path}")
|
19
|
-
eval(
|
20
|
-
Unparser.unparse(namespaced_node(namespace)),
|
21
|
-
TOPLEVEL_BINDING,
|
22
|
-
path.to_s
|
23
|
-
)
|
24
|
-
self
|
25
|
-
end
|
26
|
-
|
27
|
-
# Find file by logical path
|
28
|
-
#
|
29
|
-
# @param [String] logical_name
|
30
|
-
#
|
31
|
-
# @return [File]
|
32
|
-
# if found
|
33
|
-
#
|
34
|
-
# @return [nil]
|
35
|
-
# otherwise
|
36
|
-
#
|
37
|
-
# @api private
|
38
|
-
#
|
39
|
-
def self.find(logical_name)
|
40
|
-
file_name = expand_file_name(logical_name)
|
41
|
-
|
42
|
-
$LOAD_PATH.each do |path|
|
43
|
-
path = Pathname.new(path).join(file_name)
|
44
|
-
return new(path) if path.file?
|
45
|
-
end
|
46
|
-
|
47
|
-
$stderr.puts "Cannot find file #{file_name} in $LOAD_PATH"
|
48
|
-
nil
|
49
|
-
end
|
50
|
-
|
51
|
-
# Return expanded file name
|
52
|
-
#
|
53
|
-
# @param [String] logical_name
|
54
|
-
#
|
55
|
-
# @return [nil]
|
56
|
-
# if no expansion is possible
|
57
|
-
#
|
58
|
-
# @return [String]
|
59
|
-
#
|
60
|
-
# @api private
|
61
|
-
#
|
62
|
-
def self.expand_file_name(logical_name)
|
63
|
-
case ::File.extname(logical_name)
|
64
|
-
when '.so'
|
65
|
-
return
|
66
|
-
when '.rb'
|
67
|
-
logical_name
|
68
|
-
else
|
69
|
-
"#{logical_name}.rb"
|
70
|
-
end
|
71
|
-
end
|
72
|
-
private_class_method :expand_file_name
|
73
|
-
|
74
|
-
private
|
75
|
-
|
76
|
-
# Return node
|
77
|
-
#
|
78
|
-
# @return [Parser::AST::Node]
|
79
|
-
#
|
80
|
-
# @api private
|
81
|
-
#
|
82
|
-
def node
|
83
|
-
Parser::CurrentRuby.parse(path.read, path.to_s)
|
84
|
-
end
|
85
|
-
|
86
|
-
# Return namespaced root
|
87
|
-
#
|
88
|
-
# @param [Symbol] namespace
|
89
|
-
#
|
90
|
-
# @return [Parser::AST::Node]
|
91
|
-
#
|
92
|
-
# @api private
|
93
|
-
#
|
94
|
-
def namespaced_node(namespace)
|
95
|
-
s(:module, s(:const, nil, namespace), node)
|
96
|
-
end
|
97
|
-
|
98
|
-
end # File
|
99
|
-
end # Zombifier
|
100
|
-
end # Mutant
|