mutant 0.5.19 → 0.5.20

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.
Files changed (165) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +1 -4
  3. data/Changelog.md +9 -0
  4. data/Gemfile.devtools +15 -11
  5. data/README.md +10 -6
  6. data/config/flay.yml +1 -1
  7. data/config/reek.yml +3 -1
  8. data/lib/mutant.rb +41 -41
  9. data/lib/mutant/cache.rb +0 -2
  10. data/lib/mutant/cli.rb +6 -8
  11. data/lib/mutant/color.rb +0 -2
  12. data/lib/mutant/config.rb +0 -2
  13. data/lib/mutant/context.rb +0 -2
  14. data/lib/mutant/context/scope.rb +0 -2
  15. data/lib/mutant/delegator.rb +2 -0
  16. data/lib/mutant/diff.rb +4 -16
  17. data/lib/mutant/expression.rb +8 -7
  18. data/lib/mutant/expression/method.rb +3 -9
  19. data/lib/mutant/isolation.rb +65 -0
  20. data/lib/mutant/killer.rb +1 -3
  21. data/lib/mutant/loader.rb +0 -2
  22. data/lib/mutant/matcher.rb +0 -2
  23. data/lib/mutant/matcher/chain.rb +0 -2
  24. data/lib/mutant/matcher/filter.rb +0 -2
  25. data/lib/mutant/matcher/method.rb +1 -2
  26. data/lib/mutant/matcher/method/finder.rb +0 -2
  27. data/lib/mutant/matcher/method/instance.rb +1 -3
  28. data/lib/mutant/matcher/method/singleton.rb +0 -2
  29. data/lib/mutant/matcher/methods.rb +0 -2
  30. data/lib/mutant/matcher/namespace.rb +2 -6
  31. data/lib/mutant/matcher/null.rb +0 -2
  32. data/lib/mutant/matcher/scope.rb +0 -2
  33. data/lib/mutant/meta/example.rb +57 -18
  34. data/lib/mutant/meta/example/dsl.rb +10 -13
  35. data/lib/mutant/mutation.rb +0 -2
  36. data/lib/mutant/mutation/evil.rb +0 -2
  37. data/lib/mutant/mutation/neutral.rb +0 -2
  38. data/lib/mutant/mutator.rb +4 -31
  39. data/lib/mutant/mutator/node.rb +19 -18
  40. data/lib/mutant/mutator/node/and_asgn.rb +3 -6
  41. data/lib/mutant/mutator/node/argument.rb +0 -2
  42. data/lib/mutant/mutator/node/arguments.rb +47 -4
  43. data/lib/mutant/mutator/node/begin.rb +3 -10
  44. data/lib/mutant/mutator/node/binary.rb +0 -2
  45. data/lib/mutant/mutator/node/block.rb +0 -2
  46. data/lib/mutant/mutator/node/blockarg.rb +0 -2
  47. data/lib/mutant/mutator/node/break.rb +0 -2
  48. data/lib/mutant/mutator/node/case.rb +3 -6
  49. data/lib/mutant/mutator/node/conditional_loop.rb +0 -2
  50. data/lib/mutant/mutator/node/const.rb +1 -3
  51. data/lib/mutant/mutator/node/define.rb +0 -2
  52. data/lib/mutant/mutator/node/defined.rb +1 -3
  53. data/lib/mutant/mutator/node/dstr.rb +0 -2
  54. data/lib/mutant/mutator/node/dsym.rb +0 -2
  55. data/lib/mutant/mutator/node/generic.rb +0 -2
  56. data/lib/mutant/mutator/node/if.rb +8 -12
  57. data/lib/mutant/mutator/node/kwbegin.rb +0 -2
  58. data/lib/mutant/mutator/node/literal.rb +0 -2
  59. data/lib/mutant/mutator/node/literal/array.rb +2 -5
  60. data/lib/mutant/mutator/node/literal/boolean.rb +0 -2
  61. data/lib/mutant/mutator/node/literal/fixnum.rb +0 -2
  62. data/lib/mutant/mutator/node/literal/float.rb +0 -2
  63. data/lib/mutant/mutator/node/literal/hash.rb +0 -2
  64. data/lib/mutant/mutator/node/literal/nil.rb +0 -2
  65. data/lib/mutant/mutator/node/literal/range.rb +0 -2
  66. data/lib/mutant/mutator/node/literal/regex.rb +2 -4
  67. data/lib/mutant/mutator/node/literal/string.rb +0 -2
  68. data/lib/mutant/mutator/node/literal/symbol.rb +0 -2
  69. data/lib/mutant/mutator/node/masgn.rb +0 -2
  70. data/lib/mutant/mutator/node/mlhs.rb +0 -2
  71. data/lib/mutant/mutator/node/named_value/access.rb +0 -2
  72. data/lib/mutant/mutator/node/named_value/constant_assignment.rb +0 -2
  73. data/lib/mutant/mutator/node/named_value/variable_assignment.rb +0 -2
  74. data/lib/mutant/mutator/node/next.rb +0 -3
  75. data/lib/mutant/mutator/node/noop.rb +0 -2
  76. data/lib/mutant/mutator/node/nthref.rb +0 -2
  77. data/lib/mutant/mutator/node/op_asgn.rb +2 -4
  78. data/lib/mutant/mutator/node/or_asgn.rb +4 -7
  79. data/lib/mutant/mutator/node/resbody.rb +1 -1
  80. data/lib/mutant/mutator/node/rescue.rb +0 -2
  81. data/lib/mutant/mutator/node/restarg.rb +0 -2
  82. data/lib/mutant/mutator/node/return.rb +3 -6
  83. data/lib/mutant/mutator/node/send.rb +14 -8
  84. data/lib/mutant/mutator/node/send/attribute_assignment.rb +0 -2
  85. data/lib/mutant/mutator/node/send/binary.rb +1 -3
  86. data/lib/mutant/mutator/node/splat.rb +0 -2
  87. data/lib/mutant/mutator/node/super.rb +0 -2
  88. data/lib/mutant/mutator/node/when.rb +0 -2
  89. data/lib/mutant/mutator/node/yield.rb +0 -2
  90. data/lib/mutant/mutator/node/zsuper.rb +0 -2
  91. data/lib/mutant/mutator/registry.rb +0 -2
  92. data/lib/mutant/mutator/util.rb +0 -2
  93. data/lib/mutant/mutator/util/array.rb +0 -2
  94. data/lib/mutant/mutator/util/symbol.rb +0 -2
  95. data/lib/mutant/node_helpers.rb +11 -2
  96. data/lib/mutant/reporter.rb +0 -2
  97. data/lib/mutant/reporter/cli.rb +0 -2
  98. data/lib/mutant/reporter/cli/printer.rb +0 -2
  99. data/lib/mutant/reporter/cli/progress.rb +0 -2
  100. data/lib/mutant/reporter/cli/report.rb +0 -2
  101. data/lib/mutant/reporter/cli/report/config.rb +0 -2
  102. data/lib/mutant/reporter/cli/report/mutation.rb +5 -5
  103. data/lib/mutant/reporter/cli/report/subject.rb +0 -2
  104. data/lib/mutant/reporter/null.rb +0 -2
  105. data/lib/mutant/runner.rb +0 -2
  106. data/lib/mutant/runner/config.rb +0 -2
  107. data/lib/mutant/runner/mutation.rb +0 -2
  108. data/lib/mutant/runner/subject.rb +0 -2
  109. data/lib/mutant/strategy.rb +0 -2
  110. data/lib/mutant/subject.rb +0 -2
  111. data/lib/mutant/subject/method.rb +0 -2
  112. data/lib/mutant/subject/method/instance.rb +1 -3
  113. data/lib/mutant/subject/method/singleton.rb +0 -2
  114. data/lib/mutant/version.rb +1 -3
  115. data/lib/mutant/zombifier.rb +0 -2
  116. data/meta/begin.rb +10 -0
  117. data/meta/case.rb +0 -2
  118. data/meta/def.rb +19 -0
  119. data/mutant-rspec.gemspec +1 -1
  120. data/mutant.gemspec +1 -1
  121. data/spec/integration/mutant/corpus_spec.rb +81 -22
  122. data/spec/integration/mutant/null_spec.rb +1 -3
  123. data/spec/integration/mutant/rspec_spec.rb +6 -8
  124. data/spec/integration/mutant/test_mutator_handles_types_spec.rb +0 -2
  125. data/spec/integration/mutant/zombie_spec.rb +0 -2
  126. data/spec/integrations.yml +12 -1
  127. data/spec/shared/method_matcher_behavior.rb +0 -2
  128. data/spec/spec_helper.rb +0 -2
  129. data/spec/support/compress_helper.rb +0 -2
  130. data/spec/support/ice_nine_config.rb +0 -2
  131. data/spec/support/rspec.rb +0 -2
  132. data/spec/support/test_app.rb +0 -2
  133. data/spec/unit/mutant/cli_new_spec.rb +0 -2
  134. data/spec/unit/mutant/cli_run_spec.rb +0 -2
  135. data/spec/unit/mutant/context/root_spec.rb +0 -2
  136. data/spec/unit/mutant/context/scope/root_spec.rb +0 -2
  137. data/spec/unit/mutant/context/scope/unqualified_name_spec.rb +0 -2
  138. data/spec/unit/mutant/diff_spec.rb +0 -2
  139. data/spec/unit/mutant/expression/method_spec.rb +2 -4
  140. data/spec/unit/mutant/expression/namespace/flat_spec.rb +1 -3
  141. data/spec/unit/mutant/expression/namespace/recursive_spec.rb +10 -6
  142. data/spec/unit/mutant/isolation_spec.rb +61 -0
  143. data/spec/unit/mutant/loader/eval_spec.rb +0 -2
  144. data/spec/unit/mutant/matcher/chain_spec.rb +4 -15
  145. data/spec/unit/mutant/matcher/method/instance_spec.rb +0 -2
  146. data/spec/unit/mutant/matcher/method/singleton_spec.rb +0 -2
  147. data/spec/unit/mutant/matcher/methods/instance_spec.rb +0 -2
  148. data/spec/unit/mutant/matcher/methods/singleton_spec.rb +0 -2
  149. data/spec/unit/mutant/matcher/namespace_spec.rb +33 -31
  150. data/spec/unit/mutant/mutation_spec.rb +0 -2
  151. data/spec/unit/mutant/runner/config_spec.rb +0 -2
  152. data/spec/unit/mutant/runner/mutation_spec.rb +0 -2
  153. data/spec/unit/mutant/runner/subject_spec.rb +0 -2
  154. data/spec/unit/mutant/strategy_spec.rb +0 -2
  155. data/spec/unit/mutant/subject/context_spec.rb +0 -2
  156. data/spec/unit/mutant/subject/mutations_spec.rb +0 -2
  157. data/spec/unit/mutant/subject/node_spec.rb +0 -2
  158. data/spec/unit/mutant/subject_spec.rb +0 -2
  159. data/spec/unit/mutant/warning_filter_spec.rb +6 -0
  160. data/spec/unit/mutant_spec.rb +0 -55
  161. data/test_app/Gemfile.devtools +15 -11
  162. data/test_app/Gemfile.rspec3 +2 -2
  163. metadata +7 -7
  164. data/lib/mutant/constants.rb +0 -45
  165. data/spec/unit/mutant/mutator_spec.rb +0 -29
