mutant 0.8.8 → 0.8.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (211) hide show
  1. checksums.yaml +4 -4
  2. data/Changelog.md +9 -0
  3. data/README.md +1 -1
  4. data/Rakefile +12 -8
  5. data/bin/mutant +5 -1
  6. data/config/flay.yml +1 -1
  7. data/lib/mutant.rb +18 -17
  8. data/lib/mutant/actor.rb +1 -7
  9. data/lib/mutant/actor/env.rb +0 -4
  10. data/lib/mutant/actor/mailbox.rb +0 -4
  11. data/lib/mutant/actor/receiver.rb +0 -4
  12. data/lib/mutant/actor/sender.rb +0 -2
  13. data/lib/mutant/ast.rb +1 -5
  14. data/lib/mutant/ast/meta/const.rb +0 -2
  15. data/lib/mutant/ast/meta/optarg.rb +0 -2
  16. data/lib/mutant/ast/meta/send.rb +0 -12
  17. data/lib/mutant/ast/named_children.rb +0 -10
  18. data/lib/mutant/ast/sexp.rb +1 -5
  19. data/lib/mutant/cli.rb +19 -38
  20. data/lib/mutant/color.rb +1 -7
  21. data/lib/mutant/config.rb +11 -7
  22. data/lib/mutant/context.rb +0 -4
  23. data/lib/mutant/context/scope.rb +0 -18
  24. data/lib/mutant/delegator.rb +0 -6
  25. data/lib/mutant/diff.rb +0 -18
  26. data/lib/mutant/env.rb +8 -24
  27. data/lib/mutant/env/bootstrap.rb +18 -41
  28. data/lib/mutant/expression.rb +0 -8
  29. data/lib/mutant/expression/method.rb +6 -7
  30. data/lib/mutant/expression/methods.rb +5 -9
  31. data/lib/mutant/expression/namespace.rb +0 -13
  32. data/lib/mutant/expression/parser.rb +0 -6
  33. data/lib/mutant/integration.rb +2 -20
  34. data/lib/mutant/isolation.rb +0 -4
  35. data/lib/mutant/loader.rb +20 -35
  36. data/lib/mutant/matcher.rb +1 -1
  37. data/lib/mutant/matcher/chain.rb +1 -3
  38. data/lib/mutant/matcher/compiler.rb +0 -8
  39. data/lib/mutant/matcher/config.rb +2 -10
  40. data/lib/mutant/matcher/filter.rb +1 -3
  41. data/lib/mutant/matcher/method.rb +4 -26
  42. data/lib/mutant/matcher/method/instance.rb +1 -7
  43. data/lib/mutant/matcher/method/singleton.rb +0 -12
  44. data/lib/mutant/matcher/methods.rb +1 -19
  45. data/lib/mutant/matcher/namespace.rb +1 -7
  46. data/lib/mutant/matcher/null.rb +1 -3
  47. data/lib/mutant/matcher/scope.rb +1 -5
  48. data/lib/mutant/matcher/static.rb +0 -2
  49. data/lib/mutant/meta.rb +0 -2
  50. data/lib/mutant/meta/example.rb +0 -28
  51. data/lib/mutant/meta/example/dsl.rb +2 -16
  52. data/lib/mutant/mutation.rb +9 -18
  53. data/lib/mutant/mutator.rb +0 -24
  54. data/lib/mutant/mutator/node.rb +1 -33
  55. data/lib/mutant/mutator/node/and_asgn.rb +0 -2
  56. data/lib/mutant/mutator/node/argument.rb +0 -10
  57. data/lib/mutant/mutator/node/arguments.rb +0 -12
  58. data/lib/mutant/mutator/node/begin.rb +0 -4
  59. data/lib/mutant/mutator/node/binary.rb +2 -11
  60. data/lib/mutant/mutator/node/block.rb +0 -6
  61. data/lib/mutant/mutator/node/break.rb +0 -2
  62. data/lib/mutant/mutator/node/case.rb +0 -6
  63. data/lib/mutant/mutator/node/conditional_loop.rb +0 -2
  64. data/lib/mutant/mutator/node/const.rb +1 -3
  65. data/lib/mutant/mutator/node/define.rb +4 -11
  66. data/lib/mutant/mutator/node/defined.rb +0 -2
  67. data/lib/mutant/mutator/node/dstr.rb +0 -2
  68. data/lib/mutant/mutator/node/dsym.rb +0 -2
  69. data/lib/mutant/mutator/node/generic.rb +1 -3
  70. data/lib/mutant/mutator/node/if.rb +0 -8
  71. data/lib/mutant/mutator/node/kwbegin.rb +0 -2
  72. data/lib/mutant/mutator/node/literal/array.rb +0 -4
  73. data/lib/mutant/mutator/node/literal/boolean.rb +0 -2
  74. data/lib/mutant/mutator/node/literal/fixnum.rb +0 -6
  75. data/lib/mutant/mutator/node/literal/float.rb +0 -6
  76. data/lib/mutant/mutator/node/literal/hash.rb +0 -6
  77. data/lib/mutant/mutator/node/literal/nil.rb +0 -2
  78. data/lib/mutant/mutator/node/literal/range.rb +0 -8
  79. data/lib/mutant/mutator/node/literal/regex.rb +0 -4
  80. data/lib/mutant/mutator/node/literal/string.rb +0 -2
  81. data/lib/mutant/mutator/node/literal/symbol.rb +0 -2
  82. data/lib/mutant/mutator/node/masgn.rb +0 -2
  83. data/lib/mutant/mutator/node/match_current_line.rb +0 -2
  84. data/lib/mutant/mutator/node/mlhs.rb +0 -2
  85. data/lib/mutant/mutator/node/named_value/access.rb +0 -8
  86. data/lib/mutant/mutator/node/named_value/constant_assignment.rb +1 -7
  87. data/lib/mutant/mutator/node/named_value/variable_assignment.rb +0 -4
  88. data/lib/mutant/mutator/node/next.rb +0 -2
  89. data/lib/mutant/mutator/node/noop.rb +0 -2
  90. data/lib/mutant/mutator/node/nthref.rb +0 -2
  91. data/lib/mutant/mutator/node/op_asgn.rb +0 -2
  92. data/lib/mutant/mutator/node/or_asgn.rb +0 -2
  93. data/lib/mutant/mutator/node/resbody.rb +0 -4
  94. data/lib/mutant/mutator/node/rescue.rb +0 -10
  95. data/lib/mutant/mutator/node/return.rb +0 -2
  96. data/lib/mutant/mutator/node/send.rb +4 -32
  97. data/lib/mutant/mutator/node/send/attribute_assignment.rb +0 -6
  98. data/lib/mutant/mutator/node/send/binary.rb +0 -6
  99. data/lib/mutant/mutator/node/send/index.rb +0 -6
  100. data/lib/mutant/mutator/node/splat.rb +0 -2
  101. data/lib/mutant/mutator/node/super.rb +0 -2
  102. data/lib/mutant/mutator/node/when.rb +0 -10
  103. data/lib/mutant/mutator/node/yield.rb +0 -2
  104. data/lib/mutant/mutator/node/zsuper.rb +0 -2
  105. data/lib/mutant/mutator/registry.rb +0 -6
  106. data/lib/mutant/mutator/util.rb +0 -4
  107. data/lib/mutant/mutator/util/array.rb +0 -6
  108. data/lib/mutant/mutator/util/symbol.rb +0 -2
  109. data/lib/mutant/parallel.rb +21 -17
  110. data/lib/mutant/parallel/master.rb +0 -28
  111. data/lib/mutant/parallel/source.rb +0 -10
  112. data/lib/mutant/parallel/worker.rb +15 -10
  113. data/lib/mutant/parser.rb +23 -0
  114. data/lib/mutant/reporter.rb +5 -8
  115. data/lib/mutant/reporter/cli.rb +1 -15
  116. data/lib/mutant/reporter/cli/format.rb +3 -25
  117. data/lib/mutant/reporter/cli/printer.rb +0 -18
  118. data/lib/mutant/reporter/cli/printer/config.rb +0 -2
  119. data/lib/mutant/reporter/cli/printer/env_progress.rb +0 -2
  120. data/lib/mutant/reporter/cli/printer/env_result.rb +0 -2
  121. data/lib/mutant/reporter/cli/printer/mutation_progress_result.rb +0 -4
  122. data/lib/mutant/reporter/cli/printer/mutation_result.rb +0 -16
  123. data/lib/mutant/reporter/cli/printer/status.rb +0 -6
  124. data/lib/mutant/reporter/cli/printer/status_progressive.rb +0 -4
  125. data/lib/mutant/reporter/cli/printer/subject_progress.rb +0 -8
  126. data/lib/mutant/reporter/cli/printer/subject_result.rb +0 -2
  127. data/lib/mutant/reporter/cli/printer/test_result.rb +0 -2
  128. data/lib/mutant/reporter/cli/tput.rb +0 -4
  129. data/lib/mutant/repository.rb +4 -22
  130. data/lib/mutant/require_highjack.rb +0 -2
  131. data/lib/mutant/result.rb +23 -43
  132. data/lib/mutant/runner.rb +7 -20
  133. data/lib/mutant/runner/sink.rb +43 -86
  134. data/lib/mutant/selector.rb +0 -2
  135. data/lib/mutant/selector/expression.rb +0 -2
  136. data/lib/mutant/subject.rb +0 -22
  137. data/lib/mutant/subject/method.rb +2 -10
  138. data/lib/mutant/subject/method/instance.rb +0 -6
  139. data/lib/mutant/subject/method/singleton.rb +0 -2
  140. data/lib/mutant/test.rb +4 -3
  141. data/lib/mutant/version.rb +1 -1
  142. data/lib/mutant/warning_filter.rb +0 -10
  143. data/lib/mutant/zombifier.rb +5 -20
  144. data/meta/or_asgn.rb +6 -0
  145. data/meta/send.rb +29 -0
  146. data/mutant-rspec.gemspec +1 -1
  147. data/spec/integration/mutant/rspec_spec.rb +1 -1
  148. data/spec/integrations.yml +2 -3
  149. data/spec/shared/method_matcher_behavior.rb +7 -7
  150. data/spec/spec_helper.rb +2 -9
  151. data/spec/support/corpus.rb +37 -30
  152. data/spec/support/rb_bug.rb +1 -2
  153. data/spec/support/ruby_vm.rb +6 -3
  154. data/spec/support/shared_context.rb +19 -20
  155. data/spec/unit/mutant/actor/binding_spec.rb +6 -6
  156. data/spec/unit/mutant/actor/env_spec.rb +2 -2
  157. data/spec/unit/mutant/actor/mailbox_spec.rb +6 -6
  158. data/spec/unit/mutant/actor/message_spec.rb +2 -2
  159. data/spec/unit/mutant/actor/receiver_spec.rb +4 -4
  160. data/spec/unit/mutant/actor/sender_spec.rb +6 -6
  161. data/spec/unit/mutant/ast_spec.rb +9 -0
  162. data/spec/unit/mutant/cli_spec.rb +16 -10
  163. data/spec/unit/mutant/context/scope/root_spec.rb +1 -1
  164. data/spec/unit/mutant/context/scope/unqualified_name_spec.rb +1 -1
  165. data/spec/unit/mutant/context/scope_spec.rb +3 -3
  166. data/spec/unit/mutant/context_spec.rb +0 -22
  167. data/spec/unit/mutant/env/boostrap_spec.rb +34 -41
  168. data/spec/unit/mutant/env_spec.rb +74 -32
  169. data/spec/unit/mutant/integration/rspec_spec.rb +23 -17
  170. data/spec/unit/mutant/integration_spec.rb +4 -4
  171. data/spec/unit/mutant/isolation_spec.rb +4 -4
  172. data/spec/unit/mutant/loader_spec.rb +42 -0
  173. data/spec/unit/mutant/matcher/compiler_spec.rb +3 -3
  174. data/spec/unit/mutant/matcher/config_spec.rb +1 -1
  175. data/spec/unit/mutant/matcher/method/instance_spec.rb +8 -1
  176. data/spec/unit/mutant/matcher/method/singleton_spec.rb +8 -1
  177. data/spec/unit/mutant/matcher/namespace_spec.rb +7 -8
  178. data/spec/unit/mutant/matcher/null_spec.rb +3 -2
  179. data/spec/unit/mutant/mutation_spec.rb +11 -5
  180. data/spec/unit/mutant/mutator/registry_spec.rb +1 -1
  181. data/spec/unit/mutant/parallel/master_spec.rb +9 -9
  182. data/spec/unit/mutant/parallel/source/array_spec.rb +3 -3
  183. data/spec/unit/mutant/parallel/worker_spec.rb +5 -5
  184. data/spec/unit/mutant/parallel_spec.rb +4 -4
  185. data/spec/unit/mutant/parser_spec.rb +24 -0
  186. data/spec/unit/mutant/reporter/cli/printer_spec.rb +3 -3
  187. data/spec/unit/mutant/reporter/cli/tput_spec.rb +2 -2
  188. data/spec/unit/mutant/reporter/cli_spec.rb +7 -7
  189. data/spec/unit/mutant/reporter/null_spec.rb +5 -4
  190. data/spec/unit/mutant/repository/diff_spec.rb +30 -18
  191. data/spec/unit/mutant/repository/subject_filter_spec.rb +5 -5
  192. data/spec/unit/mutant/require_highjack_spec.rb +1 -1
  193. data/spec/unit/mutant/result/env_spec.rb +9 -9
  194. data/spec/unit/mutant/result/subject_spec.rb +5 -5
  195. data/spec/unit/mutant/runner/driver_spec.rb +4 -4
  196. data/spec/unit/mutant/runner/{sink/mutation_spec.rb → sink_spec.rb} +16 -4
  197. data/spec/unit/mutant/runner_spec.rb +31 -31
  198. data/spec/unit/mutant/selector/expression_spec.rb +8 -8
  199. data/spec/unit/mutant/subject/method/instance_spec.rb +9 -3
  200. data/spec/unit/mutant/subject/method/singleton_spec.rb +1 -1
  201. data/spec/unit/mutant/subject_spec.rb +1 -5
  202. data/spec/unit/mutant_spec.rb +3 -3
  203. metadata +9 -15
  204. data/config/mutant.yml +0 -14
  205. data/lib/mutant/cache.rb +0 -29
  206. data/lib/mutant/reporter/trace.rb +0 -36
  207. data/spec/support/rspec.rb +0 -21
  208. data/spec/unit/mutant/cache_spec.rb +0 -22
  209. data/spec/unit/mutant/loader/eval_spec.rb +0 -44
  210. data/spec/unit/mutant/reporter/trace_spec.rb +0 -21
  211. data/test_app/Gemfile.rspec3.2 +0 -7
