Skip to content

Commit d5146a8

Browse files
committed
Add test Helper::Skipable for skip support in 1.8.x
1 parent ed86574 commit d5146a8

File tree

2 files changed

+16
-2
lines changed

2 files changed

+16
-2
lines changed

test/fork_safety_test.rb

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
class TestForkSafety < Test::Unit::TestCase
66

77
include Helper::Client
8+
include Helper::Skipable
89

910
driver(:ruby, :hiredis) do
1011
def test_fork_safety
@@ -31,7 +32,7 @@ def test_fork_safety
3132

3233
rescue NotImplementedError => error
3334
raise unless error.message =~ /fork is not available/
34-
skip(error.message)
35+
return skip(error.message)
3536
end
3637

3738
def test_fork_safety_with_enabled_inherited_socket
@@ -58,7 +59,7 @@ def test_fork_safety_with_enabled_inherited_socket
5859

5960
rescue NotImplementedError => error
6061
raise unless error.message =~ /fork is not available/
61-
skip(error.message)
62+
return skip(error.message)
6263
end
6364
end
6465
end

test/helper.rb

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,4 +215,17 @@ def _new_client(options = {})
215215
Redis::Distributed.new(NODES, _format_options(options).merge(:driver => ENV["conn"]))
216216
end
217217
end
218+
219+
# Basic support for `skip` in 1.8.x
220+
# Note: YOU MUST use `return skip(message)` in order to appropriately bail
221+
# from a running test.
222+
module Skipable
223+
Skipped = Class.new(RuntimeError)
224+
225+
def skip(message = nil, bt = caller)
226+
return super if defined?(super)
227+
228+
$stderr.puts("SKIPPED: #{self} #{message || 'no reason given'}")
229+
end
230+
end
218231
end

0 commit comments

Comments
 (0)