@@ -1,12 +1,10 @@
1
- # encoding: utf-8
2
-
3
1
  require 'spec_helper'
4
2
 
5
3
  describe Mutant::Expression::Namespace::Exact do
6
4
 
7
5
  let(:object) { described_class.parse(input) }
8
6
  let(:cache) { Mutant::Cache.new }
9
- let(:input) { '::TestApp::Literal' }
7
+ let(:input) { 'TestApp::Literal' }
10
8
 
11
9
  describe '#matcher' do
12
10
  subject { object.matcher(cache) }
@@ -1,16 +1,14 @@
1
- # encoding: utf-8
2
-
3
1
  require 'spec_helper'
4
2
 
5
3
  describe Mutant::Expression::Namespace::Recursive do
6
4
 
7
5
  let(:object) { described_class.parse(input) }
8
6
  let(:cache) { Mutant::Cache.new }
9
- let(:input) { '::TestApp::Literal*' }
7
+ let(:input) { 'TestApp::Literal*' }
10
8
 
11
9
  describe '#matcher' do
12
10
  subject { object.matcher(cache) }
13
- it { should eql(Mutant::Matcher::Namespace.new(cache, '::TestApp::Literal')) }
11
+ it { should eql(Mutant::Matcher::Namespace.new(cache, 'TestApp::Literal')) }
14
12
  end