@@ -1,6 +1,12 @@
1
1
  RSpec.describe Mutant::Subject::Method::Instance do
2
- let(:object) { described_class.new(context, node) }
3
- let(:context) { Mutant::Context::Scope.new(scope, double('Source Path')) }
2
+ let(:object) { described_class.new(context, node) }
3
+
4
+ let(:context) do
5
+ Mutant::Context::Scope.new(
6
+ scope,
7
+ instance_double(Pathname)
8
+ )
9
+ end
4
10
 
5
11
  let(:node) do
6
12
  s(:def, :foo, s(:args))
@@ -42,7 +48,7 @@ RSpec.describe Mutant::Subject::Method::Instance do
42
48
  describe '#prepare' do
43
49
 
44
50
  let(:context) do
45
- Mutant::Context::Scope.new(scope, double('Source Path'))
51
+ Mutant::Context::Scope.new(scope, instance_double(Pathname))
46
52
  end
47
53
 
48
54
  subject { object.prepare }
@@ -4,7 +4,7 @@ RSpec.describe Mutant::Subject::Method::Singleton do
4
4
  let(:node) { s(:defs, s(:self), :foo, s(:args)) }
5
5
 
6
6
  let(:context) do
7
- Mutant::Context::Scope.new(scope, double('Source Path'))
7
+ Mutant::Context::Scope.new(scope, instance_double(Pathname))
8
8
  end
