adjust test sleep timing to avoid spurious failure
- refactor ConsumeWithSpeed - documentation Signed-off-by: Morgan Bauer <mbauer@us.ibm.com>
This commit is contained in:
parent
f576cf770a
commit
995814da2d
2 changed files with 15 additions and 15 deletions
|
@ -272,25 +272,25 @@ func RandomTmpDirPath(s string, platform string) string {
|
||||||
return filepath.ToSlash(path) // Using /
|
return filepath.ToSlash(path) // Using /
|
||||||
}
|
}
|
||||||
|
|
||||||
// ConsumeWithSpeed reads chunkSize bytes from reader after every interval.
|
// ConsumeWithSpeed reads chunkSize bytes from reader before sleeping
|
||||||
// Returns total read bytes.
|
// for interval duration. Returns total read bytes. Send true to the
|
||||||
|
// stop channel to return before reading to EOF on the reader.
|
||||||
func ConsumeWithSpeed(reader io.Reader, chunkSize int, interval time.Duration, stop chan bool) (n int, err error) {
|
func ConsumeWithSpeed(reader io.Reader, chunkSize int, interval time.Duration, stop chan bool) (n int, err error) {
|
||||||
buffer := make([]byte, chunkSize)
|
buffer := make([]byte, chunkSize)
|
||||||
for {
|
for {
|
||||||
|
var readBytes int
|
||||||
|
readBytes, err = reader.Read(buffer)
|
||||||
|
n += readBytes
|
||||||
|
if err != nil {
|
||||||
|
if err == io.EOF {
|
||||||
|
err = nil
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
select {
|
select {
|
||||||
case <-stop:
|
case <-stop:
|
||||||
return
|
return
|
||||||
default:
|
case <-time.After(interval):
|
||||||
var readBytes int
|
|
||||||
readBytes, err = reader.Read(buffer)
|
|
||||||
n += readBytes
|
|
||||||
if err != nil {
|
|
||||||
if err == io.EOF {
|
|
||||||
err = nil
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
time.Sleep(interval)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -363,7 +363,7 @@ func TestConsumeWithSpeed(t *testing.T) {
|
||||||
reader := strings.NewReader("1234567890")
|
reader := strings.NewReader("1234567890")
|
||||||
chunksize := 2
|
chunksize := 2
|
||||||
|
|
||||||
bytes1, err := ConsumeWithSpeed(reader, chunksize, 1*time.Millisecond, nil)
|
bytes1, err := ConsumeWithSpeed(reader, chunksize, 1*time.Second, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
@ -385,7 +385,7 @@ func TestConsumeWithSpeedWithStop(t *testing.T) {
|
||||||
stopIt <- true
|
stopIt <- true
|
||||||
}()
|
}()
|
||||||
|
|
||||||
bytes1, err := ConsumeWithSpeed(reader, chunksize, 2*time.Millisecond, stopIt)
|
bytes1, err := ConsumeWithSpeed(reader, chunksize, 20*time.Millisecond, stopIt)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue