Skip to content

Commit cb4ea78

Browse files
committed
fix mustGetItem
1 parent e7934c7 commit cb4ea78

File tree

1 file changed

+41
-29
lines changed

1 file changed

+41
-29
lines changed

internal/pool/pool_test.go

Lines changed: 41 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -145,8 +145,8 @@ func caller() string {
145145
return fmt.Sprintf("%s:%d", path.Base(file), line)
146146
}
147147

148-
func mustGetItem[PT ItemConstraint[T], T any](t testing.TB, p *Pool[PT, T], nodeID uint32) PT {
149-
s, err := p.getItem(endpoint.WithNodeID(context.Background(), nodeID))
148+
func mustGetItem[PT ItemConstraint[T], T any](t testing.TB, p *Pool[PT, T]) PT {
149+
s, err := p.getItem(context.Background())
150150
if err != nil {
151151
t.Helper()
152152
t.Fatalf("%s: %v", caller(), err)
@@ -204,48 +204,59 @@ func TestPool(t *testing.T) { //nolint:gocyclo
204204
}),
205205
)
206206

207-
item := mustGetItem(t, p, 0)
207+
item := mustGetItem(t, p)
208208
require.EqualValues(t, 0, item.NodeID())
209209
require.EqualValues(t, true, item.IsAlive())
210210
mustPutItem(t, p, item)
211211

212212
nextNodeID = 32
213213

214-
item = mustGetItem(t, p, 32)
214+
item, err := p.getItem(endpoint.WithNodeID(context.Background(), 32))
215+
require.NoError(t, err)
215216
require.EqualValues(t, 32, item.NodeID())
216217
mustPutItem(t, p, item)
217218

218219
nextNodeID = 33
219220

220-
item = mustGetItem(t, p, 33)
221+
item, err = p.getItem(endpoint.WithNodeID(context.Background(), 33))
222+
require.NoError(t, err)
221223
require.EqualValues(t, 33, item.NodeID())
222224
mustPutItem(t, p, item)
223225

224-
item = mustGetItem(t, p, 32)
226+
item, err = p.getItem(endpoint.WithNodeID(context.Background(), 32))
227+
require.NoError(t, err)
225228
require.EqualValues(t, 32, item.NodeID())
226229
mustPutItem(t, p, item)
227230

228-
item = mustGetItem(t, p, 33)
231+
item, err = p.getItem(endpoint.WithNodeID(context.Background(), 33))
232+
require.NoError(t, err)
229233
require.EqualValues(t, 33, item.NodeID())
230234
mustPutItem(t, p, item)
231235

232-
item = mustGetItem(t, p, 32)
233-
item2 := mustGetItem(t, p, 33)
236+
item, err = p.getItem(endpoint.WithNodeID(context.Background(), 32))
237+
require.NoError(t, err)
238+
item2, err := p.getItem(endpoint.WithNodeID(context.Background(), 33))
239+
require.NoError(t, err)
234240
require.EqualValues(t, 32, item.NodeID())
235241
require.EqualValues(t, 33, item2.NodeID())
236242
mustPutItem(t, p, item2)
237243
mustPutItem(t, p, item)
238244

239-
item = mustGetItem(t, p, 32)
240-
item2 = mustGetItem(t, p, 33)
245+
item, err = p.getItem(endpoint.WithNodeID(context.Background(), 32))
246+
require.NoError(t, err)
247+
item2, err = p.getItem(endpoint.WithNodeID(context.Background(), 33))
248+
require.NoError(t, err)
241249
require.EqualValues(t, 32, item.NodeID())
242250
require.EqualValues(t, 33, item2.NodeID())
243251
mustPutItem(t, p, item)
244252
mustPutItem(t, p, item2)
245253

246-
item = mustGetItem(t, p, 32)
247-
item2 = mustGetItem(t, p, 33)
248-
item3 := mustGetItem(t, p, 0)
254+
item, err = p.getItem(endpoint.WithNodeID(context.Background(), 32))
255+
require.NoError(t, err)
256+
item2, err = p.getItem(endpoint.WithNodeID(context.Background(), 33))
257+
require.NoError(t, err)
258+
item3, err := p.getItem(context.Background())
259+
require.NoError(t, err)
249260
require.EqualValues(t, 32, item.NodeID())
250261
require.EqualValues(t, 33, item2.NodeID())
251262
require.EqualValues(t, 0, item3.NodeID())
@@ -274,12 +285,13 @@ func TestPool(t *testing.T) { //nolint:gocyclo
274285
}),
275286
)
276287