15
13
 
16
14
  describe '#match_length' do
@@ -23,13 +21,19 @@ describe Mutant::Expression::Namespace::Recursive do
23
21
  end
24
22
 
25
23
  context 'when other expression describes a shorter prefix' do
26
- let(:other) { described_class.parse('::TestApp') }
24
+ let(:other) { described_class.parse('TestApp') }
25
+
26
+ it { should be(0) }
27
+ end
28
+
29
+ context 'when other expression describes adjacent namespace' do
30
+ let(:other) { described_class.parse('TestApp::LiteralFoo') }
27
31
 
28
32
  it { should be(0) }
29
33
  end
30
34
 
31
35
  context 'when other expression describes a longer prefix' do
32
- let(:other) { described_class.parse('::TestApp::Literal::Deep') }
36
+ let(:other) { described_class.parse('TestApp::Literal::Deep') }
33
37
 
34
38
  it { should be(input[0..-2].length) }
35
39
  end
@@ -0,0 +1,61 @@
1
+ require 'spec_helper'
2
+
3
+ describe Mutant::Isolation do
4
+ describe '.isolate' do
5
+ let(:object) { described_class }
6
+
7
+ before do
8
+ unless RUBY_VERSION.eql?('2.1.2')
9
+ skip 'Series of events is indeterministic cross ruby implementations. Skipping this test under non 2.1.2'
10
+ end
11
+ end
12
+
13
+ let(:expected_return) { :foo }
14
+
15
+ subject { object.call(&block) }
16
+
17
+ def redirect_stderr
18
+ $stderr = File.open('/dev/null')
19
+ end
20
+
21
+ unless ENV['COVERAGE']
22
+ context 'when block returns mashallable data, and process exists zero' do
23
+ let(:block) do
24
+ lambda do
25
+ :data_from_child_process
26
+ end
27
+ end
28
+
29
+ it { should eql(:data_from_child_process) }
30
+ end
31
+ end
32
+
33
+ context 'when block does return marshallable data' do
34
+ let(:block) do
35
+ lambda do
36
+ redirect_stderr
37
+ $stderr # not mashallable, nothing written to pipe and raises exception in child
38
+ end
39
+ end
40
+
41
+ it 'raises an exception' do
42
+ expect { subject }.to raise_error(described_class::Error, 'Childprocess wrote un-unmarshallable data')
43
+ end
44
+ end
45
+
46
+ context 'when block causes the child to exit nonzero' do
47
+ let(:block) do
48
+ lambda do
49
+ method = Kernel.method(:exit!)
50
+ Kernel.define_singleton_method(:exit!) do |_status|
51
+ method.call(1)
52
+ end
53
+ end
54
+ end
55
+
56
+ it 'raises an exception' do
57
+ expect { subject }.to raise_error(described_class::Error, 'Childprocess exited with nonzero exit status: 1')
58
+ end
59
+ end
60
+ end
61
+ end
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  require 'spec_helper'
4
2
 
