MCPcopy
hub / github.com/redis/go-redis / TestWantConnQueue_enqueue_dequeue

Function TestWantConnQueue_enqueue_dequeue

internal/pool/want_conn_test.go:208–263  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

206}
207
208func TestWantConnQueue_enqueue_dequeue(t *testing.T) {
209 q := newWantConnQueue()
210
211 // Test dequeue from empty queue
212 item, ok := q.dequeue()
213 if ok {
214 t.Error("dequeue() from empty queue should return false")
215 }
216 if item != nil {
217 t.Error("dequeue() from empty queue should return nil")
218 }
219
220 // Create test wantConn items
221 w1 := &wantConn{ctx: context.Background(), result: make(chan wantConnResult, 1)}
222 w2 := &wantConn{ctx: context.Background(), result: make(chan wantConnResult, 1)}
223 w3 := &wantConn{ctx: context.Background(), result: make(chan wantConnResult, 1)}
224
225 // Test enqueue
226 q.enqueue(w1)
227 q.enqueue(w2)
228 q.enqueue(w3)
229
230 // Test FIFO behavior
231 item, ok = q.dequeue()
232 if !ok {
233 t.Error("dequeue() should return true when queue has items")
234 }
235 if item != w1 {
236 t.Errorf("dequeue() = %v, want %v (FIFO order)", item, w1)
237 }
238
239 item, ok = q.dequeue()
240 if !ok {
241 t.Error("dequeue() should return true when queue has items")
242 }
243 if item != w2 {
244 t.Errorf("dequeue() = %v, want %v (FIFO order)", item, w2)
245 }
246
247 item, ok = q.dequeue()
248 if !ok {
249 t.Error("dequeue() should return true when queue has items")
250 }
251 if item != w3 {
252 t.Errorf("dequeue() = %v, want %v (FIFO order)", item, w3)
253 }
254
255 // Test dequeue from empty queue again
256 item, ok = q.dequeue()
257 if ok {
258 t.Error("dequeue() from empty queue should return false")
259 }
260 if item != nil {
261 t.Error("dequeue() from empty queue should return nil")
262 }
263}
264
265func TestWantConnQueue_ConcurrentAccess(t *testing.T) {

Callers

nothing calls this directly

Calls 4

newWantConnQueueFunction · 0.85
dequeueMethod · 0.80
enqueueMethod · 0.80
ErrorMethod · 0.45

Tested by

no test coverage detected