Skip to content

Commit 622699a

Browse files
committed
Have our mock Redis recover from client errors, just like Redis.
This allows us to test behaviors for when clients suddenly disconnect.
1 parent 548fce7 commit 622699a

File tree

1 file changed

+15
-12
lines changed

1 file changed

+15
-12
lines changed

test/support/redis_mock.rb

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -24,20 +24,23 @@ def shutdown
2424
end
2525

2626
def run
27-
loop do
28-
session = @server.accept
29-
30-
begin
31-
return if yield(session) == :exit
32-
ensure
33-
session.close
27+
begin
28+
loop do
29+
session = @server.accept
30+
31+
begin
32+
return if yield(session) == :exit
33+
ensure
34+
session.close
35+
end
3436
end
37+
rescue => ex
38+
$stderr.puts "Error running mock server: #{ex.message}" if VERBOSE
39+
$stderr.puts ex.backtrace if VERBOSE
40+
retry
41+
ensure
42+
@server.close
3543
end
36-
rescue => ex
37-
$stderr.puts "Error running mock server: #{ex.message}" if VERBOSE
38-
$stderr.puts ex.backtrace if VERBOSE
39-
ensure
40-
@server.close
4144
end
4245
end
4346

0 commit comments

Comments
 (0)