5
3
  describe Mutant::Loader::Eval, '.call' do
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  require 'spec_helper'
4
2
 
5
3
  describe Mutant::Matcher::Chain do
@@ -11,29 +9,20 @@ describe Mutant::Matcher::Chain do
11
9
 
12
10
  let(:matchers) { [matcher_a, matcher_b] }
13
11
 
14
- let(:matcher_a) { double('Matcher A') }
15
- let(:matcher_b) { double('Matcher B') }
12
+ let(:matcher_a) { [subject_a] }
13
+ let(:matcher_b) { [subject_b] }
16
14
 
17
15
  let(:subject_a) { double('Subject A') }
18
16
  let(:subject_b) { double('Subject B') }
19
17
 
20
- before do
21
- matcher_a.stub(:each).and_yield(subject_a).and_return(matcher_a)
22
- matcher_b.stub(:each).and_yield(subject_b).and_return(matcher_b)
23
- end
24
-
25
18
  # it_should_behave_like 'an #each method'
26
19
  context 'with no block' do
27
20
  subject { object.each }
28
21
 
29
22
  it { should be_instance_of(to_enum.class) }
30
23
 
31
- if defined?(RUBY_ENGINE) && RUBY_ENGINE == 'rbx'
32
- pending 'FIX RBX rspec? BUG HERE'
33
- else
34
- it 'yields the expected values' do
35
- expect(subject.to_a).to eql(object.to_a)
36
- end
24
+ it 'yields the expected values' do
25
+ expect(subject.to_a).to eql(object.to_a)
37
26
  end
38
27
  end
39
28
 
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  require 'spec_helper'
4
2
 
5
3
  # rubocop:disable ClassAndModuleChildren
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  require 'spec_helper'
4
2
 
5
3
  # rubocop:disable ClassAndModuleChildren
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  require 'spec_helper'
4
2
 
5
3
  describe Mutant::Matcher::Methods::Instance, '#each' do
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  require 'spec_helper'
4
2
 
5
3
  describe Mutant::Matcher::Methods::Singleton, '#each' do
