forked from mirror/redis
Add test for read timeout option (#877)
Add test for ReadTimeout option
This commit is contained in:
parent
ae8fdc56f3
commit
b834145dc7
|
@ -48,7 +48,7 @@ type Options struct {
|
|||
// Default is 5 seconds.
|
||||
DialTimeout time.Duration
|
||||
// Timeout for socket reads. If reached, commands will fail
|
||||
// with a timeout instead of blocking.
|
||||
// with a timeout instead of blocking. Use value -1 for no timeout and 0 for default.
|
||||
// Default is 3 seconds.
|
||||
ReadTimeout time.Duration
|
||||
// Timeout for socket writes. If reached, commands will fail
|
||||
|
|
|
@ -5,6 +5,7 @@ package redis
|
|||
import (
|
||||
"errors"
|
||||
"testing"
|
||||
"time"
|
||||
)
|
||||
|
||||
func TestParseURL(t *testing.T) {
|
||||
|
@ -92,3 +93,27 @@ func TestParseURL(t *testing.T) {
|
|||
})
|
||||
}
|
||||
}
|
||||
|
||||
// Test ReadTimeout option initialization, including special values -1 and 0.
|
||||
// And also test behaviour of WriteTimeout option, when it is not explicitly set and use
|
||||
// ReadTimeout value.
|
||||
func TestReadTimeoutOptions(t *testing.T) {
|
||||
testDataInputOutputMap := map[time.Duration]time.Duration{
|
||||
-1: 0 * time.Second,
|
||||
0: 3 * time.Second,
|
||||
1: 1 * time.Nanosecond,
|
||||
3: 3 * time.Nanosecond,
|
||||
}
|
||||
|
||||
for in, out := range testDataInputOutputMap {
|
||||
o := &Options{ReadTimeout: in}
|
||||
o.init()
|
||||
if o.ReadTimeout != out {
|
||||
t.Errorf("got %d instead of %d as ReadTimeout option", o.ReadTimeout, out)
|
||||
}
|
||||
|
||||
if o.WriteTimeout != o.ReadTimeout {
|
||||
t.Errorf("got %d instead of %d as WriteTimeout option", o.WriteTimeout, o.ReadTimeout)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue