diff --git a/tests/support/redis.tcl b/tests/support/redis.tcl index 847f68e63..26b4510ac 100644 --- a/tests/support/redis.tcl +++ b/tests/support/redis.tcl @@ -109,6 +109,7 @@ proc ::redis::__dispatch__raw__ {id method argv} { } ::redis::redis_write $fd $cmd if {[catch {flush $fd}]} { + catch {close $fd} set ::redis::fd($id) {} return -code error "I/O error reading reply" } @@ -251,6 +252,7 @@ proc ::redis::redis_read_reply {id fd} { % {redis_read_map $id $fd} default { if {$type eq {}} { + catch {close $fd} set ::redis::fd($id) {} return -code error "I/O error reading reply" } diff --git a/tests/test_helper.tcl b/tests/test_helper.tcl index a1fae8d75..29ebdd7bb 100644 --- a/tests/test_helper.tcl +++ b/tests/test_helper.tcl @@ -180,6 +180,10 @@ proc reconnect {args} { set port [dict get $srv "port"] set config [dict get $srv "config"] set client [redis $host $port 0 $::tls] + if {[dict exists $srv "client"]} { + set old [dict get $srv "client"] + $old close + } dict set srv "client" $client # select the right db when we don't have to authenticate @@ -257,7 +261,7 @@ proc test_server_main {} { set tclsh [info nameofexecutable] # Open a listening socket, trying different ports in order to find a # non busy one. - set clientport [find_available_port 11111 32] + set clientport [find_available_port [expr {$::baseport - 32}] 32] if {!$::quiet} { puts "Starting test server at port $clientport" }