@@ -1,45 +1,47 @@
1
- # encoding: utf-8
2
-
3
1
  require 'spec_helper'
4
2
 
5
- describe Mutant::Matcher::Namespace, '#each' do
6
- subject { object.each { |item| yields << item } }
7
-
8
- let(:yields) { [] }
3
+ describe Mutant::Matcher::Namespace do
9
4
  let(:object) { described_class.new(cache, 'TestApp::Literal') }
5
+ let(:yields) { [] }
10
6
 
11
7
  let(:cache) { Mutant::Cache.new }
12
8
 
13
- let(:singleton_a) { double('SingletonA', name: 'TestApp::Literal') }
14
- let(:singleton_b) { double('SingletonB', name: 'TestApp::Foo') }
15
- let(:subject_a) { double('SubjectA') }
16
- let(:subject_b) { double('SubjectB') }
17
-
18
- before do
19
- Mutant::Matcher::Methods::Singleton.stub(:each)
20
- .with(cache, singleton_a)
21
- .and_yield(subject_a)
22
- Mutant::Matcher::Methods::Instance.stub(:each)
23
- .with(cache, singleton_a)
24
- .and_yield(subject_b)
25
- ObjectSpace.stub(each_object: [singleton_a, singleton_b])
26
- end
9
+ subject { object.each { |item| yields << item } }
10
+
11
+ describe '#each' do
12
+
13
+ let(:singleton_a) { double('SingletonA', name: 'TestApp::Literal') }
14
+ let(:singleton_b) { double('SingletonB', name: 'TestApp::Foo') }
15
+ let(:singleton_c) { double('SingletonC', name: 'TestApp::LiteralOther') }
16
+ let(:subject_a) { double('SubjectA') }
17
+ let(:subject_b) { double('SubjectB') }
18
+
19
+ before do
20
+ Mutant::Matcher::Methods::Singleton.stub(:each)
21
+ .with(cache, singleton_a)
22
+ .and_yield(subject_a)
23
+ Mutant::Matcher::Methods::Instance.stub(:each)
24
+ .with(cache, singleton_a)
25
+ .and_yield(subject_b)
26
+ ObjectSpace.stub(each_object: [singleton_a, singleton_b, singleton_c])
27
+ end
27
28
 
28
- context 'with no block' do
29
- subject { object.each }
29
+ context 'with no block' do
30
+ subject { object.each }
30
31
 
31
- it { should be_instance_of(to_enum.class) }
32
+ it { should be_instance_of(to_enum.class) }
32
33
 
33
- if defined?(RUBY_ENGINE) && RUBY_ENGINE == 'rbx'
34
- pending 'FIX RBX rspec? BUG HERE'
35
- else
36
- it 'yields the expected values' do
37
- expect(subject.to_a).to eql(object.to_a)
34
+ if defined?(RUBY_ENGINE) && RUBY_ENGINE == 'rbx'
35
+ skip 'FIX RBX rspec? BUG HERE'
36
+ else
37
+ it 'yields the expected values' do
38
+ expect(subject.to_a).to eql(object.to_a)
39
+ end
38
40
  end
39
41
  end
40
- end
41
42
 
42
- it 'should yield subjects' do
43
- expect { subject }.to change { yields }.from([]).to([subject_a, subject_b])
43
+ it 'should yield subjects' do
44
+ expect { subject }.to change { yields }.from([]).to([subject_a, subject_b])
45
+ end
44
46
  end
45
47
  end
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  require 'spec_helper'
4
2
 
5
3
  describe Mutant::Mutation do
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  require 'spec_helper'
4
2
 
5
3
  describe Mutant::Runner::Config do
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  require 'spec_helper'
4
2
 
5
3
  describe Mutant::Runner::Mutation do
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  require 'spec_helper'
4
2
 
5
3
  describe Mutant::Runner::Subject, '#success?' do
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  require 'spec_helper'
4
2
 
5
3
  describe Mutant::Strategy do
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  require 'spec_helper'
4
2
 
5
3
  describe Mutant::Subject, '#context' do
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  require 'spec_helper'
4
2
 
5
3
  describe Mutant::Subject, '#mutations' do
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  require 'spec_helper'
4
2
 
5
3
  describe Mutant::Subject, '#node' do
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  require 'spec_helper'
4
2
 
5
3
  describe Mutant::Subject do
@@ -1,6 +1,12 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Mutant::WarningFilter do
4
+ before do
5
+ if RUBY_ENGINE.eql?('rbx')
6
+ skip 'Disabled because expected warnings are from MRI'
7
+ end
8
+ end
9
+
4
10
  let(:object) { described_class.new(target) }
