in src/client/tst/ClientTestFixture.h [372:530]
void initTestMembers()
{
UINT32 logLevel = 0;
auto logLevelStr = GETENV("AWS_KVS_LOG_LEVEL");
if (logLevelStr != NULL) {
assert(STRTOUI32(logLevelStr, NULL, 10, &logLevel) == STATUS_SUCCESS);
}
// Zero things out
mClientHandle = INVALID_CLIENT_HANDLE_VALUE;
MEMSET(&mDeviceInfo, 0x00, SIZEOF(DeviceInfo));
MEMSET(&mClientHandle, 0x00, SIZEOF(ClientCallbacks));
MEMSET(mDeviceName, 0x00, MAX_DEVICE_NAME_LEN);
MEMSET(mStreamName, 0x00, MAX_STREAM_NAME_LEN);
MEMSET(mStreamingEndpoint, 0x00, MAX_URI_CHAR_LEN);
MEMSET(mContentType, 0x00, MAX_CONTENT_TYPE_LEN);
MEMSET(&mCallContext, 0x00, SIZEOF(ServiceCallContext));
MEMSET(mCustomDatas, 0x00, SIZEOF(UINT64) * MAX_TEST_STREAM_COUNT);
MEMSET(&mStreamDescription, 0x00, SIZEOF(StreamDescription));
MEMSET(mStreamHandles, 0xFF, SIZEOF(UINT64) * MAX_TEST_STREAM_COUNT);
MEMSET(mKmsKeyId, 0x00, MAX_ARN_LEN);
MEMSET(mApiName, 0x00, 256);
MEMSET(mResourceArn, 0x00, MAX_ARN_LEN);
MEMSET(&mFragmentAck, 0x00, SIZEOF(FragmentAck));
// Initialize the device info, etc..
mDeviceInfo.version = DEVICE_INFO_CURRENT_VERSION;
STRNCPY(mDeviceInfo.name, TEST_DEVICE_NAME, MAX_DEVICE_NAME_LEN);
mDeviceInfo.streamCount = MAX_TEST_STREAM_COUNT;
mDeviceInfo.tagCount = 0;
mDeviceInfo.tags = NULL;
mDeviceInfo.storageInfo.version = STORAGE_INFO_CURRENT_VERSION;
mDeviceInfo.storageInfo.rootDirectory[0] = '\0';
STRNCPY(mDeviceInfo.clientId, TEST_CLIENT_ID, MAX_CLIENT_ID_STRING_LENGTH);
mDeviceInfo.storageInfo.spillRatio = 0;
mDeviceInfo.storageInfo.storageType = DEVICE_STORAGE_TYPE_IN_MEM;
mDeviceInfo.storageInfo.storageSize = TEST_DEVICE_STORAGE_SIZE;
mDeviceInfo.clientInfo.version = CLIENT_INFO_CURRENT_VERSION;
mDeviceInfo.clientInfo.createClientTimeout = TEST_DEFAULT_CREATE_CLIENT_TIMEOUT;
mDeviceInfo.clientInfo.createStreamTimeout = TEST_DEFAULT_CREATE_STREAM_TIMEOUT;
mDeviceInfo.clientInfo.stopStreamTimeout = TEST_DEFAULT_STOP_STREAM_TIMEOUT;
mDeviceInfo.clientInfo.offlineBufferAvailabilityTimeout = TEST_DEFAULT_BUFFER_AVAILABILITY_TIMEOUT;
mDeviceInfo.clientInfo.loggerLogLevel = logLevel;
mDeviceInfo.clientInfo.logMetric = FALSE;
mDeviceInfo.clientInfo.metricLoggingPeriod = 1 * HUNDREDS_OF_NANOS_IN_A_MINUTE;
mDeviceInfo.clientInfo.automaticStreamingFlags = AUTOMATIC_STREAMING_INTERMITTENT_PRODUCER;
mDeviceInfo.clientInfo.reservedCallbackPeriod = INTERMITTENT_PRODUCER_PERIOD_DEFAULT;
// Initialize stream info
mStreamInfo.version = STREAM_INFO_CURRENT_VERSION;
mStreamInfo.tagCount = 0;
mStreamInfo.retention = 0;
mStreamInfo.tags = NULL;
STRNCPY(mStreamInfo.name, TEST_STREAM_NAME, MAX_STREAM_NAME_LEN);
mStreamInfo.streamCaps.streamingType = STREAMING_TYPE_REALTIME;
STRNCPY(mStreamInfo.streamCaps.contentType, TEST_CONTENT_TYPE, MAX_CONTENT_TYPE_LEN);
mStreamInfo.streamCaps.adaptive = FALSE;
mStreamInfo.streamCaps.maxLatency = STREAM_LATENCY_PRESSURE_CHECK_SENTINEL;
mStreamInfo.streamCaps.fragmentDuration = 2 * HUNDREDS_OF_NANOS_IN_A_SECOND;
mStreamInfo.streamCaps.keyFrameFragmentation = FALSE;
mStreamInfo.streamCaps.frameTimecodes = TRUE;
mStreamInfo.streamCaps.absoluteFragmentTimes = FALSE;
mStreamInfo.streamCaps.nalAdaptationFlags = NAL_ADAPTATION_FLAG_NONE;
mStreamInfo.streamCaps.fragmentAcks = TRUE;
mStreamInfo.streamCaps.recoverOnError = FALSE;
mStreamInfo.streamCaps.recalculateMetrics = TRUE;
mStreamInfo.streamCaps.avgBandwidthBps = 15 * 1000000;
mStreamInfo.streamCaps.frameRate = 24;
mStreamInfo.streamCaps.bufferDuration = TEST_BUFFER_DURATION;
mStreamInfo.streamCaps.replayDuration = TEST_REPLAY_DURATION;
mStreamInfo.streamCaps.timecodeScale = 0;
mStreamInfo.streamCaps.trackInfoCount = 1;
mStreamInfo.streamCaps.segmentUuid = TEST_SEGMENT_UUID;
mStreamInfo.streamCaps.frameOrderingMode = FRAME_ORDER_MODE_PASS_THROUGH;
mStreamInfo.streamCaps.storePressurePolicy = CONTENT_STORE_PRESSURE_POLICY_OOM;
mStreamInfo.streamCaps.viewOverflowPolicy = CONTENT_VIEW_OVERFLOW_POLICY_DROP_TAIL_VIEW_ITEM;
mTrackInfo.trackId = TEST_TRACKID;
mTrackInfo.codecPrivateDataSize = 0;
mTrackInfo.codecPrivateData = NULL;
STRNCPY(mTrackInfo.codecId, TEST_CODEC_ID, MKV_MAX_CODEC_ID_LEN);
STRNCPY(mTrackInfo.trackName, TEST_TRACK_NAME, MKV_MAX_TRACK_NAME_LEN);
mTrackInfo.trackType = MKV_TRACK_INFO_TYPE_VIDEO;
mTrackInfo.trackCustomData.trackVideoConfig.videoWidth = 1280;
mTrackInfo.trackCustomData.trackVideoConfig.videoHeight = 720;
mStreamInfo.streamCaps.trackInfoList = &mTrackInfo;
setTestTimeVal(0);
mDuration = 0;
mFrameTime = 0;
mFragmentTime = 0;
mStatus = STATUS_SUCCESS;
mStreamHandle = INVALID_STREAM_HANDLE_VALUE;
ATOMIC_STORE_BOOL(&mStreamReady, FALSE);
ATOMIC_STORE_BOOL(&mStreamClosed, FALSE);
mClientHandle = INVALID_CLIENT_HANDLE_VALUE;
mReturnedClientHandle = INVALID_CLIENT_HANDLE_VALUE;
ATOMIC_STORE_BOOL(&mClientReady, FALSE);
mAccessMode = STREAM_ACCESS_MODE_READ;
mClientSyncMode = FALSE;
mStreamStartTime = 0;
ATOMIC_STORE_BOOL(&mAckRequired, FALSE);
mRemainingSize = 0;
mRemainingDuration = 0;
ATOMIC_STORE_BOOL(&mTerminate, FALSE);
mTagCount = 0;
mStreamCount = 0;
ATOMIC_STORE_BOOL(&mStartThreads, FALSE);
mDataReadyDuration = 0;
mDataReadySize = 0;
mStreamUploadHandle = INVALID_UPLOAD_HANDLE_VALUE;
ATOMIC_STORE(&mGetCurrentTimeFuncCount, 0);
ATOMIC_STORE(&mGetRandomNumberFuncCount, 0);
ATOMIC_STORE(&mGetDeviceCertificateFuncCount, 0);
ATOMIC_STORE(&mGetSecurityTokenFuncCount, 0);
ATOMIC_STORE(&mGetDeviceFingerprintFuncCount, 0);
ATOMIC_STORE(&mStreamUnderflowReportFuncCount, 0);
ATOMIC_STORE(&mStorageOverflowPressureFuncCount, 0);
ATOMIC_STORE(&mStreamLatencyPressureFuncCount, 0);
ATOMIC_STORE(&mDroppedFrameReportFuncCount, 0);
ATOMIC_STORE(&mBufferDurationOverflowPrssureFuncCount, 0);
ATOMIC_STORE(&mDroppedFragmentReportFuncCount, 0);
ATOMIC_STORE(&mStreamReadyFuncCount, 0);
ATOMIC_STORE(&mStreamClosedFuncCount, 0);
ATOMIC_STORE(&mCreateMutexFuncCount, 0);
ATOMIC_STORE(&mLockMutexFuncCount, 0);
ATOMIC_STORE(&mUnlockMutexFuncCount, 0);
ATOMIC_STORE(&mTryLockMutexFuncCount, 0);
ATOMIC_STORE(&mFreeMutexFuncCount, 0);
ATOMIC_STORE(&mCreateConditionVariableFuncCount, 0);
ATOMIC_STORE(&mSignalConditionVariableFuncCount, 0);
ATOMIC_STORE(&mBroadcastConditionVariableFuncCount, 0);
ATOMIC_STORE(&mWaitConditionVariableFuncCount, 0);
ATOMIC_STORE(&mFreeConditionVariableFuncCount, 0);
ATOMIC_STORE(&mCreateStreamFuncCount, 0);
ATOMIC_STORE(&mDescribeStreamFuncCount, 0);
ATOMIC_STORE(&mDescribeStreamDoneFuncCount, 0);
ATOMIC_STORE(&mGetStreamingEndpointFuncCount, 0);
ATOMIC_STORE(&mGetStreamingTokenFuncCount, 0);
ATOMIC_STORE(&mPutStreamFuncCount, 0);
ATOMIC_STORE(&mTagResourceFuncCount, 0);
ATOMIC_STORE(&mCreateDeviceFuncCount, 0);
ATOMIC_STORE(&mCreateDeviceDoneFuncCount, 0);
ATOMIC_STORE(&mDeviceCertToTokenFuncCount, 0);
ATOMIC_STORE(&mClientReadyFuncCount, 0);
ATOMIC_STORE(&mClientShutdownFuncCount, 0);
ATOMIC_STORE(&mStreamShutdownFuncCount, 0);
ATOMIC_STORE(&mTimerCallbackFuncCount, 0);
ATOMIC_STORE(&mStreamDataAvailableFuncCount, 0);
ATOMIC_STORE(&mStreamErrorReportFuncCount, 0);
ATOMIC_STORE(&mStreamConnectionStaleFuncCount, 0);
ATOMIC_STORE(&mFragmentAckReceivedFuncCount, 0);
mChainControlPlaneServiceCall = FALSE;
mRepeatTime = 10;
mSubmitServiceCallResultMode = DISABLE_AUTO_SUBMIT;
mTokenExpiration = TEST_AUTH_EXPIRATION;
mThreadReturnStatus = STATUS_SUCCESS;
}