9
9
 
10
10
  let(:scope) do
@@ -23,12 +23,8 @@ RSpec.describe Mutant::Subject do
23
23
  RUBY
24
24
  end
25
25
 
26
- let(:location) do
27
- double('Location', expression: expression)
28
- end
29
-
30
26
  let(:expression) do
31
- double('Expression', line: 'source_line')
27
+ instance_double(Mutant::Expression, line: 'source_line')
32
28
  end
33
29
 
34
30
  let(:context) do
@@ -4,12 +4,12 @@ RSpec.describe Mutant do
4
4
  describe '.ci?' do
5
5
  subject { object.ci? }
6
6
 
7
- let(:result) { double('Result') }
7
+ let(:value) { instance_double(Object, 'value') }
8
8
 
9
9
  before do
10
- expect(ENV).to receive(:key?).with('CI').and_return(result)
10
+ expect(ENV).to receive(:key?).with('CI').and_return(value)
11
11
  end
12
12
 
13
- it { should be(result) }
13
+ it { should be(value) }
14
14
  end
15
15
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mutant
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.8
4
+ version: 0.8.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Markus Schirp
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-11-15 00:00:00.000000000 Z
11
+ date: 2016-01-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: parser
@@ -274,7 +274,6 @@ files:
274
274
  - config/devtools.yml
