@@ -301,10 +301,51 @@ func TestNewBufferedChannelQueue(t *testing.T) {
301301 assert .Equal (t , nil , err )
302302
303303 // Async
304+ asyncTaskDone := make (chan bool )
305+
306+ bufferedChannelQueue .SetBufferSizeMaximum (6 )
307+ timeout = 2 * time .Millisecond
308+ go func () {
309+ time .Sleep (timeout )
310+ result , err = bufferedChannelQueue .TakeWithTimeout (timeout )
311+ assert .Equal (t , nil , err )
312+ assert .Equal (t , 1 , result )
313+ result , err = bufferedChannelQueue .TakeWithTimeout (timeout )
314+ assert .Equal (t , nil , err )
315+ assert .Equal (t , 2 , result )
316+ result , err = bufferedChannelQueue .TakeWithTimeout (timeout )
317+ assert .Equal (t , nil , err )
318+ assert .Equal (t , 3 , result )
319+ result , err = bufferedChannelQueue .TakeWithTimeout (timeout )
320+ assert .Equal (t , nil , err )
321+ assert .Equal (t , 4 , result )
322+ result , err = bufferedChannelQueue .TakeWithTimeout (timeout )
323+ assert .Equal (t , nil , err )
324+ assert .Equal (t , 5 , result )
325+ result , err = bufferedChannelQueue .TakeWithTimeout (timeout )
326+ assert .Equal (t , nil , err )
327+ assert .Equal (t , 6 , result )
328+ asyncTaskDone <- true
329+ }()
330+ go func () {
331+ err = bufferedChannelQueue .Put (1 )
332+ assert .Equal (t , nil , err )
333+ err = bufferedChannelQueue .Put (2 )
334+ assert .Equal (t , nil , err )
335+ err = bufferedChannelQueue .Put (3 )
336+ assert .Equal (t , nil , err )
337+ err = bufferedChannelQueue .Put (4 )
338+ assert .Equal (t , nil , err )
339+ err = bufferedChannelQueue .Put (5 )
340+ assert .Equal (t , nil , err )
341+ err = bufferedChannelQueue .Put (6 )
342+ assert .Equal (t , nil , err )
343+ }()
344+
345+ <- asyncTaskDone
304346
305347 bufferedChannelQueue .SetBufferSizeMaximum (10000 )
306- timeout = 1 * time .Millisecond
307- asyncTaskDone := make (chan bool )
348+ timeout = 10 * time .Millisecond
308349 go func () {
309350 for i := 1 ; i <= 10000 ; i ++ {
310351 result , err := bufferedChannelQueue .TakeWithTimeout (timeout )
@@ -331,6 +372,6 @@ func TestNewBufferedChannelQueue(t *testing.T) {
331372
332373 time .Sleep (1 * timeout )
333374
334- assert .GreaterOrEqual (t , 100 , bufferedChannelQueue .pool .nodeCount )
375+ assert .GreaterOrEqual (t , bufferedChannelQueue .pool .nodeCount , 100 )
335376 close (asyncTaskDone )
336377}
0 commit comments