|
9 | 9 |
|
10 | 10 | "github.com/ydb-platform/ydb-go-sdk/v3/internal/errors" |
11 | 11 | "github.com/ydb-platform/ydb-go-sdk/v3/internal/rand" |
| 12 | + "github.com/ydb-platform/ydb-go-sdk/v3/retry" |
12 | 13 | "github.com/ydb-platform/ydb-go-sdk/v3/table" |
13 | 14 | "github.com/ydb-platform/ydb-go-sdk/v3/table/options" |
14 | 15 | "github.com/ydb-platform/ydb-go-sdk/v3/testutil" |
@@ -376,6 +377,16 @@ func TestRetryWithCustomErrors(t *testing.T) { |
376 | 377 | retriable bool |
377 | 378 | deleteSession bool |
378 | 379 | }{ |
| 380 | + { |
| 381 | + error: &CustomError{ |
| 382 | + Err: retry.RetryableError( |
| 383 | + fmt.Errorf("custom error"), |
| 384 | + retry.WithDeleteSession(), |
| 385 | + ), |
| 386 | + }, |
| 387 | + retriable: true, |
| 388 | + deleteSession: true, |
| 389 | + }, |
379 | 390 | { |
380 | 391 | error: &CustomError{ |
381 | 392 | Err: errors.NewOpError( |
@@ -422,22 +433,28 @@ func TestRetryWithCustomErrors(t *testing.T) { |
422 | 433 | sessions = make(map[table.Session]int) |
423 | 434 | ) |
424 | 435 | err := do(ctx, p, func(ctx context.Context, s table.Session) (err error) { |
425 | | - if test.deleteSession { |
426 | | - if _, has := sessions[s]; has { |
427 | | - t.Fatalf("session already used: %s", s.ID()) |
428 | | - } |
429 | | - } |
430 | 436 | sessions[s]++ |
431 | 437 | i++ |
432 | 438 | if i < limit { |
433 | 439 | return test.error |
434 | 440 | } |
435 | 441 | return nil |
436 | 442 | }) |
| 443 | + // nolint:nestif |
437 | 444 | if test.retriable { |
438 | 445 | if i != limit { |
439 | 446 | t.Fatalf("unexpected i: %d, err: %v", i, err) |
440 | 447 | } |
| 448 | + if test.deleteSession { |
| 449 | + if len(sessions) != limit { |
| 450 | + t.Fatalf("unexpected len(sessions): %d, err: %v", len(sessions), err) |
| 451 | + } |
| 452 | + for s, n := range sessions { |
| 453 | + if n != 1 { |
| 454 | + t.Fatalf("unexpected session usage: %d, session: %v", n, s.ID()) |
| 455 | + } |
| 456 | + } |
| 457 | + } |
441 | 458 | } else { |
442 | 459 | if i != 1 { |
443 | 460 | t.Fatalf("unexpected i: %d, err: %v", i, err) |
|
0 commit comments