275
275
  - config/flay.yml
276
276
  - config/flog.yml
277
- - config/mutant.yml
278
277
  - config/reek.yml
279
278
  - config/rubocop.yml
280
279
  - config/triage.yml
@@ -298,7 +297,6 @@ files:
298
297
  - lib/mutant/ast/nodes.rb
299
298
  - lib/mutant/ast/sexp.rb
300
299
  - lib/mutant/ast/types.rb
301
- - lib/mutant/cache.rb
302
300
  - lib/mutant/cli.rb
303
301
  - lib/mutant/color.rb
304
302
  - lib/mutant/config.rb
@@ -396,6 +394,7 @@ files:
396
394
  - lib/mutant/parallel/master.rb
397
395
  - lib/mutant/parallel/source.rb
398
396
  - lib/mutant/parallel/worker.rb
397
+ - lib/mutant/parser.rb
399
398
  - lib/mutant/reporter.rb
400
399
  - lib/mutant/reporter/cli.rb
401
400
  - lib/mutant/reporter/cli/format.rb
@@ -412,7 +411,6 @@ files:
412
411
  - lib/mutant/reporter/cli/printer/test_result.rb
413
412
  - lib/mutant/reporter/cli/tput.rb
414
413
  - lib/mutant/reporter/null.rb
