@@ -3555,15 +3555,21 @@ func TestClient_ApplyAtLeastOnceReuseSession(t *testing.T) {
3555
3555
if err != nil {
3556
3556
t .Fatal (err )
3557
3557
}
3558
+ expectedIdleSesions := sp .incStep
3559
+ if isMultiplexEnabled {
3560
+ expectedIdleSesions = 0
3561
+ }
3558
3562
sp .mu .Lock ()
3559
- if g , w := uint64 (sp .idleList .Len ())+ sp .createReqs , sp .incStep ; g != w {
3563
+ if g , w := uint64 (sp .idleList .Len ())+ sp .createReqs , expectedIdleSesions ; g != w {
3564
+ sp .mu .Unlock ()
3560
3565
t .Fatalf ("idle session count mismatch:\n Got: %v\n Want: %v" , g , w )
3561
3566
}
3562
- expectedSessions := sp . incStep
3567
+ expectedSessions := expectedIdleSesions
3563
3568
if isMultiplexEnabled {
3564
3569
expectedSessions ++
3565
3570
}
3566
3571
if g , w := uint64 (len (server .TestSpanner .DumpSessions ())), expectedSessions ; g != w {
3572
+ sp .mu .Unlock ()
3567
3573
t .Fatalf ("server session count mismatch:\n Got: %v\n Want: %v" , g , w )
3568
3574
}
3569
3575
sp .mu .Unlock ()
@@ -3602,14 +3608,20 @@ func TestClient_ApplyAtLeastOnceInvalidArgument(t *testing.T) {
3602
3608
t .Fatal (err )
3603
3609
}
3604
3610
sp .mu .Lock ()
3605
- if g , w := uint64 (sp .idleList .Len ())+ sp .createReqs , sp .incStep ; g != w {
3611
+ expectedIdleSesions := sp .incStep
3612
+ if isMultiplexEnabled {
3613
+ expectedIdleSesions = 0
3614
+ }
3615
+ if g , w := uint64 (sp .idleList .Len ())+ sp .createReqs , expectedIdleSesions ; g != w {
3616
+ sp .mu .Unlock ()
3606
3617
t .Fatalf ("idle session count mismatch:\n Got: %v\n Want: %v" , g , w )
3607
3618
}
3608
3619
var countMuxSess uint64
3609
3620
if isMultiplexEnabled {
3610
3621
countMuxSess = 1
3611
3622
}
3612
- if g , w := uint64 (len (server .TestSpanner .DumpSessions ())), sp .incStep + countMuxSess ; g != w {
3623
+ if g , w := uint64 (len (server .TestSpanner .DumpSessions ())), expectedIdleSesions + countMuxSess ; g != w {
3624
+ sp .mu .Unlock ()
3613
3625
t .Fatalf ("server session count mismatch:\n Got: %v\n Want: %v" , g , w )
3614
3626
}
3615
3627
sp .mu .Unlock ()
@@ -6277,18 +6289,30 @@ func TestClient_ApplyAtLeastOnceExcludeTxnFromChangeStreams(t *testing.T) {
6277
6289
if err != nil {
6278
6290
t .Fatal (err )
6279
6291
}
6280
- requests := drainRequestsFromServer ( server . TestSpanner )
6281
- if err := compareRequests ( []interface {}{
6292
+
6293
+ expectedReqs := []interface {}{
6282
6294
& sppb.BatchCreateSessionsRequest {},
6283
- & sppb.CommitRequest {}}, requests ); err != nil {
6284
- t .Fatal (err )
6295
+ & sppb.CommitRequest {},
6285
6296
}
6286
- muxCreateBuffer := 0
6287
6297
if isMultiplexEnabled {
6288
- muxCreateBuffer = 1
6298
+ expectedReqs = []interface {}{
6299
+ & sppb.CreateSessionRequest {},
6300
+ & sppb.CommitRequest {},
6301
+ }
6289
6302
}
6290
- if ! requests [1 + muxCreateBuffer ].(* sppb.CommitRequest ).Transaction .(* sppb.CommitRequest_SingleUseTransaction ).SingleUseTransaction .ExcludeTxnFromChangeStreams {
6291
- t .Fatal ("Transaction is not set to be excluded from change streams" )
6303
+ requests := drainRequestsFromServer (server .TestSpanner )
6304
+ if err := compareRequests (expectedReqs , requests ); err != nil {
6305
+ t .Fatal (err )
6306
+ }
6307
+ for _ , req := range requests {
6308
+ if request , ok := req .(* sppb.CommitRequest ); ok {
6309
+ if ! request .Transaction .(* sppb.CommitRequest_SingleUseTransaction ).SingleUseTransaction .ExcludeTxnFromChangeStreams {
6310
+ t .Fatal ("Transaction is not set to be excluded from change streams" )
6311
+ }
6312
+ if ! testEqual (isMultiplexEnabled , strings .Contains (request .GetSession (), "multiplexed" )) {
6313
+ t .Errorf ("TestClient_ApplyAtLeastOnceExcludeTxnFromChangeStreams expected multiplexed session to be used, got: %v" , request .GetSession ())
6314
+ }
6315
+ }
6292
6316
}
6293
6317
}
6294
6318
0 commit comments