@@ -367,37 +367,47 @@ func TestTokenManager_Start(t *testing.T) {
367
367
assert .NoError (t , err )
368
368
369
369
assert .NotPanics (t , func () {
370
- var last int32
370
+ last := & atomic. Int32 {}
371
371
wg := & sync.WaitGroup {}
372
372
373
373
idp .On ("RequestToken" ).Return (rawResponse , nil )
374
374
mParser .On ("ParseResponse" , rawResponse ).Return (testTokenValid , nil )
375
375
listener .On ("OnTokenNext" , testTokenValid ).Return ()
376
- numExecutions := 50000
377
- for i := 0 ; i < numExecutions ; i ++ {
376
+ numExecutions := int32 ( 50000 )
377
+ for i := int32 ( 0 ) ; i < numExecutions ; i ++ {
378
378
wg .Add (1 )
379
- go func (num int ) {
379
+ go func (num int32 ) {
380
380
defer wg .Done ()
381
- time .Sleep (time .Duration (int64 (rand .Intn (100 )) * int64 (time .Millisecond )))
382
381
var err error
382
+ time .Sleep (time .Duration (int64 (rand .Intn (1000 )+ (300 - int (num )/ 2 )) * int64 (time .Millisecond )))
383
+ last .Store (num )
383
384
if num % 2 == 0 {
384
385
err = tokenManager .Close ()
385
386
} else {
386
- _ , err = tokenManager .Start (listener )
387
+ l := & mockTokenListener {Id : num }
388
+ l .On ("OnTokenNext" , testTokenValid ).Return ()
389
+ _ , err = tokenManager .Start (l )
387
390
}
388
- if err = = nil {
389
- atomic . StoreInt32 ( & last , int32 ( num ))
390
- } else if err != ErrTokenManagerAlreadyStarted && err != ErrTokenManagerAlreadyCanceled {
391
- log . Printf ( " Error: %v" , err )
392
- t . Fail ()
391
+ if err ! = nil {
392
+ if err != ErrTokenManagerAlreadyCanceled && err != ErrTokenManagerAlreadyStarted {
393
+ // this is un unexpected error, fail the test
394
+ assert . Error ( t , err )
395
+ }
393
396
}
394
397
}(i )
395
398
}
396
399
wg .Wait ()
397
- lastExecution := atomic . LoadInt32 ( & last )
400
+ lastExecution := last . Load ( )
398
401
if lastExecution % 2 == 0 {
402
+ if tm .listener != nil {
403
+ l := tm .listener .(* mockTokenListener )
404
+ log .Printf ("FAILING WITH lastExecution [STARTED]:[LISTENER:%d]: %d" , l .Id , lastExecution )
405
+ }
399
406
assert .Nil (t , tm .listener )
400
407
} else {
408
+ if tm .listener == nil {
409
+ log .Printf ("FAILING WITH lastExecution[STOPPED]: %d" , lastExecution )
410
+ }
401
411
assert .NotNil (t , tm .listener )
402
412
cancel , err := tokenManager .Start (listener )
403
413
assert .Nil (t , cancel )
@@ -606,7 +616,7 @@ func TestEntraidTokenManager_GetToken(t *testing.T) {
606
616
cancel , err := tokenManager .Start (listener )
607
617
assert .Error (t , err )
608
618
assert .Nil (t , cancel )
609
- assert .NotNil (t , tm .listener )
619
+ assert .Nil (t , tm .listener )
610
620
})
611
621
t .Run ("GetToken with expired manager" , func (t * testing.T ) {
612
622
t .Parallel ()
@@ -1035,7 +1045,6 @@ func TestEntraidTokenManager_Streaming(t *testing.T) {
1035
1045
listener .On ("OnTokenError" , mock .Anything ).Run (func (args mock.Arguments ) {
1036
1046
err := args .Get (0 )
1037
1047
assert .NotNil (t , err )
1038
- log .Printf ("Found TOKEN Error: %v" , err )
1039
1048
}).Return ().Maybe ()
1040
1049
1041
1050
cancel , err := tokenManager .Start (listener )
@@ -1109,7 +1118,7 @@ func TestEntraidTokenManager_Streaming(t *testing.T) {
1109
1118
assert .NotEqual (t , time .Duration (0 ), toRenewal )
1110
1119
assert .NotEqual (t , expiresIn , toRenewal )
1111
1120
assert .True (t , expiresIn > toRenewal )
1112
- <- time .After (toRenewal + 5 * time .Millisecond )
1121
+ <- time .After (toRenewal + 100 * time .Millisecond )
1113
1122
1114
1123
idp .AssertNumberOfCalls (t , "RequestToken" , 2 )
1115
1124
listener .AssertNumberOfCalls (t , "OnTokenNext" , 1 )
0 commit comments