415
- - lib/mutant/reporter/trace.rb
416
414
  - lib/mutant/repository.rb
417
415
  - lib/mutant/require_highjack.rb
418
416
  - lib/mutant/result.rb
@@ -502,7 +500,6 @@ files:
502
500
  - spec/support/file_system.rb
503
501
  - spec/support/ice_nine_config.rb
504
502
  - spec/support/rb_bug.rb
505
- - spec/support/rspec.rb
506
503
  - spec/support/ruby_vm.rb
507
504
  - spec/support/shared_context.rb
508
505
  - spec/support/test_app.rb
@@ -518,7 +515,6 @@ files:
518
515
  - spec/unit/mutant/ast/named_children_spec.rb
519
516
  - spec/unit/mutant/ast/sexp_spec.rb
520
517
  - spec/unit/mutant/ast_spec.rb
521
- - spec/unit/mutant/cache_spec.rb
522
518
  - spec/unit/mutant/cli_spec.rb
523
519
  - spec/unit/mutant/context/root_spec.rb
524
520
  - spec/unit/mutant/context/scope/root_spec.rb
@@ -537,7 +533,7 @@ files:
537
533
  - spec/unit/mutant/integration/rspec_spec.rb
538
534
  - spec/unit/mutant/integration_spec.rb
539
535
  - spec/unit/mutant/isolation_spec.rb
