//***************************************************************************** // (C) Automotive Lighting Reutlingen GmbH // Tuebinger Strasse 123, 72762 Reutlingen, Germany // // Automotive Lighting Reutlingen GmbH owns all the rights to this work. // This work shall not be copied, reproduced, used, modified, transferred // or its information shall not be disclosed without the prior written // authorization of Automotive Lighting Reutlingen GmbH. //***************************************************************************** //----------------------------------------------------------------------------- /// \file Test.c /// /// \brief Unit Test Cases for SysMon /// /// \author /// //----------------------------------------------------------------------------- #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include tRomPara_CodingArea coding_data; const tRomPara_CodingArea* applicationCodingDataptr = &coding_data; const tRomPara_CodingArea applicationCodingData; extern STATIC_AL boolean SysMon_Data_boIsCodingDataValid; extern STATIC_AL SysMon_EnumEcuMountingSide SysMon_eMountingSide; extern tisMsgTimeoutErr SysMon_MsgTimeoutErr; extern boolean SysMon_boBusOff; #define SYSMON_LED_DIAG_DUTY_CYCLE_5_PERCENT_CONDITION (uint8) 0x1U #define SYSMON_LED_DIAG_CURRENT_DERATING_OFF_CONDITION (uint8) 0x2U #define SYSMON_LED_DIAG_VBOOST_VALID_CONDITON (uint8) 0x4U #define SYSMON_LED_DIAG_LIGHT_SOURCE_REQ_EVENT_CONDITION (uint8) 0x8U #define SYSMON_LED_DIAG_TIME_WITHOUT_LIGHT_REQUEST_CONDITION (uint8) 0x10U #define SYSMON_LED_DIAG_DUTY_CYCLE_ON_CONDITION (uint8) 0x20U #define SYSMON_LED_DIAG_ENABLED (uint8) 0x40U #define SYSMON_LED_DIAG_SHORT_TO_GND_MONITORING_ACTIVATED (SYSMON_LED_DIAG_ENABLED | SYSMON_LED_DIAG_DUTY_CYCLE_5_PERCENT_CONDITION | SYSMON_LED_DIAG_CURRENT_DERATING_OFF_CONDITION) #define SYSMON_LED_DIAG_OPEN_LOAD_MONITORING_ACTIVATED (SYSMON_LED_DIAG_ENABLED | SYSMON_LED_DIAG_DUTY_CYCLE_5_PERCENT_CONDITION | SYSMON_LED_DIAG_CURRENT_DERATING_OFF_CONDITION | SYSMON_LED_DIAG_VBOOST_VALID_CONDITON) #define SYSMON_LED_DIAG_SHORT_TO_UBAT_MONITORING_ACTIVATED (SYSMON_LED_DIAG_ENABLED | SYSMON_LED_DIAG_LIGHT_SOURCE_REQ_EVENT_CONDITION | SYSMON_LED_DIAG_TIME_WITHOUT_LIGHT_REQUEST_CONDITION) #define SYSMON_LED_DIAG_VOLT_OUT_OF_TOLERANCE_MONITORING_ACTIVATED (SYSMON_LED_DIAG_ENABLED | SYSMON_LED_DIAG_DUTY_CYCLE_5_PERCENT_CONDITION | SYSMON_LED_DIAG_CURRENT_DERATING_OFF_CONDITION) #define SYSMON_LED_DIAG_OVERCURRENT_MONITORING_ACTIVATED (SYSMON_LED_DIAG_DUTY_CYCLE_ON_CONDITION) #define SYSMON_LED_DIAG_ERROR_MONITORING_DEACTIVATED (uint8) 0U #define SYSMON_SCALE_PERCENT_TO_UINT16(perValue) (uint16)(((uint32) perValue * 0x7FFFU) / 100U) #define SYSMON_LED_DIAG_DUTY_CYCLE_5_PERCENT SYSMON_SCALE_PERCENT_TO_UINT16(5U) #define SYSMON_CURRENT_NO_DERATING (uint16) 0x8000U // No current (analog) derating means 100% [100/2^15] typedef struct tSysMon_LedDiag_BoostErr { sint16 nDebounceCnt; }tSysMon_LedDiag_BoostErr; typedef struct tSysMon_LedDiag_BoostData { tSysMon_LedDiag_BoostErr Undervoltage; tSysMon_LedDiag_BoostErr Overvoltage; uint32 ulErrBitMask; //Bit0: Undervoltage error verified //Bit1: Overvoltage error verified }tSysMon_LedDiag_BoostData; typedef struct tSysMon_LedDiag_ErrorData { sint16 snDebounceCnt; // Debounce counter use for error and error-free uint16 unLedChNoRequestDebounceCnt; // Debounce counter use to measure time with no light request uint8 ucMonitoringConditions; // Bit field used to check if error state can be evaluate }tSysMon_LedDiag_ErrorData; typedef struct tSysMon_LedDiag_ChData { tSysMon_LedDiag_ErrorData ShrtToGnd; tSysMon_LedDiag_ErrorData OpenLoad; tSysMon_LedDiag_ErrorData ShrtToUBat; tSysMon_LedDiag_ErrorData VoltOutOfTolerance; tSysMon_LedDiag_ErrorData Overcurrent; tSysMon_LedDiag_ErrorData ThermalShutdown; }tSysMon_LedDiag_ChData; uint8 Mt_ucVal; tSysMonCounterMonitor* const Mt_pCntMon; uint32 Mt_nLimitActivate; uint32 Mt_nLimitDeActivate; tSysMonTimerMonitor* const Mt_pTimMon; uint32 Mt_nToutActivateMsec; uint32 Mt_nToutDeActivateMsec; tSysMonSignalQuality* const Mt_pQuality; uint32 Mt_nTcyclicMsec; uint32 Mt_nToutMsec; tSysMonPduQuality* const Mt_pduQuality; SYSMON_FUNC_PTR_DTC pf; tSysMonCounterMonitor* pMon; boolean isPre; tSysMonSignal_U8 * pSignal; tSysMonCommon_CheckValidValueU8 pFct; //SysMon_MsgVedCmd tisAnimationFct Rte_SysMon_ReqAnimationFct; tisVehicleSpeedSts Rte_SysMon_VehicleSpeedSts; tisNetworkMngmnt Rte_SysMon_NetworkMngmnt; tisIgnitioinSts Rte_SysMon_IgnitioinSts; tesVedCmdUap Rte_SysMon_VedCmdUap; //LedDiag tiu32Voltage_mV Rte_SysMon_uVBat; uint8* SysMon_Mock_Crc_CalculateCRC8H2F_Crc_DataPtr; uint32 SysMon_Mock_Crc_CalculateCRC8H2F_Crc_Length; uint8 SysMon_Mock_Crc_CalculateCRC8H2F_Crc_StartValue8H2F; boolean SysMon_Mock_Crc_CalculateCRC8H2F_Crc_IsFirstCall; uint8 SysMon_Mock_Crc_CalculateCRC8H2F_ReturnValue; //MsgEcuStatesInfo tesLhsStatesInfo Rte_SysMonTx_LhsStatesInfo; tesRhsStatesInfo Rte_SysMonTx_RhsStatesInfo; tesLhsStatesInfo Rte_SysMonRx_LhsStatesInfo; tesRhsStatesInfo Rte_SysMonRx_RhsStatesInfo; FUNC(uint8, CRC_CODE) Crc_CalculateCRC8 (P2CONST(uint8, CRC_CONST, CRC_APPL_CONST)Crc_DataPtr, uint32 Crc_Length, uint8 Crc_StartValue8H2F, boolean Crc_IsFirstCall) { SysMon_Mock_Crc_CalculateCRC8H2F_Crc_DataPtr = (uint8*)Crc_DataPtr; SysMon_Mock_Crc_CalculateCRC8H2F_Crc_Length = Crc_Length; SysMon_Mock_Crc_CalculateCRC8H2F_Crc_StartValue8H2F = Crc_StartValue8H2F; SysMon_Mock_Crc_CalculateCRC8H2F_Crc_IsFirstCall = Crc_IsFirstCall; return SysMon_Mock_Crc_CalculateCRC8H2F_ReturnValue; } tisLsTarget_ASIL SysMon_LsTarget_ASIL; tisLsTarget SysMon_aLsTarget[SYSMON_CFG_LED_MAX_NO_OF_LS_CHANNELS]; uint32* pulMaxLMxx_LED_OVER_VOLTAGE; uint32 ulLsIdx; boolean ut_boIsCodingDataValid; boolean SysMon_LedCtrl_boBoostInit = FALSE; const tisLsTarget* const pLsTarget; tisLsTarget_ASIL* const pLsTarget_ASIL; tisLsTarget_ASIL* Rte_SysMon_LsTarget_ASIL; tisLowBeamFctSts Rte_SysMon_LowBeamFctSts; tisHighBeamFctSts Rte_SysMon_HighBeamFctSts; tisTurnIndFctSts Rte_SysMon_TurnIndFctSts; tisFogLightFctSts Rte_SysMon_FogLightFctSts; tisDayTimeRunningLightFctSts Rte_SysMon_DayTimeRunningLightFctSts; tisCornerLightFctSts Rte_SysMon_CornerLightFctSts; tisPositionLightFctSts Rte_SysMon_PositionLightFctSts; tisAnimationFctSts Rte_SysMon_AnimationFctSts; tisStatusSpinningFront Rte_SysMon_tisStatusSpinningFront; tisNetworkMngmntSts Rte_SysMon_tisNetworkMngmntSts; tisStepperTgt Rte_SysMon_StepperTgt; tisHssStatusErrorArr Rte_SysMon_HSS_Status_Err; Rte_tisCornerLightFct Rte_SysMon_ReqCornerLightFct; Rte_tisTurnIndFct Rte_SysMon_ReqTurnIndFct; tesLightCtrlMsg1Uap Rte_SysMon_LightCtrlMsg1Uap; tisLowBeamFct Rte_ReqLowBeamFct; tisHighBeamFct Rte_ReqHighBeamFct; tisDayTimeRunningLightFct Rte_ReqDayTimeRunningLightFct; tisFogLightFct Rte_ReqFogLightFct; tisPositionLightFct Rte_ReqPositionLightFct; tesLightCtrlMsg2Uap Rte_SysMon_LightCtrlMsg2Uap; tisAllMlcSensorStatus* Rte_SysMon_AllMlcSensorStatus; tisAllSwitchTarget* E2EPW_SysMon_AllSwitchTarget; tisAllSwitchStatus* Rte_SysMon_AllSwitchStatus; tisAllMlcTargets E2EPW_SysMon_AllMlcTargets; tisAllMlcSwitchStatus* Rte_SysMon_AllMlcSwitchAndAllSensorStatus; uint8 Rte_SysMon_ucErrorBitMaskBuckChannel; tiu32LsErrorBitMask Rte_SysMon_ulVLedOfLastErrorDetection; tiu32LsErrorBitMask Rte_SysMon_ulErrorBitMask_PosL; tiu32LsErrorBitMask Rte_SysMon_ulErrorBitMask_LB_FuSi; tiu32LsErrorBitMask Rte_SysMon_ulErrorBitMask_LB; tiu32LsErrorBitMask Rte_SysMon_ulErrorBitMask_HB; tiu32LsErrorBitMask Rte_SysMon_ulErrorBitMask_FogL; tiu32LsErrorBitMask Rte_SysMon_ulErrorBitMask_DRL; tiu32LsErrorBitMask Rte_SysMon_ulErrorBitMask_CL; tiu32LsErrorBitMask Rte_SysMon_ulErrorBitMask_Anim; uint8 Rte_SysMon_ucErrInternalCom; tisLsSafetyStatusErrorArr Rte_SysMon_LsSafetyStatusError; tisLsTargetEnable_ASIL Rte_SysMon_LsTargetEnable_ASIL; tisLsTarget_ASIL E2EPW_SysMon_LsTarget_ASIL; tisCanStatusError* Rte_data; tieMountingSideRaw Rte_SysMon_tieMountingSideRaw; tieMountingSide Rte_SysMon_tieMountingSide; tiu32Voltage_mV E2EPW_SysMon_KL15VoltageSts; tisAllMlcSwitchAndAllSensorStatus E2EPW_SysMon_AllMlcSwitchAndAllSensorStatus; tisAllSwitchStatus E2EPW_SysMon_AllSwitchStatus; tisAllMlcTargets Rte_SysMon_AllMlcTargets; tisAllSwitchTarget Rte_SysMon_AllSwitchTarget; tieEcuNmModes Rte_SysMon_EcuNmModes; tisSysVoltStatus Rte_SysMon_SysVoltStatus; tieDataStatus Rte_SysMon_tieDataStatus; tisNetworkMngmntSts Rte_SysMon_tisNetworkMngmntSts; uint8 Rte_SysMon_uint8; tiu8Crc0 Rte_SysMon_ucCrc0; tiu32Voltage_mV Rte_SysMon_tiu32Voltage_mV; tiu32Voltage_mV Rte_SysMon_Voltage_mV; tisCddLedStatus_ASIL E2EPW_SysMon_CddLedStatus_ASIL; tisLsTarget_perc Rte_SysMon_tisLsTarget_perc; tieTLsRedLevel Rte_SysMon_TLsRedLevel; tisLsTarget Rte_SysMon_LsTarget[SYSMON_CFG_LED_MAX_NO_OF_LS_CHANNELS]; tisSpiStatusFault_ASIL Rte_SysMon_SpiStatusFault_ASIL; tiu32LsErrorBitMask Rte_SysMon_ulErrorBitMask_TI; tisCddBoostStatus E2EPW_SysMon_CddBoostStatus; static tieMountingSide SysMon_UnitTest__MountingSide = eIoHwAbUser_MountingSide_Left; void IoHwAbUser_GetMountingSide(tieMountingSide* peVal) { *peVal = SysMon_UnitTest__MountingSide; } STATIC_AL tiu32Voltage_mV IoHwAbUser_VBatMean; void IoHwAbUser_GetECUSupply(tiu32Voltage_mV* unVBatVal) { //send the measured VBAT value to CddStp *unVBatVal = IoHwAbUser_VBatMean; } static uint8 Crc_CalculateCRC8H2F_ucReturn; FUNC(uint8, CRC_CODE) Crc_CalculateCRC8H2F(P2CONST(uint8, CRC_CONST, CRC_APPL_CONST)Crc_DataPtr, uint32 Crc_Length, uint8 Crc_StartValue8H2F, boolean Crc_IsFirstCall) { return Crc_CalculateCRC8H2F_ucReturn; } void SysMon_InternalCom_Cycle(void) { //do nothing } FUNC(uint32, CRC_CODE) Crc_CalculateCRC32P4 (P2CONST(uint8, CRC_CONST, CRC_APPL_CONST)Crc_DataPtr, uint32 Crc_Length, uint32 Crc_StartValue32, boolean Crc_IsFirstCall) { return Crc_CalculateCRC8H2F_ucReturn; } FUNC(uint32, CRC_CODE) Crc_CalculateCRCTest() { Crc_CalculateCRC8H2F_ucReturn = 420815; return TRUE; } int val = 0; SysMon_EnumErrorIndicationType change_value(int val) { if (val == 0) { return eSysMonErrNone; } else if (val == 1) { return eSysMonErrIndRteTimeout; } else if (val == 2) { return eSysMonErrIndRteAliveCounter; } else if (val == 3) { return eSysMonErrIndRteCrc; } } //tisMsgTimeoutErr SysMon_MsgTimeoutErr; tisMsgCrcSqcErr SysMon_MsgCrcSqcErr; //----------------------------------------------------------------------------- /// \Test Case : Mt_SysMonRx_HandleSignalQualityFail /// /// \Test Case Description /// - Test subject: /// - Function SysMonRx_HandleSignalQualityFail has been called /// /// - Expected test results: /// - All conditions and assigned values mentioned for each test case/step shall be reached and passed. /// //----------------------------------------------------------------------------- void Mt_SysMonRx_HandleSignalQualityFail() { tSysMonSignalQuality Quality; (void)memset(&Quality, 0, sizeof(tSysMonSignalQuality)); Quality.state = eSysMonSigState_Invalid; Quality.monitor.isDebounced = TRUE; Quality.monitor.cnt = 2U; Quality.monitor.cntActivate = 3U; Quality.monitor.cntDeActivate = 3U; SysMonRx_HandleSignalQualityFail(&Quality); AL_UNITTEST_CHECK((int)Quality.state, (int)eSysMonSigState_Invalid, == ); SysMonRx_HandleSignalQualityFail(&Quality); AL_UNITTEST_CHECK((int)Quality.state, (int)eSysMonSigState_Invalid, == ); (void)memset(&Quality, 0, sizeof(tSysMonSignalQuality)); Quality.state = eSysMonSigState_Valid; Quality.monitor.isDebounced = FALSE; Quality.monitor.cnt = 2U; Quality.monitor.cntActivate = 3U; Quality.monitor.cntDeActivate = 3U; SysMonRx_HandleSignalQualityFail(&Quality); SysMonRx_HandleSignalQualityFail(&Quality); AL_UNITTEST_CHECK((int)Quality.state, (int)eSysMonSigState_Invalid, == ); AL_UNITTEST_CHECK((int)Quality.monitor.isDebounced, (int)TRUE, == ); } //----------------------------------------------------------------------------- /// \Test Case : Mt_SysMonCommon_AlwaysValid /// /// \Test Case Description /// - Test subject: /// Function SysMonCommon_AlwaysValid has been called to reach code coverage /// /// - Preconditions: none /// /// - Expected test results: /// - /// //----------------------------------------------------------------------------- void Mt_SysMonCommon_AlwaysValid(void) { SysMonCommon_AlwaysValid(Mt_ucVal); } //----------------------------------------------------------------------------- /// \Test Case : Mt_SysMonRx_initCounterMonitor /// /// \Test Case Description /// - Test subject: /// - Function SysMonRx_initCounterMonitor has been called /// /// - Expected test results: /// - All conditions and assigned values mentioned for each test case/step shall be reached and passed. /// //----------------------------------------------------------------------------- void Mt_SysMonRx_initCounterMonitor(void) { tSysMonCounterMonitor CntMon; (void)memset(&CntMon, 0, sizeof(tSysMonCounterMonitor)); SysMonRx_initCounterMonitor(&CntMon, 10U, 15U); AL_UNITTEST_CHECK((int)CntMon.cnt, (int)0U, == ); AL_UNITTEST_CHECK((int)CntMon.isDebounced, (int)FALSE, == ); AL_UNITTEST_CHECK((int)CntMon.cntActivate, (int)10U, == ); AL_UNITTEST_CHECK((int)CntMon.cntDeActivate, (int)15U, == ); } //----------------------------------------------------------------------------- /// \Test Case : Mt_SysMonRx_initTimerMonitor /// /// \Test Case Description /// - Test subject: /// - Function SysMonRx_initTimerMonitor has been called /// /// - Expected test results: /// - All conditions and assigned values mentioned for each test case/step shall be reached and passed. /// //----------------------------------------------------------------------------- void Mt_SysMonRx_initTimerMonitor(void) { tSysMonTimerMonitor TimerMon; (void)memset(&TimerMon, 0, sizeof(tSysMonTimerMonitor)); SysMonRx_initTimerMonitor(&TimerMon, 50U, 500U); AL_UNITTEST_CHECK((int)TimerMon.toutActivate, (int)50U, == ); AL_UNITTEST_CHECK((int)TimerMon.toutDeActivate, (int)500U, == ); AL_UNITTEST_CHECK((int)TimerMon.isTimeout, (int)FALSE, == ); } //----------------------------------------------------------------------------- /// \Test Case : Mt_SysMonRx_HandleSignalQualitySuccess /// /// \Test Case Description /// - Test subject: /// - Function SysMonRx_HandleSignalQualitySuccess has been called /// /// - Expected test results: /// - All conditions and assigned values mentioned for each test case/step shall be reached and passed. /// //----------------------------------------------------------------------------- void Mt_SysMonRx_HandleSignalQualitySuccess() { tSysMonSignalQuality Quality; (void)memset(&Quality, 0, sizeof(tSysMonSignalQuality)); Quality.state = eSysMonSigState_Valid; Quality.monitor.isDebounced = TRUE; Quality.monitor.cnt = 2U; Quality.monitor.cntActivate = 3U; Quality.monitor.cntDeActivate = 3U; SysMonRx_HandleSignalQualitySuccess(&Quality); AL_UNITTEST_CHECK((int)Quality.state, (int)eSysMonSigState_Valid, == ); SysMonRx_HandleSignalQualitySuccess(&Quality); AL_UNITTEST_CHECK((int)Quality.state, (int)eSysMonSigState_Valid, == ); (void)memset(&Quality, 0, sizeof(tSysMonSignalQuality)); Quality.state = eSysMonSigState_Invalid; Quality.monitor.isDebounced = FALSE; Quality.monitor.cnt = 2U; Quality.monitor.cntActivate = 3U; Quality.monitor.cntDeActivate = 3U; SysMonRx_HandleSignalQualityFail(&Quality); SysMonRx_HandleSignalQualityFail(&Quality); AL_UNITTEST_CHECK((int)Quality.state, (int)eSysMonSigState_Invalid, == ); AL_UNITTEST_CHECK((int)Quality.monitor.isDebounced, (int)TRUE, == ); } //----------------------------------------------------------------------------- /// \Test Case : Mt_SysMonRx_initSignalQuality /// /// \Test Case Description /// - Test subject: /// Function SysMonRx_initSignalQuality has been called to reach code coverage /// /// - Preconditions: none /// /// - Expected test results: /// - /// //----------------------------------------------------------------------------- void Mt_SysMonRx_initSignalQuality(tSysMonSignalQuality* const Mt_pQuality, uint32 Mt_nTcyclicMsec, uint32 Mt_nToutMsec) { SysMonRx_initSignalQuality(Mt_pQuality, Mt_nTcyclicMsec, Mt_nToutMsec); } //----------------------------------------------------------------------------- /// \Test Case : Mt_SysMonRx_initPduQuality /// /// \Test Case Description /// - Test subject: /// Function SysMonRx_initPduQuality has been called to reach code coverage /// /// - Preconditions: none /// /// - Expected test results: /// - /// //----------------------------------------------------------------------------- void Mt_SysMonRx_initPduQuality(tSysMonPduQuality* const Mt_pQuality, uint32 Mt_nTcyclicMsec, uint32 Mt_nToutMsec) { SysMonRx_initPduQuality(Mt_pQuality, Mt_nTcyclicMsec, Mt_nToutMsec); } //----------------------------------------------------------------------------- /// \Test Case : Mt_SysMonRx_HandlePduQualitySuccess /// /// \Test Case Description /// - Test subject: /// Function SysMonRx_HandlePduQualitySuccess has been called to reach code coverage /// /// - Preconditions: none /// /// - Expected test results: /// - /// //----------------------------------------------------------------------------- void Mt_SysMonRx_HandlePduQualitySuccess(tSysMonPduQuality* const Mt_pduQuality) { SysMonRx_HandlePduQualitySuccess(Mt_pduQuality); } //----------------------------------------------------------------------------- /// \Test Case : Mt_SysMonRxHandleDTC_CounterMonitor /// /// \Test Case Description /// - Test subject: /// Function SysMonRxHandleDTC_CounterMonitor has been called to reach code coverage /// /// - Preconditions: none /// /// - Expected test results: /// - /// //----------------------------------------------------------------------------- void Mt_SysMonRxHandleDTC_CounterMonitor(SYSMON_FUNC_PTR_DTC pf, tSysMonCounterMonitor* pMon, boolean isPre) { SysMonRxHandleDTC_CounterMonitor(pf, pMon, isPre); } //----------------------------------------------------------------------------- /// \Test Case : Mt_SysMonRx_HandlePduQualityCounterMonitorSuccess /// /// \Test Case Description /// - Test subject: /// - Function SysMonRx_HandlePduQualityCounterMonitorSuccess has been called /// /// - Expected test results: /// - All conditions and assigned values mentioned for each test case/step shall be reached and passed. /// //----------------------------------------------------------------------------- void Mt_SysMonRx_HandlePduQualityCounterMonitorSuccess(void) { tSysMonCounterMonitor cntMon; (void)memset(&cntMon, 0, sizeof(tSysMonCounterMonitor)); cntMon.cnt = 2U; SysMonRx_HandlePduQualityCounterMonitorSuccess(&cntMon); AL_UNITTEST_CHECK((int)cntMon.cnt, (int)1U, == ); cntMon.isDebounced = TRUE; SysMonRx_HandlePduQualityCounterMonitorSuccess(&cntMon); AL_UNITTEST_CHECK((int)cntMon.isDebounced, (int)FALSE, == ); } //----------------------------------------------------------------------------- /// \Test Case : Mt_SysMonRx_HandlePduQualityCounterMonitorFail /// /// \Test Case Description /// - Test subject: /// - Function SysMonRx_HandlePduQualityCounterMonitorFail has been called /// /// - Expected test results: /// - All conditions and assigned values mentioned for each test case/step shall be reached and passed. /// //----------------------------------------------------------------------------- void Mt_SysMonRx_HandlePduQualityCounterMonitorFail(void) { tSysMonCounterMonitor cntMon; (void)memset(&cntMon, 0, sizeof(tSysMonCounterMonitor)); cntMon.isDebounced = TRUE; cntMon.cntDeActivate = 6U; SysMonRx_HandlePduQualityCounterMonitorFail(&cntMon); SysMonRx_HandlePduQualityCounterMonitorFail(&cntMon); AL_UNITTEST_CHECK((int)cntMon.cnt, (int)2U, == ); (void)memset(&cntMon, 0, sizeof(tSysMonCounterMonitor)); cntMon.isDebounced = FALSE; cntMon.cntActivate = 3U; cntMon.cntDeActivate = 6U; cntMon.cnt = 0; SysMonRx_HandlePduQualityCounterMonitorFail(&cntMon); AL_UNITTEST_CHECK((int)cntMon.cnt, (int)1U, == ); SysMonRx_HandlePduQualityCounterMonitorFail(&cntMon); SysMonRx_HandlePduQualityCounterMonitorFail(&cntMon); AL_UNITTEST_CHECK((int)cntMon.isDebounced, (int)TRUE, == ); } //----------------------------------------------------------------------------- /// \Test Case : Mt_SysMonRx_HandlePduQualityFail /// /// \Test Case Description /// - Test subject: /// - Function SysMonRx_HandlePduQualityFail has been called /// /// - Expected test results: /// - All conditions and assigned values mentioned for each test case/step shall be reached and passed. /// //----------------------------------------------------------------------------- void Mt_SysMonRx_HandlePduQualityFail(void) { //-- Only the part eSysMonErrIndSelfTimeout is getting tested here tSysMonPduQuality Quality; SysMon_EnumErrorIndicationType eErrIndType; (void)memset(&Quality, 0, sizeof(tSysMonPduQuality)); eErrIndType = eSysMonErrIndSelfTimeout; Quality.monitor.monitorSelfTimer.isTimeout = TRUE; Quality.state = eSysMonPduState_Passed; SysMonRx_HandlePduQualityFail(&Quality, eErrIndType); AL_UNITTEST_CHECK((int)Quality.state, (int)eSysMonPduState_Failed, == ); } //----------------------------------------------------------------------------- /// \Test Case : Mt_SysMon_isInSet /// /// \Test Case Description /// - Test subject: /// - Function SysMon_isInSet has been called /// /// - Expected test results: /// - All conditions and assigned values mentioned for each test case/step shall be reached and passed. /// //----------------------------------------------------------------------------- void Mt_SysMon_isInSet(void) { const uint8 SET_01[] = { 0x01U, 0x02U, 0x03U, 0x05U, 0x07U, 0x08U }; const uint8 count_01 = sizeof(SET_01) / sizeof(SET_01[0U]); const uint8 SET_02[] = { 0x01U }; const uint8 count_02 = sizeof(SET_02) / sizeof(SET_02[0U]); struct sSet { const uint8* const dataSet; uint8 count; uint8 value; boolean isExpected; }; const struct sSet asTestStepData[] = { {SET_01, count_01, 0x04U, FALSE}, {SET_01, count_01, 0x01U, TRUE}, {SET_01, count_01, 0x02U, TRUE}, {SET_01, count_01, 0x08U, TRUE}, {SET_02, count_02, 0x08U, FALSE}, {SET_02, count_02, 0x01U, TRUE} }; const uint32 COUNT = sizeof(asTestStepData) / sizeof(asTestStepData[0]); boolean retVal; for (uint32 i = 0; i < COUNT; i++) { //boolean SysMon_isInSet(const uint8 set[], const uint8 count, const uint8 element) retVal = SysMon_isInSet_uint8(asTestStepData[i].dataSet, asTestStepData[i].count, asTestStepData[i].value); AL_UNITTEST_CHECK((int)retVal, (int)asTestStepData[i].isExpected, == ); } } //----------------------------------------------------------------------------- /// \Test Case : Mt_SysMon_Data_Get_DynamicBoostVoltageEnable /// /// \Test Case Description /// - Test subject: /// - Function SysMon_Data_Get_DynamicBoostVoltageEnable has been called to reach code coverage /// /// - Expected test results: /// - All conditions and assigned values mentioned for each test case/step shall be reached and passed. /// //----------------------------------------------------------------------------- void Mt_SysMon_Data_Get_DynamicBoostVoltageEnable(void) { SysMon_Data_Get_DynamicBoostVoltageEnable(); } //----------------------------------------------------------------------------- /// \Test Case : Mt_SysMon_Data_Get_BoostVoltageHeadroom /// /// \Test Case Description /// - Test subject: /// - Function SysMon_Data_Get_BoostVoltageHeadroom has been called to reach code coverage /// /// - Expected test results: /// - All conditions and assigned values mentioned for each test case/step shall be reached and passed. /// //----------------------------------------------------------------------------- void Mt_SysMon_Data_Get_BoostVoltageHeadroom(void) { SysMon_Data_Get_BoostVoltageHeadroom(); } //----------------------------------------------------------------------------- /// \Test Case : Mt_SysMon_Data_Get_LMxx_LED_OVER_VOLTAGE_Max /// /// \Test Case Description /// - Test subject: /// - Function SysMon_Data_Get_LMxx_LED_OVER_VOLTAGE_Max has been called to reach code coverage /// /// - Expected test results: /// - All conditions and assigned values mentioned for each test case/step shall be reached and passed. /// //----------------------------------------------------------------------------- void Mt_SysMon_Data_Get_LMxx_LED_OVER_VOLTAGE_Max(uint32* pulMaxLMxx_LED_OVER_VOLTAGE) { SysMon_Data_Get_LMxx_LED_OVER_VOLTAGE_Max(pulMaxLMxx_LED_OVER_VOLTAGE); } //----------------------------------------------------------------------------- /// \Test Case : Mt_SysMon_Data_IsCodingDataValid /// /// \Test Case Description /// - Test subject: /// - Function SysMon_Data_IsCodingDataValid has been called to reach code coverage /// /// - Expected test results: /// - All conditions and assigned values mentioned for each test case/step shall be reached and passed. /// //----------------------------------------------------------------------------- void Mt_SysMon_Data_IsCodingDataValid(void) { SysMon_Data_IsCodingDataValid(); } //----------------------------------------------------------------------------- /// \Test Case : Mt_SysMon_Data_Get_T_OAV /// /// \Test Case Description /// - Test subject: /// - Function SysMon_Data_Get_T_OAV has been called to reach code coverage /// /// - Expected test results: /// - All conditions and assigned values mentioned for each test case/step shall be reached and passed. /// //----------------------------------------------------------------------------- void Mt_SysMon_Data_Get_T_OAV(void) { SysMon_Data_Get_T_OAV(); } //----------------------------------------------------------------------------- /// \Test Case : Mt_SysMon_Data_GetaLEDChParamPtr /// /// \Test Case Description /// - Test subject: /// - Function SysMon_Data_GetaLEDChParamPtr has been called to reach code coverage /// /// - Expected test results: /// - All conditions and assigned values mentioned for each test case/step shall be reached and passed. /// //----------------------------------------------------------------------------- void Mt_SysMon_Data_GetaLEDChParamPtr(void) { SysMon_Data_GetaLEDChParamPtr(); } //----------------------------------------------------------------------------- /// \Test Case : Mt_SysMon_Data_Get_BoostParamPtr /// /// \Test Case Description /// - Test subject: /// - Function SysMon_Data_Get_BoostParamPtr has been called to reach code coverage /// /// - Expected test results: /// - All conditions and assigned values mentioned for each test case/step shall be reached and passed. /// //----------------------------------------------------------------------------- void Mt_SysMon_Data_Get_BoostParamPtr(void) { SysMon_Data_Get_BoostParamPtr(); } //----------------------------------------------------------------------------- /// \Test Case : Mt_SysMon_LedCtrl_Cycle /// /// \Test Case Description /// - Test subject: /// - Function SysMon_LedCtrl_Cycle has been called to reach code coverage /// /// - Expected test results: /// - All conditions and assigned values mentioned for each test case/step shall be reached and passed. /// //----------------------------------------------------------------------------- void Mt_SysMon_LedCtrl_Cycle(void) { extern STATIC_AL const tSysMon_Data_BoostParam* SysMon_LedCtrl_pBoostParam; riSysMonInit(); SysMon_Data_boIsCodingDataValid = TRUE; SysMon_LedCtrl_Cycle(); //riSysMonInit(); //SysMon_Data_boIsCodingDataValid = TRUE; //uint8 *temp = SysMon_LedCtrl_pBoostParam->ucDynamicBoostVoltageEnable; //*temp = 1U; ////SysMon_LedCtrl_pBoostParam->ucDynamicBoostVoltageEnable = 1U; //SysMon_LedCtrl_Cycle(); } //----------------------------------------------------------------------------- /// \Test Case : Mt_SysMon_LedCtrl_Init /// /// \Test Case Description /// - Test subject: /// - Function SysMon_LedCtrl_Init has been called to reach code coverage /// /// - Expected test results: /// - All conditions and assigned values mentioned for each test case/step shall be reached and passed. /// //----------------------------------------------------------------------------- void Mt_SysMon_LedCtrl_Init(void) { SysMon_LedCtrl_Init(pLsTarget, pLsTarget_ASIL); } //----------------------------------------------------------------------------- /// \Test Case : Mt_SysMonRx_LightCtrlMsg1_Init /// /// \Test Case Description /// - Test subject: /// - Function SysMonRx_LightCtrlMsg1_Init has been called to reach code coverage /// /// - Expected test results: /// - All conditions and assigned values mentioned for each test case/step shall be reached and passed. /// //----------------------------------------------------------------------------- void Mt_SysMonRx_LightCtrlMsg1_Init(void) { tSysMonCounterMonitor Rte_msg_LightCtrlMsg1; extern tSysMonCanMsg_LightCtrlMsg1 msg_LightCtrlMsg1; tSysMonCanMsg_LightCtrlMsg1 Rte_Canmsg_LightCtrlMsg1; SysMonRx_LightCtrlMsg1_Init(); AL_UNITTEST_CHECK(msg_LightCtrlMsg1.TurnIndicatorState, SysMon_TurnIndicator_Invalid_State, == ); AL_UNITTEST_CHECK(msg_LightCtrlMsg1.signals.sig_Chcksm_1.valueLastValid, SYSMON_INITIAL_CRC_SIG_VAL, == ); AL_UNITTEST_CHECK(Rte_Canmsg_LightCtrlMsg1.signals.sig_CornerLampCmd_Right.valueLastValid, 0, ==); AL_UNITTEST_CHECK(Rte_Canmsg_LightCtrlMsg1.signals.sig_CornerLampCmd_Left.valueLastValid, 0 , ==); AL_UNITTEST_CHECK(Rte_Canmsg_LightCtrlMsg1.signals.sig_ReverseLightCmd.valueLastValid, 0, ==); AL_UNITTEST_CHECK(Rte_Canmsg_LightCtrlMsg1.signals.sig_FlowBrakeLightCmd.valueLastValid, 0, == ); AL_UNITTEST_CHECK(Rte_Canmsg_LightCtrlMsg1.signals.sig_FlowTurningLightCmd_Right.valueLastValid, 0, == ); AL_UNITTEST_CHECK(Rte_Canmsg_LightCtrlMsg1.signals.sig_FlowTurningLightCmd_Left.valueLastValid, 0, == ); AL_UNITTEST_CHECK(Rte_msg_LightCtrlMsg1.isDebounced, FALSE, == ); } //----------------------------------------------------------------------------- /// \Test Case : Mt_rrCan1LightCtrlMsg1Msg /// /// \Test Case Description /// - Test subject: /// - Function Mt_rrCan1LightCtrlMsg1Msg has been called to reach code coverage /// /// - Expected test results: /// - All conditions and assigned values mentioned for each test case/step shall be reached and passed. /// //----------------------------------------------------------------------------- void Mt_rrCan1LightCtrlMsg1Msg() { extern tSysMonCanMsg_LightCtrlMsg1 msg_LightCtrlMsg1; extern uint32 SysMon_WaitCntUntilDtcAllowed; extern tisSysVoltStatus SysMon_SysVoltStatus; val = 0; rrCan1LightCtrlMsg1Msg(); val = 1; rrCan1LightCtrlMsg1Msg(); val = 2; rrCan1LightCtrlMsg1Msg(); val = 3; rrCan1LightCtrlMsg1Msg(); SysMon_WaitCntUntilDtcAllowed = 0u; SysMon_boBusOff = FALSE; rrCan1LightCtrlMsg1Msg(); riSysMonInit(); SysMon_Data_boIsCodingDataValid = TRUE; SysMon_eMountingSide = eLeftMoutningSide; SysMon_SysVoltStatus.sSupplyVoltStatus.eVoltSts = 1u; msg_LightCtrlMsg1.quality.state = eSysMonPduState_Passed; SysMon_boBusOff = FALSE; SysMon_MsgTimeoutErr.bLightCtrlMsg1To = FALSE; msg_LightCtrlMsg1.signals.sig_TurningLightCmd_Left.valueLastRx = SIG_VAL_ONE; SysMonRx_WriteRTE_LightCtrlMsg1(); AL_UNITTEST_CHECK(Rte_SysMon_ReqTurnIndFct.eTurnIndReq, ACT_REQ_OFF, == ); SysMon_MsgTimeoutErr.bLightCtrlMsg1To = FALSE; msg_LightCtrlMsg1.TurnIndicatorState = SysMon_TurnIndicator_Valid_State; SysMonRx_WriteRTE_LightCtrlMsg1(); AL_UNITTEST_CHECK(Rte_SysMon_ReqTurnIndFct.eTurnIndReq, ACT_REQ_ON, == ); SysMon_MsgTimeoutErr.bLightCtrlMsg1To = FALSE; //msg_LightCtrlMsg1.TurnIndicatorState = SysMon_TurnIndicator_unknown_State; msg_LightCtrlMsg1.signals.sig_FlowTurningLightCmd_Left.valueLastRx = SIG_VAL_ONE; SysMonRx_WriteRTE_LightCtrlMsg1(); AL_UNITTEST_CHECK(Rte_SysMon_ReqTurnIndFct.eTurnIndMode, ACTIVATION_ANIMATION1, == ); //Right Side riSysMonInit(); SysMon_Data_boIsCodingDataValid = TRUE; SysMon_eMountingSide = eRightMoutningSide; msg_LightCtrlMsg1.quality.state = eSysMonPduState_Passed; SysMon_boBusOff = FALSE; SysMon_MsgTimeoutErr.bLightCtrlMsg1To = FALSE;// msg_LightCtrlMsg1.signals.sig_TurningLightCmd_Right.valueLastRx = SIG_VAL_ONE; msg_LightCtrlMsg1.TurnIndicatorState = SysMon_TurnIndicator_Valid_State; SysMonRx_WriteRTE_LightCtrlMsg1(); AL_UNITTEST_CHECK(Rte_SysMon_ReqTurnIndFct.eTurnIndReq, ACT_REQ_ON, == ); SysMon_Data_boIsCodingDataValid = TRUE; SysMon_eMountingSide = eRightMoutningSide; msg_LightCtrlMsg1.quality.state = eSysMonPduState_Passed; SysMon_boBusOff = FALSE; SysMon_MsgTimeoutErr.bLightCtrlMsg1To = FALSE; msg_LightCtrlMsg1.signals.sig_TurningLightCmd_Right.valueLastRx = SIG_VAL_ONE; msg_LightCtrlMsg1.TurnIndicatorState = SysMon_TurnIndicator_Invalid_State; SysMonRx_WriteRTE_LightCtrlMsg1(); //AL_UNITTEST_CHECK(Rte_SysMon_ReqTurnIndFct.eTurnIndReq, ACT_REQ_OFF, == ); SysMon_Data_boIsCodingDataValid = TRUE; SysMon_eMountingSide = eRightMoutningSide; msg_LightCtrlMsg1.quality.state = eSysMonPduState_Passed; SysMon_boBusOff = FALSE; SysMon_MsgTimeoutErr.bLightCtrlMsg1To = FALSE; msg_LightCtrlMsg1.signals.sig_TurningLightCmd_Right.valueLastRx = SIG_VAL_ONE; msg_LightCtrlMsg1.TurnIndicatorState = SysMon_TurnIndicator_Invalid_State; msg_LightCtrlMsg1.signals.sig_FlowTurningLightCmd_Right.valueLastRx = SIG_VAL_ONE; SysMonRx_WriteRTE_LightCtrlMsg1(); AL_UNITTEST_CHECK(Rte_SysMon_ReqTurnIndFct.eTurnIndMode, ACTIVATION_ANIMATION1, == ); SysMon_Data_boIsCodingDataValid = TRUE; SysMon_eMountingSide = eRightMoutningSide; msg_LightCtrlMsg1.quality.state = eSysMonPduState_Passed; SysMon_boBusOff = FALSE; SysMon_MsgTimeoutErr.bLightCtrlMsg1To = FALSE; msg_LightCtrlMsg1.signals.sig_TurningLightCmd_Right.valueLastRx = SIG_VAL_ONE; msg_LightCtrlMsg1.TurnIndicatorState = SysMon_TurnIndicator_Invalid_State; msg_LightCtrlMsg1.signals.sig_FlowTurningLightCmd_Right.valueLastRx = SIG_VAL_ZERO; SysMonRx_WriteRTE_LightCtrlMsg1(); AL_UNITTEST_CHECK(Rte_SysMon_ReqTurnIndFct.eTurnIndMode, NORMAL_ACTIVATION, == ); SysMon_Data_boIsCodingDataValid = TRUE; SysMon_eMountingSide = eRightMoutningSide; msg_LightCtrlMsg1.quality.state = eSysMonPduState_Passed; SysMon_boBusOff = FALSE; SysMon_MsgTimeoutErr.bLightCtrlMsg1To = FALSE; msg_LightCtrlMsg1.signals.sig_TurningLightCmd_Right.valueLastRx = SIG_VAL_ZERO; //msg_LightCtrlMsg1.TurnIndicatorState = SysMon_TurnIndicator_Invalid_State; //msg_LightCtrlMsg1.signals.sig_FlowTurningLightCmd_Right.valueLastRx = SIG_VAL_ZERO; SysMonRx_WriteRTE_LightCtrlMsg1(); AL_UNITTEST_CHECK(Rte_SysMon_ReqTurnIndFct.eTurnIndReq, ACT_REQ_OFF, == ); AL_UNITTEST_CHECK(Rte_SysMon_ReqTurnIndFct.eTurnIndMode, NORMAL_ACTIVATION, == ); } void Mt_SysMonRxProcessSignalGroup_LightCtrlMsg1_success(void) { //tSysMonSG_LightCtrlMsg1 * pData; extern STATIC_AL tSysMonCanMsg_LightCtrlMsg1 msg_LightCtrlMsg1; SysMonRxProcessSignalGroup_LightCtrlMsg1_success(&(msg_LightCtrlMsg1.signals)); } //----------------------------------------------------------------------------- /// \Test Case : Mt_SysMon_Data_SetCodingDataStatus /// /// \Test Case Description /// - Test subject: /// - Function Mt_SysMon_Data_SetCodingDataStatus has been called to reach code coverage /// /// - Expected test results: /// - All conditions and assigned values mentioned for each test case/step shall be reached and passed. /// //----------------------------------------------------------------------------- void Mt_rrCan1LightCtrlMsg2Msg(void) { extern tSysMonCanMsg_LightCtrlMsg2 msg_LightCtrlMsg2; /*printf("\n%d\n", Rte_ReqHighBeamFct.eHighBeamQty); AL_UNITTEST_CHECK(Rte_ReqHighBeamFct.eHighBeamQty, QTY_OK, == ); AL_UNITTEST_CHECK(Rte_ReqHighBeamFct.eHighBeamReq, ACT_REQ_ON, == ); AL_UNITTEST_CHECK(Rte_ReqDayTimeRunningLightFct.bfDrlReqQty, QTY_OK, == ); AL_UNITTEST_CHECK(Rte_ReqDayTimeRunningLightFct.eDrlReq, ACT_REQ_ON, == ); AL_UNITTEST_CHECK(Rte_ReqFogLightFct.bfFrontFogLightQty, QTY_OK, == ); AL_UNITTEST_CHECK(Rte_ReqFogLightFct.eFrontFogLightReq, ACT_REQ_ON, == );*/ val = 0; rrCan1LightCtrlMsg2Msg(); val = 1; rrCan1LightCtrlMsg2Msg(); val = 2; rrCan1LightCtrlMsg2Msg(); val = 3; rrCan1LightCtrlMsg2Msg(); riSysMonInit(); SysMon_Data_boIsCodingDataValid = TRUE; msg_LightCtrlMsg2.quality.state = eSysMonPduState_Passed; SysMon_boBusOff = FALSE; SysMon_MsgTimeoutErr.bLightCtrlMsg2To = FALSE; SysMon_eMountingSide = eLeftMoutningSide; //Low Beam //msg_LightCtrlMsg2.signals.sig_LowBeamCmd_Left.valueLastRx = SIG_VAL_ONE; SysMonRx_WriteRTE_LightCtrlMsg2(); AL_UNITTEST_CHECK(Rte_ReqLowBeamFct.bfLowBeamQty, QTY_OK, == ); AL_UNITTEST_CHECK(Rte_ReqLowBeamFct.eLowBeamReq, ACT_REQ_OFF, == ); msg_LightCtrlMsg2.signals.sig_LowBeamCmd_Left.valueLastRx = SIG_VAL_ONE; SysMonRx_WriteRTE_LightCtrlMsg2(); AL_UNITTEST_CHECK(Rte_ReqLowBeamFct.bfLowBeamQty, QTY_OK, == ); AL_UNITTEST_CHECK(Rte_ReqLowBeamFct.eLowBeamReq, ACT_REQ_ON, == ); //High Beam AL_UNITTEST_CHECK(Rte_ReqHighBeamFct.eHighBeamQty, QTY_OK, == ); AL_UNITTEST_CHECK(Rte_ReqHighBeamFct.eHighBeamReq, ACT_REQ_OFF, == ); msg_LightCtrlMsg2.signals.sig_HighBeamCmd_Left.valueLastRx = SIG_VAL_ONE; SysMonRx_WriteRTE_LightCtrlMsg2(); AL_UNITTEST_CHECK(Rte_ReqHighBeamFct.eHighBeamReq, ACT_REQ_ON, == ); //DRL AL_UNITTEST_CHECK(Rte_ReqDayTimeRunningLightFct.bfDrlReqQty, QTY_OK, == ); AL_UNITTEST_CHECK(Rte_ReqDayTimeRunningLightFct.eDrlReq, ACT_REQ_OFF, == ); AL_UNITTEST_CHECK(Rte_ReqDayTimeRunningLightFct.eDrlMode, NORMAL_MODE, == ); msg_LightCtrlMsg2.signals.sig_DayRunningLightCmd_Left.valueLastRx = SIG_VAL_ONE; SysMonRx_WriteRTE_LightCtrlMsg2(); AL_UNITTEST_CHECK(Rte_ReqDayTimeRunningLightFct.eDrlReq, ACT_REQ_ON, == ); // msg_LightCtrlMsg2.signals.sig_FrontFogCmd_Left.valueLastRx = SIG_VAL_ONE; SysMonRx_WriteRTE_LightCtrlMsg2(); AL_UNITTEST_CHECK(Rte_ReqFogLightFct.eFrontFogLightReq, ACT_REQ_ON, == ); msg_LightCtrlMsg2.signals.sig_FrontPositionLightCmd_Left.valueLastRx = SIG_VAL_ONE; SysMonRx_WriteRTE_LightCtrlMsg2(); AL_UNITTEST_CHECK(Rte_ReqPositionLightFct.eFrontPosLightReq, ACT_REQ_ON, == ); SysMon_eMountingSide = eRightMoutningSide; msg_LightCtrlMsg2.signals.sig_LowBeamCmd_Right.valueLastRx = SIG_VAL_ONE; SysMonRx_WriteRTE_LightCtrlMsg2(); AL_UNITTEST_CHECK(Rte_ReqLowBeamFct.eLowBeamReq, ACT_REQ_ON, == ); msg_LightCtrlMsg2.signals.sig_HighBeamCmd_Right.valueLastRx = SIG_VAL_ONE; SysMonRx_WriteRTE_LightCtrlMsg2(); AL_UNITTEST_CHECK(Rte_ReqHighBeamFct.eHighBeamReq, ACT_REQ_ON, == ); msg_LightCtrlMsg2.signals.sig_DayRunningLightCmd_Right.valueLastRx = SIG_VAL_ONE; SysMonRx_WriteRTE_LightCtrlMsg2(); AL_UNITTEST_CHECK(Rte_ReqDayTimeRunningLightFct.eDrlReq, ACT_REQ_ON, == ); msg_LightCtrlMsg2.signals.sig_FrontFogCmd_Right.valueLastRx = SIG_VAL_ONE; SysMonRx_WriteRTE_LightCtrlMsg2(); AL_UNITTEST_CHECK(Rte_ReqFogLightFct.eFrontFogLightReq, ACT_REQ_ON, == ); msg_LightCtrlMsg2.signals.sig_FrontPositionLightCmd_Right.valueLastRx = SIG_VAL_ONE; SysMonRx_WriteRTE_LightCtrlMsg2(); AL_UNITTEST_CHECK(Rte_ReqPositionLightFct.eFrontPosLightReq, ACT_REQ_ON, == ); } //----------------------------------------------------------------------------- /// \Test Case : Mt_SysMon_Data_SetCodingDataStatus /// /// \Test Case Description /// - Test subject: /// - Function Mt_SysMon_Data_SetCodingDataStatus has been called to reach code coverage /// /// - Expected test results: /// - All conditions and assigned values mentioned for each test case/step shall be reached and passed. /// //----------------------------------------------------------------------------- void Mt_SysMonRx_LightCtrlMsg2_Init(void) { SysMonRx_LightCtrlMsg2_Init(); } void Mt_SysMonRxProcessSignalGroup_LightCtrlMsg2_success(void) { STATIC_AL tSysMonCanMsg_LightCtrlMsg2 msg_LightCtrlMsg2; SysMonRxProcessSignalGroup_LightCtrlMsg2_success(&(msg_LightCtrlMsg2.signals)); } void Mt_rrCan1VedCmdMsg(void) { val = 0; rrCan1VedCmdMsg(); AL_UNITTEST_CHECK(Rte_SysMon_NetworkMngmnt.eSleepReq, 1u, == ); AL_UNITTEST_CHECK(Rte_SysMon_VehicleSpeedSts.eVehicleSpeedQty, QTY_OK, == ); AL_UNITTEST_CHECK(Rte_SysMon_ReqAnimationFct.bfAnimationReqQty, QTY_OK, == ); AL_UNITTEST_CHECK(Rte_SysMon_NetworkMngmnt.bfNetworkMngmntReqQty, QTY_OK, == ); AL_UNITTEST_CHECK(Rte_SysMon_IgnitioinSts.bfIgnitionStsQty, QTY_OK, == ); AL_UNITTEST_CHECK(Rte_SysMon_IgnitioinSts.eIgnitionSts, IGN_OFF, == ); AL_UNITTEST_CHECK(Rte_SysMon_IgnitioinSts.bfStrtStpStsQty, QTY_OK, == ); AL_UNITTEST_CHECK(Rte_SysMon_IgnitioinSts.eStrtStpSts, ENGN_OFF, == ); val = 1; rrCan1VedCmdMsg(); val = 2; rrCan1VedCmdMsg(); val = 3; rrCan1VedCmdMsg(); } void Mt_SysMonRxForwardToFctr_VED_CMD(void) { extern STATIC_AL tSysMonCanMsg_VED_CMD msg_VED_CMD; val = 0; rrCan1VedCmdMsg(); msg_VED_CMD.signals.sig_VED_Sleep_Req.value = NW_SLEEP_PREPARE; SysMonRxForwardToFctr_VED_CMD(); AL_UNITTEST_CHECK(Rte_SysMon_NetworkMngmnt.eSleepReq, PREPARE_SLEEP,==); msg_VED_CMD.signals.sig_VED_Sleep_Req.value = NW_SLEEP_CONFIRM; SysMonRxForwardToFctr_VED_CMD(); AL_UNITTEST_CHECK(Rte_SysMon_NetworkMngmnt.eSleepReq, CONFIRM_SLEEP, == ); msg_VED_CMD.signals.sig_VED_Sleep_Req.value = NW_SLEEP_FINALIZE; SysMonRxForwardToFctr_VED_CMD(); AL_UNITTEST_CHECK(Rte_SysMon_NetworkMngmnt.eSleepReq, FINALIZE_SLEEP, == ); msg_VED_CMD.signals.sig_VED_Sleep_Req.value = 255u; SysMonRxForwardToFctr_VED_CMD(); AL_UNITTEST_CHECK(Rte_SysMon_NetworkMngmnt.eSleepReq, INIT, == ); //precondition SysMon_Data_boIsCodingDataValid = TRUE; msg_VED_CMD.quality.state = eSysMonPduState_Passed; SysMon_eMountingSide = eLeftMoutningSide; msg_VED_CMD.signals.sig_VED_VhclSpd.quality.state = eSysMonSigState_Invalid; msg_VED_CMD.signals.sig_VED_CeremonyModeSet.quality.state = eSysMonSigState_Invalid; msg_VED_CMD.signals.sig_VED_StrtStpStus.quality.state = eSysMonSigState_Invalid; msg_VED_CMD.signals.sig_VED_PwrMd.quality.state = eSysMonSigState_Invalid; SysMonRxForwardToFctr_VED_CMD(); AL_UNITTEST_CHECK(Rte_SysMon_VehicleSpeedSts.eVehicleSpeedQty, QTY_NOT_OK, == ); AL_UNITTEST_CHECK(Rte_SysMon_ReqAnimationFct.bfAnimationReqQty, QTY_NOT_OK, == ); AL_UNITTEST_CHECK(Rte_SysMon_NetworkMngmnt.bfNetworkMngmntReqQty, QTY_NOT_OK, == ); AL_UNITTEST_CHECK(Rte_SysMon_IgnitioinSts.bfStrtStpStsQty, QTY_NOT_OK, == ); AL_UNITTEST_CHECK(Rte_SysMon_IgnitioinSts.bfIgnitionStsQty, QTY_NOT_OK, == ); msg_VED_CMD.quality.state = eSysMonPduState_Failed; SysMonRxForwardToFctr_VED_CMD(); AL_UNITTEST_CHECK(Rte_SysMon_NetworkMngmnt.bfNetworkMngmntReqQty, QTY_NOT_OK, == ); AL_UNITTEST_CHECK(Rte_SysMon_VehicleSpeedSts.eVehicleSpeedQty, QTY_NOT_OK, == ); AL_UNITTEST_CHECK(Rte_SysMon_IgnitioinSts.bfIgnitionStsQty, QTY_NOT_OK, == ); AL_UNITTEST_CHECK(Rte_SysMon_ReqAnimationFct.bfAnimationReqQty, QTY_NOT_OK, == ); //precondition SysMon_Data_boIsCodingDataValid = TRUE; msg_VED_CMD.quality.state = eSysMonPduState_Passed; SysMon_eMountingSide = eLeftMoutningSide; msg_VED_CMD.signals.sig_VED_PwrMd.quality.state = eSysMonSigState_Valid; msg_VED_CMD.signals.sig_VED_PwrMd.value = POWER_MODE_IGN_ON; SysMonRxForwardToFctr_VED_CMD(); AL_UNITTEST_CHECK(Rte_SysMon_IgnitioinSts.eIgnitionSts, IGN_ON, == ); //precondition SysMon_Data_boIsCodingDataValid = TRUE; msg_VED_CMD.quality.state = eSysMonPduState_Passed; SysMon_eMountingSide = eLeftMoutningSide; //msg_VED_CMD.signals.sig_VED_StrtStpStus.quality.state = eSysMonSigState_Valid; //pre-condition msg_VED_CMD.signals.sig_VED_StrtStpStus.quality.state = eSysMonSigState_Valid; msg_VED_CMD.signals.sig_VED_StrtStpStus.value = STEPPER_STATUS_CRANKING; SysMonRxForwardToFctr_VED_CMD(); AL_UNITTEST_CHECK(Rte_SysMon_IgnitioinSts.eStrtStpSts, ENGN_CRANKING, == ); msg_VED_CMD.signals.sig_VED_StrtStpStus.value = STEPPER_STATUS_RUNNING; SysMonRxForwardToFctr_VED_CMD(); AL_UNITTEST_CHECK(Rte_SysMon_IgnitioinSts.eStrtStpSts, ENGN_RUNNING, == ); msg_VED_CMD.signals.sig_VED_StrtStpStus.value = STEPPER_STATUS_INVALID; SysMonRxForwardToFctr_VED_CMD(); AL_UNITTEST_CHECK(Rte_SysMon_IgnitioinSts.eStrtStpSts, ENGN_INVALID, == ); } void Mt_SysMonRx_getSpeedState_VED_CMD(void) { extern STATIC_AL tSysMonCanMsg_VED_CMD msg_VED_CMD; msg_VED_CMD.signals.sig_VED_VhclSpd.value = 200u; //speed is less than 510 kmph and greater than 4kmph SysMonRx_getSpeedState_VED_CMD(); msg_VED_CMD.signals.sig_VED_VhclSpd.value = 600u; //speed is greater than 510 kmph SysMonRx_getSpeedState_VED_CMD(); } void Mt_SysMonTx_StatesInfo_Init(void) { SysMonTx_StatesInfo_Init(); //SysMonTx_LhsStatesInfo_Init(); //SysMonTx_RhsStatesInfo_Init(); } void Mt_SysMonTx_RhsStatesInfo_PrepareForCan(void) { //extern SysMon_EnumEcuMountingSide SysMon_eMountingSide; riSysMonInit(); Rte_SysMon_tieMountingSide = eIoHwAbUser_MountingSide_Right; Rte_SysMon_tieMountingSideRaw = eIoHwAbUser_MountingSideRaw_Right; //SysMon_eMountingSide = eRightMoutningSide; Rte_SysMon_tisStatusSpinningFront.eLWRProgress = STP_PROGRESS_NO_ACTION; rpSysMon10ms(); Rte_SysMon_tisStatusSpinningFront.eLWRProgress = STP_PROGRESS_MOVING_DOWN; rpSysMon10ms(); Rte_SysMon_tisStatusSpinningFront.eLWRProgress = STP_PROGRESS_MOVING_UP; rpSysMon10ms(); Rte_SysMon_tisStatusSpinningFront.eLWRProgress = STP_PROGRESS_STALLED; rpSysMon10ms(); Rte_SysMon_tisStatusSpinningFront.eLWRProgress = STP_PROGRESS_WAITING; rpSysMon10ms(); Rte_SysMon_tisStatusSpinningFront.eLWRProgress = STP_PROGRESS_ERROR; rpSysMon10ms(); Rte_SysMon_tisStatusSpinningFront.eLWRProgress = 199u; rpSysMon10ms(); Rte_SysMon_tisStatusSpinningFront.bfLWRFaultStatus = STP_FAULT_NO_POWER; rpSysMon10ms(); Rte_SysMon_tisStatusSpinningFront.bfLWRFaultStatus = STP_FAULT_NO_POWER_BflMask; rpSysMon10ms(); Rte_SysMon_tisStatusSpinningFront.bfLWRFaultStatus = STP_FAULT_UNDER_POWER_BflMask; rpSysMon10ms(); Rte_SysMon_tisStatusSpinningFront.bfLWRFaultStatus = STP_FAULT_OVER_POWER_BflMask; rpSysMon10ms(); Rte_SysMon_tisStatusSpinningFront.bfLWRFaultStatus = STP_FAULT_OPEN_CIRCUIT_BflMask; rpSysMon10ms(); Rte_SysMon_tisStatusSpinningFront.bfLWRFaultStatus = STP_FAULT_SHORT_CIRCUIT_BflMask; rpSysMon10ms(); Rte_SysMon_tisStatusSpinningFront.bfLWRFaultStatus = STP_FAULT_UNDER_TEMPERATURE_BflMask; rpSysMon10ms(); Rte_SysMon_tisStatusSpinningFront.bfLWRFaultStatus = STP_FAULT_OVER_TEMPERATURE_BflMask; rpSysMon10ms(); Rte_SysMon_tisStatusSpinningFront.bfLWRFaultStatus = 199u; rpSysMon10ms(); Rte_SysMon_AnimationFctSts.eAnimationModeSts = ANIM_MODE_MODE1; rpSysMon10ms(); Rte_SysMon_AnimationFctSts.eAnimationModeSts = ANIM_MODE_MODE2; rpSysMon10ms(); Rte_SysMon_AnimationFctSts.eAnimationModeSts = ANIM_MODE_MODE3; rpSysMon10ms(); Rte_SysMon_AnimationFctSts.eAnimationModeSts = ANIM_MODE_MODE4; rpSysMon10ms(); Rte_SysMon_AnimationFctSts.eAnimationModeSts = 199u; rpSysMon10ms(); SysMonTx_RhsStatesInfo_Init(); } void Mt_SysMonTx_Handle_FctR_Status_StatesInfo(void) { Rte_SysMon_tisNetworkMngmntSts.eSleepSts = NORMAL_MODE; rpSysMon10ms(); AL_UNITTEST_CHECK(Rte_SysMon_tisNetworkMngmntSts.eSleepSts, NORMAL_MODE - 1u, == ); Rte_SysMon_tisNetworkMngmntSts.eSleepSts = SLEEP_PREPARING; rpSysMon10ms(); //AL_UNITTEST_CHECK(Rte_SysMon_tisNetworkMngmntSts.eSleepSts, SLEEP_PREPARING - 1u, == ); Rte_SysMon_tisNetworkMngmntSts.eSleepSts = SLEEP_CONFIRMED; rpSysMon10ms(); //AL_UNITTEST_CHECK(Rte_SysMon_tisNetworkMngmntSts.eSleepSts, SLEEP_CONFIRMED - 1u, == ); Rte_SysMon_tisNetworkMngmntSts.eSleepSts = SLEEP_REQ_DENEID; rpSysMon10ms(); //AL_UNITTEST_CHECK(Rte_SysMon_tisNetworkMngmntSts.eSleepSts, SLEEP_REQ_DENEID - 1u, == ); Rte_SysMon_tisNetworkMngmntSts.eSleepSts = 199u; rpSysMon10ms(); //AL_UNITTEST_CHECK(Rte_SysMon_tisNetworkMngmntSts.eSleepSts, 199u, == ); } void Mt_SysMon_WriteRTE(void) { //SysMon_WriteRTE(); //riSysMonInit(); extern uint8 SysMon_ucLbTimerDelay; extern boolean SysMon_bLBDelayStart; SysMon_bLBDelayStart = TRUE; SysMon_ucLbTimerDelay = 1; SysMon_WriteRTE(); riSysMonInit(); E2EPW_SysMon_CddLedStatus_ASIL.asStatus[2].eChnSts = LED_STATUS_OFF; rpSysMon10ms(); AL_UNITTEST_CHECK(Rte_SysMon_LsSafetyStatusError[2].eStatOn, eStatusOnOff_STAT_OFF, ==); E2EPW_SysMon_CddLedStatus_ASIL.asStatus[4].eChnSts = LED_STATUS_ON; rpSysMon10ms(); AL_UNITTEST_CHECK(Rte_SysMon_LsSafetyStatusError[4].eStatOn, eStatusOnOff_STAT_ON, == ); E2EPW_SysMon_CddLedStatus_ASIL.asStatus[2].eErr = LED_ERR_OPEN_LOAD; rpSysMon10ms(); AL_UNITTEST_CHECK(Rte_SysMon_LsSafetyStatusError[2].eErrOpenLoad, 1U, == ); E2EPW_SysMon_CddLedStatus_ASIL.asStatus[3].eErr = LED_ERR_SHORT_TO_GROUND; rpSysMon10ms(); AL_UNITTEST_CHECK(Rte_SysMon_LsSafetyStatusError[3].eErrShortToGnd, 1U, == ); E2EPW_SysMon_CddLedStatus_ASIL.asStatus[3].eErr = LED_ERR_SHORT_TO_UBAT; rpSysMon10ms(); AL_UNITTEST_CHECK(Rte_SysMon_LsSafetyStatusError[3].eErrShortToSupply, 1U, == ); E2EPW_SysMon_CddLedStatus_ASIL.asStatus[6].eErr = LED_ERR_THERMAL; rpSysMon10ms(); AL_UNITTEST_CHECK(Rte_SysMon_LsSafetyStatusError[6].eErrDrvThermalShutdown, 1U, == ); E2EPW_SysMon_CddLedStatus_ASIL.asStatus[6].eErr = LED_ERR_OVERCURRENT; rpSysMon10ms(); AL_UNITTEST_CHECK(Rte_SysMon_LsSafetyStatusError[6].eErrOvercurrent, 1U, == ); E2EPW_SysMon_CddLedStatus_ASIL.asStatus[6].eErr = LED_ERR_CRC; rpSysMon10ms(); AL_UNITTEST_CHECK(Rte_SysMon_LsSafetyStatusError[6].eErrCodCrc, 1U, == ); extern tSysMonCanMsg_LightCtrlMsg2 msg_LightCtrlMsg2; extern tisMsgCrcSqcErr SysMon_MsgCrcSqcErr; msg_LightCtrlMsg2.LowBeamState = SysMon_LowBeam_Invalid_State; Rte_SysMon_EcuNmModes = H5_WAKE_UP_MODE; E2EPW_SysMon_KL15VoltageSts = 5000; SysMon_MsgCrcSqcErr.bVedCmdCrc = TRUE; rpSysMon10ms(); } void Mt_SysMon_InitPhase2(void) { SysMon_InitPhase2(); } void Mt_SysMonTx_LhsStatesInfo_PrepareForCan(void) { riSysMonInit(); Rte_SysMon_tieMountingSide = eIoHwAbUser_MountingSide_Left; Rte_SysMon_tieMountingSideRaw = eIoHwAbUser_MountingSideRaw_Left; Rte_SysMon_tisStatusSpinningFront.eLWRProgress = STP_PROGRESS_NO_ACTION; rpSysMon10ms(); Rte_SysMon_tisStatusSpinningFront.eLWRProgress = STP_PROGRESS_MOVING_DOWN; rpSysMon10ms(); Rte_SysMon_tisStatusSpinningFront.eLWRProgress = STP_PROGRESS_MOVING_UP; rpSysMon10ms(); Rte_SysMon_tisStatusSpinningFront.eLWRProgress = STP_PROGRESS_STALLED; rpSysMon10ms(); Rte_SysMon_tisStatusSpinningFront.eLWRProgress = STP_PROGRESS_WAITING; rpSysMon10ms(); Rte_SysMon_tisStatusSpinningFront.eLWRProgress = STP_PROGRESS_ERROR; rpSysMon10ms(); Rte_SysMon_tisStatusSpinningFront.bfLWRFaultStatus = STP_FAULT_NO_POWER; rpSysMon10ms(); Rte_SysMon_tisStatusSpinningFront.bfLWRFaultStatus = STP_FAULT_NO_POWER_BflMask; rpSysMon10ms(); Rte_SysMon_tisStatusSpinningFront.bfLWRFaultStatus = STP_FAULT_UNDER_POWER_BflMask; rpSysMon10ms(); Rte_SysMon_tisStatusSpinningFront.bfLWRFaultStatus = STP_FAULT_OVER_POWER_BflMask; rpSysMon10ms(); Rte_SysMon_tisStatusSpinningFront.bfLWRFaultStatus = STP_FAULT_OPEN_CIRCUIT_BflMask; rpSysMon10ms(); Rte_SysMon_tisStatusSpinningFront.bfLWRFaultStatus = STP_FAULT_SHORT_CIRCUIT_BflMask; rpSysMon10ms(); Rte_SysMon_tisStatusSpinningFront.bfLWRFaultStatus = STP_FAULT_UNDER_TEMPERATURE_BflMask; rpSysMon10ms(); Rte_SysMon_tisStatusSpinningFront.bfLWRFaultStatus = STP_FAULT_OVER_TEMPERATURE_BflMask; rpSysMon10ms(); Rte_SysMon_tisStatusSpinningFront.bfLWRFaultStatus = STP_FAULT_NO_POWER; rpSysMon10ms(); Rte_SysMon_tisStatusSpinningFront.bfLWRFaultStatus = 199u; rpSysMon10ms(); Rte_SysMon_AnimationFctSts.eAnimationModeSts = ANIM_MODE_MODE1; rpSysMon10ms(); Rte_SysMon_AnimationFctSts.eAnimationModeSts = ANIM_MODE_MODE2; rpSysMon10ms(); Rte_SysMon_AnimationFctSts.eAnimationModeSts = ANIM_MODE_MODE3; rpSysMon10ms(); Rte_SysMon_AnimationFctSts.eAnimationModeSts = ANIM_MODE_MODE4; rpSysMon10ms(); Rte_SysMon_AnimationFctSts.eAnimationModeSts = 199u; rpSysMon10ms(); SysMonTx_LhsStatesInfo_Init(); } void Mt_SysMon_LedDiag_Cycle(void) { extern STATIC_AL CONST_AL tSysMon_Data_LedChParam* SysMon_LedDiag_pLedChParam; extern STATIC_AL CONST_AL tisLsTarget* SysMon_LedDiag_pLsTarget; extern STATIC_AL tisSysVoltStatus SysMon_SysVoltStatus; extern STATIC_AL tisLsTarget_ASIL* SysMon_LedDiag_pLsTarget_ASIL; extern STATIC_AL tisLsTarget_percArr SysMon_aStatTargetDerated; extern STATIC_AL boolean SysMon_Data_boIsCodingDataValid; extern STATIC_AL CONST_AL tisCddLedStatus* SysMon_LedDiag_pBuckStatusFault_ASIL; extern STATIC_AL tSysMon_LedDiag_BoostData SysMon_LedDiag_BoostData; riSysMonInit(); SysMon_Data_SetCodingDataStatus(TRUE); SysMon_LedDiag_pLedChParam->eName = SysMon_Data_eLB_1; SysMon_LedDiag_Cycle(); /*extern STATIC_AL tSysMon_LedDiag_ChData SysMon_LedDiag_aChData[SYSMON_CFG_LED_MAX_NO_OF_LS_CHANNELS]; for (int i = 0; i < SYSMON_CFG_LED_MAX_NO_OF_LS_CHANNELS; i++) { SysMon_LedDiag_aChData[i].ShrtToUBat.ucMonitoringConditions = SYSMON_LED_DIAG_SHORT_TO_UBAT_MONITORING_ACTIVATED; } SysMon_LedDiag_Cycle();*/ SysMon_LedDiag_pLedChParam[2].eName = SysMon_Data_eTI_1; SysMon_LedDiag_Cycle(); riSysMonInit(); SysMon_Data_SetCodingDataStatus(TRUE); SysMon_Data_boIsCodingDataValid = TRUE; tisCddLedStatus Mt_a; tSysMon_Data_LedChParam Mt_b; memset(&Mt_a, 0, sizeof(tisCddLedStatus)); memset(&Mt_b, 0, sizeof(tSysMon_Data_LedChParam)); SysMon_LedDiag_pBuckStatusFault_ASIL = &Mt_a; SysMon_LedDiag_pLedChParam = &Mt_b; SysMon_LedDiag_pLedChParam[2].eName = SysMon_Data_eLB_1; SysMon_LedDiag_BoostData.Overvoltage.nDebounceCnt = 50; SysMon_LedDiag_BoostData.Undervoltage.nDebounceCnt = 50; SysMon_LedDiag_Cycle(); /*tisLsTarget* temp = SysMon_LedDiag_pLsTarget; temp[2]->unDutyCycle = 1u;*/ SysMon_LedDiag_pLsTarget[2].unDutyCycle = 2u; SysMon_aStatTargetDerated[3].unCurrent = SYSMON_CURRENT_NO_DERATING; SysMon_LedDiag_pLsTarget_ASIL->asLsVal[2].unDutyCycle = SYSMON_LED_DIAG_DUTY_CYCLE_5_PERCENT + 1u; SysMon_SysVoltStatus.boErrorDiagEnabled = TRUE; SysMon_LedDiag_Cycle(); } void Mt_LedDiag_Cover(void) { extern STATIC_AL CONST_AL tSysMon_Data_LedChParam* SysMon_LedDiag_pLedChParam; SysMon_LedDiag_pLedChParam[1].eName = SysMon_Data_eLMNotUsed; SysMon_LedDiag_ResetLsErrorStates(); SysMon_LedDiag_pLedChParam[5].eName = SysMon_Data_eHB_1; SysMon_LedDiag_ResetLsErrorStates(); SysMon_LedDiag_Get_ErrorBitMask(SysMon_Data_eLB_1); SysMon_LedDiag_Get_ErrorBitMask(SysMon_Data_eLB_2); SysMon_LedDiag_Get_ErrorBitMask(SysMon_Data_eHB_1); SysMon_LedDiag_Get_ErrorBitMask(SysMon_Data_eDRL_1); SysMon_LedDiag_Get_ErrorBitMask(SysMon_Data_ePOS_1); SysMon_LedDiag_Get_ErrorBitMask(SysMon_Data_eFOG_1); SysMon_LedDiag_Get_ErrorBitMask(SysMon_Data_eCL_1); SysMon_LedDiag_Get_ErrorBitMask(SysMon_Data_eTI_1); //SysMon_LedDiag_Get_ErrorBitMask(SysMon_Data_eLM_LSR); //SysMon_LedDiag_Get_ErrorBitMask(SysMon_Data_eLM_IZ); riSysMonInit(); SysMon_LedDiag_EvaluateOpenLoad(3); } void Mt_Test_Cover(void) { roSysMon_SetB2CanBusOff(); roSysMon_ResetB2CanBusOff(); rdSysMonDeInit(); SysMon_IsLowBeamOrTurnIndicatorLs(6); SysMon_IsTurnIndicatorLs(8); SysMon_GetBuckStatusFault_ASIL_ErrInternalCom(); SysMon_GetSpiStatusFault_ASIL_ErrInternalCom(); SysMon_GetIoStatusFault0_ErrInternalCom(); SysMon_SetLsStatusCRCErrorppCddLedBuckStatusFault0(TRUE); SysMon_SetLsStatusCRCErrorppCddLedBuckStatusFault0(FALSE); SysMon_SetLsStatusCRCErrorppCddSpiStatusFault0(TRUE); SysMon_SetLsStatusCRCErrorppCddSpiStatusFault0(FALSE); SysMon_SetLsStatusCRCErrorppIoHwAbUserIoStatusFault0(TRUE); SysMon_SetLsStatusCRCErrorppIoHwAbUserIoStatusFault0(FALSE); } void Mt_rrCan1RxLhsStatesInfo(void) { extern uint8 SysMon_ucUnknownMountingRight; rrCan1RxLhsStatesInfo(); //AL_UNITTEST_CHECK(SysMon_ucUnknownMountingRight, 0u, == ); val = 1; rrCan1RxLhsStatesInfo(); //AL_UNITTEST_CHECK(SysMon_ucUnknownMountingRight, 1u, == ); val = 2; rrCan1RxLhsStatesInfo(); //AL_UNITTEST_CHECK(SysMon_ucUnknownMountingRight, 1u, == ); } void Mt_rrCan1RxRhsStatesInfo(void) { extern uint8 SysMon_ucUnknownMountingLeft; val = 0; rrCan1RxRhsStatesInfo(); //AL_UNITTEST_CHECK(SysMon_ucUnknownMountingLeft, 0u, == ); val = 1; rrCan1RxRhsStatesInfo(); //AL_UNITTEST_CHECK(SysMon_ucUnknownMountingLeft, 1u, == ); val = 2; rrCan1RxRhsStatesInfo(); //AL_UNITTEST_CHECK(SysMon_ucUnknownMountingLeft, 1u, == ); } void Mt_rrCan1LowBeamStatusTransmissioError(void) { rrCan1LowBeamStatusTransmissioError(); } // ---------------------------------------------------------------------------- // Add Test Cases //----------------------------------------------------------------------------- void ALUnitTest_AddTests(void) { ALUnitTest_AddFunction("Mt_SysMonRx_HandleSignalQualityFail", Mt_SysMonRx_HandleSignalQualityFail); ALUnitTest_AddFunction("Mt_SysMonCommon_AlwaysValid", Mt_SysMonCommon_AlwaysValid); ALUnitTest_AddFunction("Mt_SysMonRx_initCounterMonitor", Mt_SysMonRx_initCounterMonitor); ALUnitTest_AddFunction("Mt_SysMonRx_initTimerMonitor", Mt_SysMonRx_initTimerMonitor); ALUnitTest_AddFunction("Mt_SysMonRx_HandleSignalQualitySuccess", Mt_SysMonRx_HandleSignalQualitySuccess); ALUnitTest_AddFunction("Mt_SysMonRx_initSignalQuality", Mt_SysMonRx_initSignalQuality); ALUnitTest_AddFunction("Mt_SysMonRx_initPduQuality", Mt_SysMonRx_initPduQuality); ALUnitTest_AddFunction("Mt_SysMonRx_HandlePduQualitySuccess", Mt_SysMonRx_HandlePduQualitySuccess); ALUnitTest_AddFunction("Mt_SysMonRxHandleDTC_CounterMonitor", Mt_SysMonRxHandleDTC_CounterMonitor); ALUnitTest_AddFunction("Mt_SysMonRx_HandlePduQualityCounterMonitorSuccess", Mt_SysMonRx_HandlePduQualityCounterMonitorSuccess); ALUnitTest_AddFunction("Mt_SysMonRx_HandlePduQualityCounterMonitorFail", Mt_SysMonRx_HandlePduQualityCounterMonitorFail); ALUnitTest_AddFunction("Mt_SysMonRx_HandlePduQualityFail", Mt_SysMonRx_HandlePduQualityFail); ALUnitTest_AddFunction("Mt_SysMon_isInSet", Mt_SysMon_isInSet); ALUnitTest_AddFunction("Mt_SysMon_Data_Get_DynamicBoostVoltageEnable", Mt_SysMon_Data_Get_DynamicBoostVoltageEnable); ALUnitTest_AddFunction("Mt_SysMon_Data_Get_BoostVoltageHeadroom", Mt_SysMon_Data_Get_BoostVoltageHeadroom); ALUnitTest_AddFunction("Mt_SysMon_Data_Get_LMxx_LED_OVER_VOLTAGE_Max", Mt_SysMon_Data_Get_LMxx_LED_OVER_VOLTAGE_Max); ALUnitTest_AddFunction("Mt_SysMon_Data_IsCodingDataValid", Mt_SysMon_Data_IsCodingDataValid); ALUnitTest_AddFunction("Mt_SysMon_Data_Get_T_OAV", Mt_SysMon_Data_Get_T_OAV); ALUnitTest_AddFunction("Mt_SysMon_Data_GetaLEDChParamPtr", Mt_SysMon_Data_GetaLEDChParamPtr); ALUnitTest_AddFunction("Mt_SysMon_Data_Get_BoostParamPtr", Mt_SysMon_Data_Get_BoostParamPtr); ALUnitTest_AddFunction("Mt_SysMon_LedCtrl_Cycle", Mt_SysMon_LedCtrl_Cycle); ALUnitTest_AddFunction("Mt_SysMon_LedCtrl_Init", Mt_SysMon_LedCtrl_Init); ALUnitTest_AddFunction("Mt_SysMonRx_LightCtrlMsg1_Init", Mt_SysMonRx_LightCtrlMsg1_Init); ALUnitTest_AddFunction("Mt_rrCan1LightCtrlMsg1Msg", Mt_rrCan1LightCtrlMsg1Msg); ALUnitTest_AddFunction("Mt_SysMonRxProcessSignalGroup_LightCtrlMsg1_success", Mt_SysMonRxProcessSignalGroup_LightCtrlMsg1_success); ALUnitTest_AddFunction("Mt_SysMonRx_LightCtrlMsg2_Init", Mt_SysMonRx_LightCtrlMsg2_Init); ALUnitTest_AddFunction("Mt_rrCan1LightCtrlMsg2Msg", Mt_rrCan1LightCtrlMsg2Msg); ALUnitTest_AddFunction("Mt_SysMonRxProcessSignalGroup_LightCtrlMsg2_success", Mt_SysMonRxProcessSignalGroup_LightCtrlMsg2_success); ALUnitTest_AddFunction("Mt_rrCan1VedCmdMsg", Mt_rrCan1VedCmdMsg); ALUnitTest_AddFunction("Mt_SysMonRxForwardToFctr_VED_CMD", Mt_SysMonRxForwardToFctr_VED_CMD); ALUnitTest_AddFunction("Mt_SysMonRx_getSpeedState_VED_CMD", Mt_SysMonRx_getSpeedState_VED_CMD); ALUnitTest_AddFunction("Mt_SysMonTx_StatesInfo_Init", Mt_SysMonTx_StatesInfo_Init); ALUnitTest_AddFunction("Mt_SysMonTx_RhsStatesInfo_PrepareForCan", Mt_SysMonTx_RhsStatesInfo_PrepareForCan); ALUnitTest_AddFunction("Mt_SysMonTx_Handle_FctR_Status_StatesInfo", Mt_SysMonTx_Handle_FctR_Status_StatesInfo); ALUnitTest_AddFunction("Mt_SysMon_WriteRTE", Mt_SysMon_WriteRTE); ALUnitTest_AddFunction("Mt_SysMon_InitPhase2", Mt_SysMon_InitPhase2); ALUnitTest_AddFunction("Mt_SysMonTx_LhsStatesInfo_PrepareForCan", Mt_SysMonTx_LhsStatesInfo_PrepareForCan); ALUnitTest_AddFunction("Mt_SysMon_LedDiag_Cycle", Mt_SysMon_LedDiag_Cycle); ALUnitTest_AddFunction("Mt_LedDiag_Cover", Mt_LedDiag_Cover); ALUnitTest_AddFunction("Mt_Test_Cover", Mt_Test_Cover); ALUnitTest_AddFunction("Mt_rrCan1RxLhsStatesInfo", Mt_rrCan1RxLhsStatesInfo); ALUnitTest_AddFunction("Mt_rrCan1RxRhsStatesInfo", Mt_rrCan1RxRhsStatesInfo); ALUnitTest_AddFunction("Mt_rrCan1LowBeamStatusTransmissioError", Mt_rrCan1LowBeamStatusTransmissioError); }