mirror of
https://github.com/tailscale/tailscale.git
synced 2025-01-08 09:07:44 +00:00
net/nettest: deflake TestPipeTimeout
The block-write and block-read tests are both flaky, because each assumes it can get a normal read/write completed within 10ms. This isn’t always true. We can’t increase the timeouts, because that slows down the test. However, we don’t need to issue a regular read/write for this test. The immediately preceding tests already test this code, using a far more generous timeout. Remove the extraneous read/write. This drops the failure rate from 1 per 20,000 to undetectable on my machine. While we’re here, fix a typo in a debug print statement. Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com>
This commit is contained in:
parent
a8cc519c70
commit
e16cb523aa
@ -76,7 +76,7 @@ func (p *Pipe) Read(b []byte) (n int, err error) {
|
|||||||
if debugPipe {
|
if debugPipe {
|
||||||
orig := b
|
orig := b
|
||||||
defer func() {
|
defer func() {
|
||||||
log.Printf("Pipe(%q).Read( %q) n=%d, err=%v", p.name, string(orig[:n]), n, err)
|
log.Printf("Pipe(%q).Read(%q) n=%d, err=%v", p.name, string(orig[:n]), n, err)
|
||||||
}()
|
}()
|
||||||
}
|
}
|
||||||
for n == 0 {
|
for n == 0 {
|
||||||
|
@ -60,9 +60,6 @@ func TestPipeTimeout(t *testing.T) {
|
|||||||
t.Run("block-write", func(t *testing.T) {
|
t.Run("block-write", func(t *testing.T) {
|
||||||
p := NewPipe("p1", 1<<16)
|
p := NewPipe("p1", 1<<16)
|
||||||
p.SetWriteDeadline(time.Now().Add(10 * time.Millisecond))
|
p.SetWriteDeadline(time.Now().Add(10 * time.Millisecond))
|
||||||
if _, err := p.Write([]byte{'h'}); err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
if err := p.Block(); err != nil {
|
if err := p.Block(); err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
@ -75,9 +72,6 @@ func TestPipeTimeout(t *testing.T) {
|
|||||||
p.Write([]byte{'h', 'i'})
|
p.Write([]byte{'h', 'i'})
|
||||||
p.SetReadDeadline(time.Now().Add(10 * time.Millisecond))
|
p.SetReadDeadline(time.Now().Add(10 * time.Millisecond))
|
||||||
b := make([]byte, 1)
|
b := make([]byte, 1)
|
||||||
if _, err := p.Read(b); err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
if err := p.Block(); err != nil {
|
if err := p.Block(); err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user