540
- - spec/unit/mutant/loader/eval_spec.rb
536
+ - spec/unit/mutant/loader_spec.rb
541
537
  - spec/unit/mutant/matcher/chain_spec.rb
542
538
  - spec/unit/mutant/matcher/compiler/subject_prefix_spec.rb
543
539
  - spec/unit/mutant/matcher/compiler_spec.rb
@@ -558,6 +554,7 @@ files:
558
554
  - spec/unit/mutant/parallel/source/array_spec.rb
559
555
  - spec/unit/mutant/parallel/worker_spec.rb
560
556
  - spec/unit/mutant/parallel_spec.rb
557
+ - spec/unit/mutant/parser_spec.rb
561
558
  - spec/unit/mutant/reporter/cli/printer/config_spec.rb
562
559
  - spec/unit/mutant/reporter/cli/printer/env_progress_spec.rb
563
560
  - spec/unit/mutant/reporter/cli/printer/env_result_spec.rb
@@ -572,7 +569,6 @@ files:
572
569
  - spec/unit/mutant/reporter/cli/tput_spec.rb
573
570
  - spec/unit/mutant/reporter/cli_spec.rb
574
571
  - spec/unit/mutant/reporter/null_spec.rb
575
- - spec/unit/mutant/reporter/trace_spec.rb
576
572
  - spec/unit/mutant/repository/diff_spec.rb
577
573
  - spec/unit/mutant/repository/subject_filter_spec.rb
578
574
  - spec/unit/mutant/require_highjack_spec.rb
@@ -580,7 +576,7 @@ files:
580
576
  - spec/unit/mutant/result/subject_spec.rb
581
577
  - spec/unit/mutant/result_spec.rb
582
578
  - spec/unit/mutant/runner/driver_spec.rb
583
- - spec/unit/mutant/runner/sink/mutation_spec.rb
579
+ - spec/unit/mutant/runner/sink_spec.rb
584
580
  - spec/unit/mutant/runner_spec.rb
585
581
  - spec/unit/mutant/selector/expression_spec.rb
586
582
  - spec/unit/mutant/subject/method/instance_spec.rb
@@ -590,7 +586,6 @@ files:
590
586
  - spec/unit/mutant/zombifier_spec.rb
591
587
  - spec/unit/mutant_spec.rb
592
588
  - test_app/.rspec
593
- - test_app/Gemfile.rspec3.2
594
589
  - test_app/Gemfile.rspec3.3
595
590
  - test_app/Gemfile.rspec3.4
596
591
  - test_app/lib/test_app.rb
@@ -638,7 +633,6 @@ test_files:
638
633
  - spec/unit/mutant/ast/named_children_spec.rb
639
634
  - spec/unit/mutant/ast/sexp_spec.rb
640
635
  - spec/unit/mutant/ast_spec.rb
641
- - spec/unit/mutant/cache_spec.rb
642
636
  - spec/unit/mutant/cli_spec.rb
643
637
  - spec/unit/mutant/context/root_spec.rb
644
638
  - spec/unit/mutant/context/scope/root_spec.rb
@@ -657,7 +651,7 @@ test_files:
657
651
  - spec/unit/mutant/integration/rspec_spec.rb
658
652
  - spec/unit/mutant/integration_spec.rb
659
653
  - spec/unit/mutant/isolation_spec.rb