5
11
 
6
12
  let(:target) do
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  require 'spec_helper'
4
2
 
5
3
  describe Mutant do
@@ -38,57 +36,4 @@ describe Mutant do
38
36
  expect(inspect).to be_frozen
39
37
  end
40
38
  end
41
-
42
- describe '.isolate' do
43
- let(:object) { described_class }
44
-
45
- let(:expected_return) { :foo }
46
-
47
- subject { object.isolate(&block) }
48
-
49
- def redirect_stderr
50
- $stderr = File.open('/dev/null')
51
- end
52
-
53
- unless ENV['COVERAGE']
54
- context 'when block returns mashallable data, and process exists zero' do
55
- let(:block) do
56
- lambda do
57
- :data_from_child_process
58
- end
59
- end
60
-
61
- it { should eql(:data_from_child_process) }
62
- end
63
- end
64
-
65
- context 'when block does return marshallable data' do
66
- let(:block) do
67
- lambda do
68
- redirect_stderr
69
- $stderr # not mashallable, nothing written to pipe and raised exceptions in child
70
- end
71
- end
72
-
73
- it 'raises an exception' do
74
- expect { subject }.to raise_error(Mutant::IsolationError, 'Childprocess wrote un-unmarshallable data')
75
- end
76
- end
77
-
78
- context 'when block does return marshallable data, but process exits with nonzero exitstatus' do
79
- let(:block) do
80
- lambda do
81
- redirect_stderr
82
- at_exit do
83
- raise
84
- end
85
- :foo
86
- end
87
- end
88
-
89
- it 'raises an exception' do
90
- expect { subject }.to raise_error(Mutant::IsolationError, 'Childprocess exited with nonzero exit status: 1')
91
- end
92
- end
93
- end
94
39
  end
@@ -1,9 +1,9 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  group :development do
4
- gem 'rake', '~> 10.3.1'
5
- gem 'rspec', '~> 2.99.0.beta2'
6
- gem 'rspec-core', '~> 2.99.0.beta2'
4
+ gem 'rake', '~> 10.3.2'
5
+ gem 'rspec', '~> 2.99.0'
6
+ gem 'rspec-core', '~> 2.99.0'
7
7
  gem 'yard', '~> 0.8.7.4'
8
8
 
9
9
  platform :rbx do
@@ -11,30 +11,34 @@ group :development do
11
11
  end
12
12
  end
13
13
 
14
+ group :yard do
15
+ gem 'kramdown', '~> 1.3.3'
16
+ end
17
+
14
18
  group :guard do
15
- gem 'guard', '~> 2.6.0'
19
+ gem 'guard', '~> 2.6.1'
16
20
  gem 'guard-bundler', '~> 2.0.0'
17
- gem 'guard-rspec', '~> 4.2.8'
21
+ gem 'guard-rspec', '~> 4.2.9'
18
22
  gem 'guard-rubocop', '~> 1.1.0'
19
23
 
20
24
  # file system change event handling
21
- gem 'listen', '~> 2.7.3'
25
+ gem 'listen', '~> 2.7.7'
22
26
  gem 'rb-fchange', '~> 0.0.6', require: false
23
27
  gem 'rb-fsevent', '~> 0.9.4', require: false
24
- gem 'rb-inotify', '~> 0.9.4', require: false
28
+ gem 'rb-inotify', '~> 0.9.5', require: false
25
29
 
26
30
  # notification handling
27
- gem 'libnotify', '~> 0.8.2', require: false
31
+ gem 'libnotify', '~> 0.8.3', require: false
28
32
  gem 'rb-notifu', '~> 0.0.4', require: false
29
33
  gem 'terminal-notifier-guard', '~> 1.5.3', require: false
30
34
  end
31
35
 
32
36
  group :metrics do
33
37
  gem 'coveralls', '~> 0.7.0'
34
- gem 'flay', '~> 2.4.0'
35
- gem 'flog', '~> 4.2.0'
38
+ gem 'flay', '~> 2.5.0'
39
+ gem 'flog', '~> 4.2.1'
36
40
  gem 'reek', '~> 1.3.7'
37
- gem 'rubocop', '~> 0.21.0'
41
+ gem 'rubocop', '~> 0.23.0'
38
42
  gem 'simplecov', '~> 0.7.1'
39
43
  gem 'yardstick', '~> 0.9.9'
40
44