From 2075c39fd78496685e78fed2919e4ff73c410142 Mon Sep 17 00:00:00 2001 From: Josh Bleecher Snyder Date: Wed, 1 Dec 2021 10:02:15 -0800 Subject: [PATCH] net/portmapper: deflake TestPCPIntegration Logging in goroutines after the test completed caused data races and panics. Prevent that. Signed-off-by: Josh Bleecher Snyder --- net/portmapper/igd_test.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/net/portmapper/igd_test.go b/net/portmapper/igd_test.go index 0af633dd1..110930d3f 100644 --- a/net/portmapper/igd_test.go +++ b/net/portmapper/igd_test.go @@ -63,11 +63,18 @@ type igdCounters struct { func NewTestIGD(logf logger.Logf, t TestIGDOptions) (*TestIGD, error) { d := &TestIGD{ - logf: logf, doPMP: t.PMP, doPCP: t.PCP, doUPnP: t.UPnP, } + d.logf = func(msg string, args ...interface{}) { + // Don't log after the device has closed; + // stray trailing logging angers testing.T.Logf. + if d.closed.Get() { + return + } + logf(msg, args...) + } var err error if d.upnpConn, err = testListenUDP(); err != nil { return nil, err