660
- - spec/unit/mutant/loader/eval_spec.rb
654
+ - spec/unit/mutant/loader_spec.rb
661
655
  - spec/unit/mutant/matcher/chain_spec.rb
662
656
  - spec/unit/mutant/matcher/compiler/subject_prefix_spec.rb
663
657
  - spec/unit/mutant/matcher/compiler_spec.rb
@@ -678,6 +672,7 @@ test_files:
678
672
  - spec/unit/mutant/parallel/source/array_spec.rb
679
673
  - spec/unit/mutant/parallel/worker_spec.rb
680
674
  - spec/unit/mutant/parallel_spec.rb
675
+ - spec/unit/mutant/parser_spec.rb
681
676
  - spec/unit/mutant/reporter/cli/printer/config_spec.rb
682
677
  - spec/unit/mutant/reporter/cli/printer/env_progress_spec.rb
683
678
  - spec/unit/mutant/reporter/cli/printer/env_result_spec.rb
@@ -692,7 +687,6 @@ test_files:
692
687
  - spec/unit/mutant/reporter/cli/tput_spec.rb
693
688
  - spec/unit/mutant/reporter/cli_spec.rb
694
689
  - spec/unit/mutant/reporter/null_spec.rb
695
- - spec/unit/mutant/reporter/trace_spec.rb
696
690
  - spec/unit/mutant/repository/diff_spec.rb
697
691
  - spec/unit/mutant/repository/subject_filter_spec.rb
698
692
  - spec/unit/mutant/require_highjack_spec.rb
@@ -700,7 +694,7 @@ test_files:
700
694
  - spec/unit/mutant/result/subject_spec.rb
701
695
  - spec/unit/mutant/result_spec.rb
702
696
  - spec/unit/mutant/runner/driver_spec.rb
703
- - spec/unit/mutant/runner/sink/mutation_spec.rb
697
+ - spec/unit/mutant/runner/sink_spec.rb
704
698
  - spec/unit/mutant/runner_spec.rb
705
699
  - spec/unit/mutant/selector/expression_spec.rb
706
700
  - spec/unit/mutant/subject/method/instance_spec.rb
