From 7b07e70b8c615ac4e5659db605462832a83932dc Mon Sep 17 00:00:00 2001 From: Benjamin Wang Date: Thu, 30 Mar 2023 16:33:34 +0800 Subject: [PATCH] test: improve testDB_Close_PendingTx to reduce flaky Signed-off-by: Benjamin Wang --- db_test.go | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/db_test.go b/db_test.go index db7c619..a92782c 100644 --- a/db_test.go +++ b/db_test.go @@ -747,11 +747,15 @@ func testDB_Close_PendingTx(t *testing.T, writable bool) { } // Open update in separate goroutine. + startCh := make(chan struct{}, 1) done := make(chan error, 1) go func() { + startCh <- struct{}{} err := db.Close() done <- err }() + // wait for the above goroutine to get scheduled. + <-startCh // Ensure database hasn't closed. time.Sleep(100 * time.Millisecond) @@ -775,14 +779,13 @@ func testDB_Close_PendingTx(t *testing.T, writable bool) { } // Ensure database closed now. - time.Sleep(100 * time.Millisecond) select { case err := <-done: if err != nil { t.Fatalf("error from inside goroutine: %v", err) } - default: - t.Fatal("database did not close") + case <-time.After(5 * time.Second): + t.Fatalf("database did not close") } }