277-
item := mustGetItem(t, p, 32)
288+
item, err := p.getItem(endpoint.WithNodeID(context.Background(), 32))
289+
require.NoError(t, err)
278290
require.EqualValues(t, 32, item.NodeID())
279291
require.EqualValues(t, true, item.IsAlive())
280292
mustPutItem(t, p, item)
281293

282-
item = mustGetItem(t, p, 32)
294+
item = mustGetItem(t, p)
283295
require.EqualValues(t, 32, item.NodeID())
284296
mustPutItem(t, p, item)
285297

@@ -384,9 +396,9 @@ func TestPool(t *testing.T) { //nolint:gocyclo
384396
require.Zero(t, p.idle.Len())
385397

386398
var (
387-
s1 = mustGetItem(t, p, 0)
388-
s2 = mustGetItem(t, p, 0)
389-
s3 = mustGetItem(t, p, 0)
399+
s1 = mustGetItem(t, p)
400+
s2 = mustGetItem(t, p)
401+
s3 = mustGetItem(t, p)
390402
)
391403

392404
require.Len(t, p.index, 3)
@@ -461,7 +473,7 @@ func TestPool(t *testing.T) { //nolint:gocyclo
461473
// second call getItem from pool with limit === 1 will skip
462474
// create item step (because pool have not enough space for
463475
// creating new items) and will freeze until wait free item from pool
464-
mustGetItem(t, p, 0)
476+
mustGetItem(t, p)
465477

466478
go func() {
467479
p.config.trace.OnGet = func(ctx *context.Context, call stack.Caller) func(item any, attempts int, err error) {
@@ -539,8 +551,8 @@ func TestPool(t *testing.T) { //nolint:gocyclo
539551
WithTrace[*testItem, testItem](defaultTrace),
540552
)
541553

542-
s1 := mustGetItem(t, p, 0)
543-
s2 := mustGetItem(t, p, 0)
554+
s1 := mustGetItem(t, p)
555+
s2 := mustGetItem(t, p)
544556

545557
// Put both items at the absolutely same time.
546558
// That is, both items must be updated their lastUsage timestamp.
@@ -556,7 +568,7 @@ func TestPool(t *testing.T) { //nolint:gocyclo
556568
// on get item from idle list the pool must check the item idle timestamp
557569
// both existing items must be closed
558570
// getItem must create a new item and return it from getItem
559-
s3 := mustGetItem(t, p, 0)
571+
s3 := mustGetItem(t, p)
560572

561573
require.Len(t, p.index, 1)
562574

@@ -578,7 +590,7 @@ func TestPool(t *testing.T) { //nolint:gocyclo
578590
require.Len(t, p.index, 1)
579591
require.Equal(t, 1, p.idle.Len())
580592

581-
s4 := mustGetItem(t, p, 0)
593+
s4 := mustGetItem(t, p)
582594
require.Equal(t, s3, s4)
583595
require.Len(t, p.index, 1)
584596
require.Equal(t, 0, p.idle.Len())
@@ -935,20 +947,20 @@ func TestPool(t *testing.T) { //nolint:gocyclo
935947
_ = p.Close(context.Background())
936948
}()
937949

938-
s := mustGetItem(t, p, 0)
950+
s := mustGetItem(t, p)
939951
assertCreated(1)
940952

941953
mustPutItem(t, p, s)
942954
assertClosed(0)
943955

944-
mustGetItem(t, p, 0)
956+
mustGetItem(t, p)
945957
assertCreated(1)
946958

947959
p.closeItem(context.Background(), s)
948960
delete(p.index, s)
949961
assertClosed(1)
950962

951-
mustGetItem(t, p, 0)
963+
mustGetItem(t, p)
952964
assertCreated(2)
953965
})
954966
t.Run("Racy", func(t *testing.T) {
@@ -1031,7 +1043,7 @@ func TestPool(t *testing.T) { //nolint:gocyclo
10311043
// replace default async closer for sync testing
10321044
WithSyncCloseItem[*testItem, testItem](),
10331045
)
1034-
item := mustGetItem(t, p, 0)
1046+
item := mustGetItem(t, p)
10351047
if err := p.putItem(context.Background(), item); err != nil {
10361048
t.Fatalf("unexpected error on put session into non-full client: %v, wand: %v", err, nil)
10371049
}
@@ -1048,7 +1060,7 @@ func TestPool(t *testing.T) { //nolint:gocyclo
10481060
// replace default async closer for sync testing
10491061
WithSyncCloseItem[*testItem, testItem](),
10501062
)
1051-
item := mustGetItem(t, p, 0)
1063+
item := mustGetItem(t, p)
10521064
mustPutItem(t, p, item)
10531065

10541066
require.Panics(t, func() {

0 commit comments

Comments
 (0)