@@ -1,14 +0,0 @@
1
- name: mutant
2
- namespace: Mutant
3
- zombify: true
4
- expect_coverage: 62.08
5
- ignore_subjects:
6
- # Mutation causes infinite runtime
7
- - Mutant::Runner.lookup
8
- # Suboptimal test selection strategy (will be fixed soon) causes timeouts on CI
9
- - Mutant::Zombifier*
10
- - Mutant::Reporter*
11
- - Mutant::CLI*
12
- - Mutant.singleton_subclass_instance
13
- # Executing this has undefined behavior with the zombifier
14
- - Mutant.zombify
@@ -1,29 +0,0 @@
1
- module Mutant
2
- # An AST cache
3
- class Cache
4
- include Equalizer.new, Adamantium::Mutable
5
-
6
- # Initialize object
7
- #
8
- # @return [undefined]
9
- #
10
- # @api private
11
- def initialize
12
- @cache = {}
13
- end
14
-
15
- # Root node parsed from file
16
- #
17
- # @param [#to_s] path
18
- #
19
- # @return [AST::Node]
20
- #
21
- # @api private
22
- def parse(path)
23
- @cache.fetch(path) do
24
- @cache[path] = Parser::CurrentRuby.parse(File.read(path))
25
- end
26
- end
27
-
28
- end # Cache
29
- end # Mutant
@@ -1,36 +0,0 @@
1
- module Mutant
2
- class Reporter
3
- # Reporter to trace report calls, used as a spec adapter
4
- class Trace
5
- include Adamantium::Mutable, Anima.new(:start_calls, :progress_calls, :report_calls, :warn_calls)
6
-
7
- # New trace reporter
8
- #
9
- # @return [Trace]
10
- #
11
- # @api private
12
- def self.new
13
- super(Hash[anima.attribute_names.map { |name| [name, []] }])
14
- end
15
-
16
- %w[start progress report warn].each do |name|
17
- define_method(name) do |object|
18
- public_send(:"#{name}_calls") << object
19
- self
20
- end
21
- end
22
-
23
- REPORT_DELAY = 0.0
24
-
25
- # Report delay
26
- #
27
- # @return [Float]
28
- #
29
- # @api private
30
- def delay
31
- REPORT_DELAY
32
- end
33
-
34
- end # Tracker
35
- end # reporter
36
- end # Mutant
@@ -1,21 +0,0 @@
1
- # Patch rspec to allow nested execution
2
- module Rspec
3
- # Run block in clean rspec environment
4
- #
5
- # @return [Object]
6
- # returns the value of block
7
- #
8
- # @api private
9
- def self.nest
10
- original_world, original_configuration =
11
- ::RSpec.instance_variable_get(:@world),
12
- ::RSpec.instance_variable_get(:@configuration)
13
-
14
- ::RSpec.reset
15
-
16
- yield
17
- ensure
18
- ::RSpec.instance_variable_set(:@world, original_world)
19
- ::RSpec.instance_variable_set(:@configuration, original_configuration)
20
- end
21
- end
@@ -1,22 +0,0 @@
1
- RSpec.describe Mutant::Cache do
2
- let(:object) { described_class.new }
3
-
4
- describe '#parse' do
5
- let(:path) { double('Path') }
6
-
7
- subject { object.parse(path) }
8
-
9
- before do
10
- allow(File).to receive(:read).with(path).and_return(':source')
11
- end
12
-
13
- it 'returns parsed source' do
14
- expect(subject).to eql(s(:sym, :source))
15
- end
16
-
17
- it 'returns cached parsed source' do
18
- source = object.parse(path)
19
- expect(subject).to be(source)
20
- end
21
- end
22
- end
@@ -1,44 +0,0 @@
1
- RSpec.describe Mutant::Loader::Eval, '.call' do
2
-
3
- subject { object.call(node, mutation_subject) }
4
-
5
- let(:object) { Class.new(described_class) }
6
- let(:path) { __FILE__ }
7
- let(:line) { 1 }
8
-
9
- let(:mutation_subject) do
10
- double('Subject', source_path: path, source_line: line)
11
- end
12
-
13
- let(:source) do
14
- <<-RUBY
15
- class SomeNamespace
16
- class Bar
17
- def some_method
18
- end
19
- end
20
-
21
- class SomeOther
22
- class Foo < Bar
23
- end
24
- end
25
- end
26
- RUBY
27
- end
28
-
29
- let(:node) do
30
- parse(source)
31
- end
32
-
33
- it 'should load nodes into vm' do
34
- subject
35
- ::SomeNamespace::SomeOther::Foo
36
- end
37
-
38
- it 'should set file and line correctly' do
39
- subject
40
- expect(::SomeNamespace::Bar
41
- .instance_method(:some_method)
42
- .source_location).to eql([__FILE__, 3])
43
- end
44
- end
@@ -1,21 +0,0 @@
1
- RSpec.describe Mutant::Reporter::Trace do
2
- let(:object) { described_class.new }
3
-
4
- describe '#delay' do
5
- subject { object.delay }
6
-
7
- it { should eql(0.0) }
8
- end
9
-
10
- let(:reportable) { double('Reportable') }
11
-
12
- %i[report start progress].each do |name|
13
- describe "##{name}" do
14
- subject { object.public_send(name, reportable) }
15
-
16
- it 'logs the reportable' do
17
- expect { subject }.to change { object.public_send("#{name}_calls") }.from([]).to([reportable])
18
- end
19
- end
20
- end
21
- end
@@ -1,7 +0,0 @@
1
- source 'https://rubygems.org'
2
- gem 'rspec', '~> 3.2.0'
3
- gem 'rspec-core', '~> 3.2.0'
4
- gem 'mutant', path: '../'
5
- gem 'mutant-rspec', path: '../'
6
- gem 'adamantium'
7
- eval_gemfile File.expand_path('../../Gemfile.shared', __FILE__)