void initTestMembers()

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;
    }