tstest/integration/vms: attempt to send more UDP packets (#2433)

Apparently this test was flaking because I critically misunderstood how
the kernel buffers UDP packets for senders. I'm trying to send more UDP
packets and will see if that helps.

Signed-off-by: Christine Dodrill <xe@tailscale.com>
This commit is contained in:
Christine Dodrill 2021-07-15 11:21:19 -04:00 committed by GitHub
parent 09e81b8ba1
commit 3ebe16558c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -602,25 +602,40 @@ func (h Harness) testDistro(t *testing.T, d Distro, ipm ipMapping) {
} }
defer ln.Close() defer ln.Close()
sess, err := cli.NewSession() ctx, cancel := context.WithCancel(context.Background())
if err != nil { t.Cleanup(cancel)
t.Fatalf("can't open session: %v", err)
}
defer sess.Close()
sess.Stdin = strings.NewReader("hi") go func() {
sess.Stdout = logger.FuncWriter(t.Logf) for {
sess.Stderr = logger.FuncWriter(t.Logf) select {
case <-ctx.Done():
return
default:
}
_, port, _ := net.SplitHostPort(ln.LocalAddr().String()) sess, err := cli.NewSession()
if err != nil {
t.Errorf("can't open session: %v", err)
return
}
defer sess.Close()
cmd := fmt.Sprintf("/udp_tester -client %s\n", net.JoinHostPort("100.64.0.1", port)) sess.Stdin = strings.NewReader("hi")
time.Sleep(10 * time.Millisecond) sess.Stdout = logger.FuncWriter(t.Logf)
t.Logf("sending packet: %s", cmd) sess.Stderr = logger.FuncWriter(t.Logf)
err = sess.Run(cmd)
if err != nil { _, port, _ := net.SplitHostPort(ln.LocalAddr().String())
t.Errorf("can't send UDP packet: %v", err)
} cmd := fmt.Sprintf("/udp_tester -client %s\n", net.JoinHostPort("100.64.0.1", port))
t.Logf("sending packet: %s", cmd)
err = sess.Run(cmd)
if err != nil {
t.Logf("can't send UDP packet: %v", err)
}
time.Sleep(10 * time.Millisecond)
}
}()
t.Log("listening for packet") t.Log("listening for packet")
n, _, err := ln.ReadFromUDP(buf) n, _, err := ln.ReadFromUDP(buf)