Skip to content

Commit 46e9249

Browse files
authored
Fix issue with API call failures being treated as success (#1328)
* return proper error, do not reset call result value * for non retriable failures, set the terminal exit status for state in… (#1320) * for non retriable failures, set the terminal exit status for state in state machine * address comments * adjust tests set retry max to 1 * Update LwsApiCalls.c trigger travis ci
1 parent 14b710b commit 46e9249

File tree

4 files changed

+71
-42
lines changed

4 files changed

+71
-42
lines changed

src/include/com/amazonaws/kinesis/video/webrtcclient/Include.h

+3-1
Original file line numberDiff line numberDiff line change
@@ -299,6 +299,8 @@ extern "C" {
299299
#define STATUS_SIGNALING_DELETE_CALL_FAILED STATUS_SIGNALING_BASE + 0x00000031
300300
#define STATUS_SIGNALING_INVALID_METRICS_VERSION STATUS_SIGNALING_BASE + 0x00000032
301301
#define STATUS_SIGNALING_INVALID_CLIENT_INFO_CACHE_FILE_PATH_LEN STATUS_SIGNALING_BASE + 0x00000033
302+
#define STATUS_SIGNALING_LWS_CALL_FAILED STATUS_SIGNALING_BASE + 0x00000034
303+
302304

303305
/*!@} */
304306

@@ -640,7 +642,7 @@ extern "C" {
640642
/**
641643
* Signaling states default retry count. This will evaluate to the last call being made 20 seconds in which will hit a timeout first.
642644
*/
643-
#define SIGNALING_STATES_DEFAULT_RETRY_COUNT 10
645+
#define SIGNALING_STATES_DEFAULT_RETRY_COUNT 1
644646

645647
/**
646648
* Signaling caching policy default TTL period

src/source/Signaling/LwsApiCalls.c

+54-6
Original file line numberDiff line numberDiff line change
@@ -111,9 +111,16 @@ INT32 lwsHttpCallbackRoutine(struct lws* wsi, enum lws_callback_reasons reason,
111111
lwsl_hexdump_debug(pDataIn, dataSize);
112112

113113
if (dataSize != 0) {
114-
CHK(NULL != (pLwsCallInfo->callInfo.responseData = (PCHAR) MEMALLOC(dataSize)), STATUS_NOT_ENOUGH_MEMORY);
114+
CHK(NULL != (pLwsCallInfo->callInfo.responseData = (PCHAR) MEMALLOC(dataSize+1)), STATUS_NOT_ENOUGH_MEMORY);
115115
MEMCPY(pLwsCallInfo->callInfo.responseData, pDataIn, dataSize);
116+
pLwsCallInfo->callInfo.responseData[dataSize] = '\0';
116117
pLwsCallInfo->callInfo.responseDataLen = (UINT32) dataSize;
118+
119+
if (pLwsCallInfo->callInfo.callResult != SERVICE_CALL_RESULT_OK) {
120+
DLOGW("Received client http read response: %s", pLwsCallInfo->callInfo.responseData);
121+
} else {
122+
DLOGV("Received client http read response: %s", pLwsCallInfo->callInfo.responseData);
123+
}
117124
}
118125

119126
break;
@@ -632,6 +639,10 @@ STATUS lwsCompleteSync(PLwsCallInfo pCallInfo)
632639
return retStatus;
633640
}
634641

642+
BOOL isCallResultFailureRetryable(PCallInfo pCallInfo) {
643+
return (STRNSTR(pCallInfo->responseData, "Signature expired", pCallInfo->responseDataLen) == NULL);
644+
}
645+
635646
//////////////////////////////////////////////////////////////////////////
636647
// API calls
637648
//////////////////////////////////////////////////////////////////////////
@@ -678,8 +689,12 @@ STATUS describeChannelLws(PSignalingClient pSignalingClient, UINT64 time)
678689
pResponseStr = pLwsCallInfo->callInfo.responseData;
679690
resultLen = pLwsCallInfo->callInfo.responseDataLen;
680691

692+
CHK_ERR(isCallResultFailureRetryable(&pLwsCallInfo->callInfo), STATUS_SIGNALING_DESCRIBE_CALL_FAILED,
693+
"DescribeChannel API call failed with: %s and will not be retried.", pResponseStr);
694+
681695
// Early return if we have a non-success result
682-
CHK((SERVICE_CALL_RESULT) ATOMIC_LOAD(&pSignalingClient->result) == SERVICE_CALL_RESULT_OK && resultLen != 0 && pResponseStr != NULL, retStatus);
696+
CHK((SERVICE_CALL_RESULT) ATOMIC_LOAD(&pSignalingClient->result) == SERVICE_CALL_RESULT_OK && resultLen != 0 && pResponseStr != NULL,
697+
STATUS_SIGNALING_LWS_CALL_FAILED);
683698

684699
// Parse the response
685700
jsmn_init(&parser);
@@ -753,6 +768,10 @@ STATUS describeChannelLws(PSignalingClient pSignalingClient, UINT64 time)
753768

754769
CleanUp:
755770

771+
if (STATUS_FAILED(retStatus)) {
772+
DLOGE("Call Failed with Status: 0x%08x", retStatus);
773+
}
774+
756775
freeLwsCallInfo(&pLwsCallInfo);
757776

758777
LEAVES();
@@ -823,8 +842,12 @@ STATUS createChannelLws(PSignalingClient pSignalingClient, UINT64 time)
823842
pResponseStr = pLwsCallInfo->callInfo.responseData;
824843
resultLen = pLwsCallInfo->callInfo.responseDataLen;
825844

845+
CHK_ERR(isCallResultFailureRetryable(&pLwsCallInfo->callInfo), STATUS_SIGNALING_CREATE_CALL_FAILED,
846+
"CreateChannel API call failed with: %s and will not be retried.", pResponseStr);
847+
826848
// Early return if we have a non-success result
827-
CHK((SERVICE_CALL_RESULT) ATOMIC_LOAD(&pSignalingClient->result) == SERVICE_CALL_RESULT_OK && resultLen != 0 && pResponseStr != NULL, retStatus);
849+
CHK((SERVICE_CALL_RESULT) ATOMIC_LOAD(&pSignalingClient->result) == SERVICE_CALL_RESULT_OK && resultLen != 0 && pResponseStr != NULL,
850+
STATUS_SIGNALING_LWS_CALL_FAILED);
828851

829852
// Parse out the ARN
830853
jsmn_init(&parser);
@@ -848,6 +871,10 @@ STATUS createChannelLws(PSignalingClient pSignalingClient, UINT64 time)
848871

849872
CleanUp:
850873

874+
if (STATUS_FAILED(retStatus)) {
875+
DLOGE("Call Failed with Status: 0x%08x", retStatus);
876+
}
877+
851878
freeLwsCallInfo(&pLwsCallInfo);
852879

853880
LEAVES();
@@ -897,8 +924,12 @@ STATUS getChannelEndpointLws(PSignalingClient pSignalingClient, UINT64 time)
897924
pResponseStr = pLwsCallInfo->callInfo.responseData;
898925
resultLen = pLwsCallInfo->callInfo.responseDataLen;
899926

927+
CHK_ERR(isCallResultFailureRetryable(&pLwsCallInfo->callInfo), STATUS_SIGNALING_GET_ENDPOINT_CALL_FAILED,
928+
"GetChannelEndpoint API call failed with: %s and will not be retried.", pResponseStr);
929+
900930
// Early return if we have a non-success result
901-
CHK((SERVICE_CALL_RESULT) ATOMIC_LOAD(&pSignalingClient->result) == SERVICE_CALL_RESULT_OK && resultLen != 0 && pResponseStr != NULL, retStatus);
931+
CHK((SERVICE_CALL_RESULT) ATOMIC_LOAD(&pSignalingClient->result) == SERVICE_CALL_RESULT_OK && resultLen != 0 && pResponseStr != NULL,
932+
STATUS_SIGNALING_LWS_CALL_FAILED);
902933

903934
// Parse and extract the endpoints
904935
jsmn_init(&parser);
@@ -973,6 +1004,10 @@ STATUS getChannelEndpointLws(PSignalingClient pSignalingClient, UINT64 time)
9731004

9741005
CleanUp:
9751006

1007+
if (STATUS_FAILED(retStatus)) {
1008+
DLOGE("Call Failed with Status: 0x%08x", retStatus);
1009+
}
1010+
9761011
freeLwsCallInfo(&pLwsCallInfo);
9771012

9781013
LEAVES();
@@ -1028,8 +1063,12 @@ STATUS getIceConfigLws(PSignalingClient pSignalingClient, UINT64 time)
10281063
pResponseStr = pLwsCallInfo->callInfo.responseData;
10291064
resultLen = pLwsCallInfo->callInfo.responseDataLen;
10301065

1066+
CHK_ERR(isCallResultFailureRetryable(&pLwsCallInfo->callInfo), STATUS_SIGNALING_GET_ICE_CONFIG_CALL_FAILED,
1067+
"GetIceConfig API call failed with: %s and will not be retried.", pResponseStr);
1068+
10311069
// Early return if we have a non-success result
1032-
CHK((SERVICE_CALL_RESULT) ATOMIC_LOAD(&pSignalingClient->result) == SERVICE_CALL_RESULT_OK && resultLen != 0 && pResponseStr != NULL, retStatus);
1070+
CHK((SERVICE_CALL_RESULT) ATOMIC_LOAD(&pSignalingClient->result) == SERVICE_CALL_RESULT_OK && resultLen != 0 && pResponseStr != NULL,
1071+
STATUS_SIGNALING_LWS_CALL_FAILED);
10331072

10341073
// Parse the response
10351074
jsmn_init(&parser);
@@ -1094,6 +1133,10 @@ STATUS getIceConfigLws(PSignalingClient pSignalingClient, UINT64 time)
10941133

10951134
CleanUp:
10961135

1136+
if (STATUS_FAILED(retStatus)) {
1137+
DLOGE("Call Failed with Status: 0x%08x", retStatus);
1138+
}
1139+
10971140
freeLwsCallInfo(&pLwsCallInfo);
10981141

10991142
LEAVES();
@@ -1145,13 +1188,18 @@ STATUS deleteChannelLws(PSignalingClient pSignalingClient, UINT64 time)
11451188

11461189
// Early return if we have a non-success result and it's not a resource not found
11471190
result = ATOMIC_LOAD(&pSignalingClient->result);
1148-
CHK((SERVICE_CALL_RESULT) result == SERVICE_CALL_RESULT_OK || (SERVICE_CALL_RESULT) result == SERVICE_CALL_RESOURCE_NOT_FOUND, retStatus);
1191+
CHK((SERVICE_CALL_RESULT) result == SERVICE_CALL_RESULT_OK || (SERVICE_CALL_RESULT) result == SERVICE_CALL_RESOURCE_NOT_FOUND,
1192+
STATUS_SIGNALING_LWS_CALL_FAILED);
11491193

11501194
// Mark the channel as deleted
11511195
ATOMIC_STORE_BOOL(&pSignalingClient->deleted, TRUE);
11521196

11531197
CleanUp:
11541198

1199+
if (STATUS_FAILED(retStatus)) {
1200+
DLOGE("Call Failed with Status: 0x%08x", retStatus);
1201+
}
1202+
11551203
freeLwsCallInfo(&pLwsCallInfo);
11561204

11571205
LEAVES();

src/source/Signaling/Signaling.c

-21
Original file line numberDiff line numberDiff line change
@@ -837,7 +837,6 @@ STATUS describeChannel(PSignalingClient pSignalingClient, UINT64 time)
837837

838838
if (STATUS_SUCCEEDED(retStatus)) {
839839
retStatus = describeChannelLws(pSignalingClient, time);
840-
841840
// Store the last call time on success
842841
if (STATUS_SUCCEEDED(retStatus)) {
843842
pSignalingClient->describeTime = time;
@@ -858,10 +857,6 @@ STATUS describeChannel(PSignalingClient pSignalingClient, UINT64 time)
858857

859858
CleanUp:
860859

861-
if (STATUS_FAILED(retStatus) && pSignalingClient != NULL) {
862-
ATOMIC_STORE(&pSignalingClient->result, (SIZE_T) SERVICE_CALL_UNKNOWN);
863-
}
864-
865860
LEAVES();
866861
return retStatus;
867862
}
@@ -904,10 +899,6 @@ STATUS createChannel(PSignalingClient pSignalingClient, UINT64 time)
904899

905900
CleanUp:
906901

907-
if (STATUS_FAILED(retStatus) && pSignalingClient != NULL) {
908-
ATOMIC_STORE(&pSignalingClient->result, (SIZE_T) SERVICE_CALL_UNKNOWN);
909-
}
910-
911902
LEAVES();
912903
return retStatus;
913904
}
@@ -987,10 +978,6 @@ STATUS getChannelEndpoint(PSignalingClient pSignalingClient, UINT64 time)
987978

988979
CleanUp:
989980

990-
if (STATUS_FAILED(retStatus) && pSignalingClient != NULL) {
991-
ATOMIC_STORE(&pSignalingClient->result, (SIZE_T) SERVICE_CALL_UNKNOWN);
992-
}
993-
994981
LEAVES();
995982
return retStatus;
996983
}
@@ -1032,10 +1019,6 @@ STATUS getIceConfig(PSignalingClient pSignalingClient, UINT64 time)
10321019

10331020
CleanUp:
10341021

1035-
if (STATUS_FAILED(retStatus) && pSignalingClient != NULL) {
1036-
ATOMIC_STORE(&pSignalingClient->result, (SIZE_T) SERVICE_CALL_UNKNOWN);
1037-
}
1038-
10391022
LEAVES();
10401023
return retStatus;
10411024
}
@@ -1078,10 +1061,6 @@ STATUS deleteChannel(PSignalingClient pSignalingClient, UINT64 time)
10781061

10791062
CleanUp:
10801063

1081-
if (STATUS_FAILED(retStatus) && pSignalingClient != NULL) {
1082-
ATOMIC_STORE(&pSignalingClient->result, (SIZE_T) SERVICE_CALL_UNKNOWN);
1083-
}
1084-
10851064
LEAVES();
10861065
return retStatus;
10871066
}

tst/SignalingApiFunctionalityTest.cpp

+14-14
Original file line numberDiff line numberDiff line change
@@ -1449,7 +1449,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshNotConnectedAuthExpi
14491449

14501450
// Check the states - we should have failed on get credentials
14511451
EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_NEW]);
1452-
EXPECT_EQ(23, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_CREDENTIALS]);
1452+
EXPECT_EQ(5, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_CREDENTIALS]);
14531453
EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]);
14541454
EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]);
14551455
EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]);
@@ -1466,7 +1466,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshNotConnectedAuthExpi
14661466
EXPECT_NE((UINT64) NULL, (UINT64) pIceConfigInfo);
14671467

14681468
EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_NEW]);
1469-
EXPECT_EQ(23, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_CREDENTIALS]);
1469+
EXPECT_EQ(5, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_CREDENTIALS]);
14701470
EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]);
14711471
EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]);
14721472
EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]);
@@ -1572,7 +1572,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshConnectedAuthExpirat
15721572

15731573
// Check the states - we should have failed on get credentials
15741574
EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_NEW]);
1575-
EXPECT_EQ(23, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_CREDENTIALS]);
1575+
EXPECT_EQ(5, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_CREDENTIALS]);
15761576
EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]);
15771577
EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]);
15781578
EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]);
@@ -1589,7 +1589,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshConnectedAuthExpirat
15891589
EXPECT_NE((UINT64) NULL, (UINT64) pIceConfigInfo);
15901590

15911591
EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_NEW]);
1592-
EXPECT_EQ(23, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_CREDENTIALS]);
1592+
EXPECT_EQ(5, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_CREDENTIALS]);
15931593
EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]);
15941594
EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]);
15951595
EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]);
@@ -1641,7 +1641,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshNotConnectedWithFaul
16411641
// Make it fail after the first call and recover after two failures on the 3rd call
16421642
getIceConfigResult = STATUS_INVALID_OPERATION;
16431643
getIceConfigFail = 1;
1644-
getIceConfigRecover = 3;
1644+
getIceConfigRecover = 1;
16451645

16461646
MEMSET(&channelInfo, 0x00, SIZEOF(ChannelInfo));
16471647
channelInfo.version = CHANNEL_INFO_CURRENT_VERSION;
@@ -1688,7 +1688,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshNotConnectedWithFaul
16881688
EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]);
16891689
EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]);
16901690
EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]);
1691-
EXPECT_EQ(4, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]);
1691+
EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]);
16921692
EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]);
16931693
EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]);
16941694
EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]);
@@ -1701,7 +1701,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshNotConnectedWithFaul
17011701
EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]);
17021702
EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]);
17031703
EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]);
1704-
EXPECT_EQ(4, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]);
1704+
EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]);
17051705
EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]);
17061706
EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]);
17071707
EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]);
@@ -1755,7 +1755,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshConnectedWithFaultIn
17551755
// Make it fail after the first call and recover after two failures on the 3rd call
17561756
getIceConfigResult = STATUS_INVALID_OPERATION;
17571757
getIceConfigFail = 1;
1758-
getIceConfigRecover = 3;
1758+
getIceConfigRecover = 1;
17591759

17601760
MEMSET(&channelInfo, 0x00, SIZEOF(ChannelInfo));
17611761
channelInfo.version = CHANNEL_INFO_CURRENT_VERSION;
@@ -1817,7 +1817,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshConnectedWithFaultIn
18171817
EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]);
18181818
EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]);
18191819
EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]);
1820-
EXPECT_EQ(4, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]);
1820+
EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]);
18211821
EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]);
18221822
EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]);
18231823
EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]);
@@ -2894,7 +2894,7 @@ TEST_F(SignalingApiFunctionalityTest, deleteChannelCreatedAuthExpiration)
28942894

28952895
// Check the states - we should have failed on get credentials
28962896
EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_NEW]);
2897-
EXPECT_EQ(12, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_CREDENTIALS]);
2897+
EXPECT_EQ(3, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_CREDENTIALS]);
28982898
EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]);
28992899
EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]);
29002900
EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]);
@@ -2914,7 +2914,7 @@ TEST_F(SignalingApiFunctionalityTest, deleteChannelCreatedAuthExpiration)
29142914

29152915
// Check the states - we should have got the credentials now and directly moved to delete
29162916
EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_NEW]);
2917-
EXPECT_EQ(13, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_CREDENTIALS]);
2917+
EXPECT_EQ(4, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_CREDENTIALS]);
29182918
EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]);
29192919
EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]);
29202920
EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]);
@@ -3059,7 +3059,7 @@ TEST_F(SignalingApiFunctionalityTest, cachingWithFaultInjection)
30593059
EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]);
30603060

30613061
// Validate the hook count
3062-
EXPECT_EQ(2, describeCount);
3062+
EXPECT_EQ(3, describeCount);
30633063
EXPECT_EQ(2, getEndpointCount);
30643064

30653065
// Connect to the signaling client and make it fail
@@ -3081,7 +3081,7 @@ TEST_F(SignalingApiFunctionalityTest, cachingWithFaultInjection)
30813081
EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]);
30823082

30833083
// Validate the hook count
3084-
EXPECT_EQ(2, describeCount);
3084+
EXPECT_EQ(3, describeCount);
30853085
EXPECT_EQ(2, getEndpointCount);
30863086

30873087
// Wait for the cache TTL to expire and retry
@@ -3103,7 +3103,7 @@ TEST_F(SignalingApiFunctionalityTest, cachingWithFaultInjection)
31033103
EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]);
31043104

31053105
// Validate the hook count is incremented due to cache miss
3106-
EXPECT_EQ(3, describeCount);
3106+
EXPECT_EQ(4, describeCount);
31073107
EXPECT_EQ(3, getEndpointCount);
31083108

31093109
EXPECT_EQ(STATUS_SUCCESS, signalingClientDisconnectSync(signalingHandle));

0 commit comments

Comments
 (0)