spanner: Cleanup TestTakeFromWriteQueue
Removes the 'wait one second statements' from the test.
Change-Id: Id44076504e1c7cb9742ea7b710fd82ff1626822c
Reviewed-on: https://code-review.googlesource.com/c/gocloud/+/47615
Reviewed-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Jean de Klerk <deklerk@google.com>
diff --git a/spanner/session_test.go b/spanner/session_test.go
index f73c069..5da6aa3 100644
--- a/spanner/session_test.go
+++ b/spanner/session_test.go
@@ -784,9 +784,10 @@
_, client, teardown := setupMockedTestServerWithConfig(t,
ClientConfig{
SessionPoolConfig: SessionPoolConfig{
- MaxOpened: 1,
- WriteSessions: 1.0,
- MaxIdle: 1,
+ MaxOpened: 1,
+ WriteSessions: 1.0,
+ MaxIdle: 1,
+ HealthCheckInterval: time.Nanosecond,
},
})
defer teardown()
@@ -798,8 +799,19 @@
}
sh.recycle()
- // TODO(deklerk): get rid of this
- <-time.After(time.Second)
+ // Wait until the health checker has write-prepared the session.
+ waitUntil := time.After(time.Second)
+ var numWritePrepared int
+ for numWritePrepared == 0 {
+ select {
+ case <-waitUntil:
+ break
+ default:
+ }
+ sp.mu.Lock()
+ numWritePrepared = sp.idleWriteList.Len()
+ sp.mu.Unlock()
+ }
// The session should now be in write queue but take should also return it.
sp.mu.Lock()