From 129df0613b2ec62664b561e5215332fcbabb80a0 Mon Sep 17 00:00:00 2001 From: Simon Frei Date: Mon, 27 May 2019 11:58:09 +0200 Subject: [PATCH] lib/model: Unflake folder restart with blocking conn test (ref #5707) (#5744) --- lib/model/model_test.go | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/lib/model/model_test.go b/lib/model/model_test.go index 7bdff3aa..76b41102 100644 --- a/lib/model/model_test.go +++ b/lib/model/model_test.go @@ -3273,6 +3273,12 @@ func TestConnCloseOnRestart(t *testing.T) { br := &testutils.BlockingRW{} nw := &testutils.NoopRW{} m.AddConnection(newFakeProtoConn(protocol.NewConnection(device1, br, nw, m, "testConn", protocol.CompressNever)), protocol.HelloResult{}) + m.pmut.RLock() + if len(m.closed) != 1 { + t.Fatalf("Expected just one conn (len(m.conn) == %v)", len(m.conn)) + } + closed := m.closed[device1] + m.pmut.RUnlock() newFcfg := fcfg.Copy() newFcfg.Paused = true @@ -3286,9 +3292,9 @@ func TestConnCloseOnRestart(t *testing.T) { case <-time.After(5 * time.Second): t.Fatal("Timed out before folder restart returned") } - m.pmut.RLock() - defer m.pmut.RUnlock() - if len(m.conn) != 0 { - t.Errorf("Conn wasn't removed on restart (len(m.conn) == %v)", len(m.conn)) + select { + case <-closed: + case <-time.After(5 * time.Second): + t.Fatal("Timed out before connection was closed") } }