//#define RTE_ALLOW_CROSS_HEADER_INCLUSION #include //#include #include #include //#include #include #include #include #define PERCENT_VAL 32768u boolean AppM_abFanEnable[APPM_CFG_MAX_NO_OF_THERMOZONES]; tiu32LsChannel AppM_aulChToDrv[APPM_CFG_LED_MAX_NO_OF_LS_CHANNELS]; sint8 AppM_cPowerLevel[APPM_CFG_MAX_NO_OF_THERMOZONES]; uint8 AppM_ucTempGradient[APPM_CFG_MAX_NO_OF_THERMOZONES]; tieDataStatus ieDataStatus; tisHssStatusError isHssStatusError; uint8 int1; tiu32LsChannel iu32LsChannel[APPM_CFG_MAX_NO_OF_MLC][APPM_CFG_MAX_NO_OF_SWITCHES_ON_MLC+4]; tiu32Thermozone iu32ExtSwThermozone[APPM_CFG_MAX_NO_OF_MLC][APPM_CFG_MAX_NO_OF_SWITCHES_ON_MLC]; tunPercent_1_328 iu16Percent_1_328[APPM_CFG_MAX_NO_OF_MLC][APPM_CFG_MAX_NO_OF_SWITCHES_ON_MLC + 4]; tisLsTarget_perc isLsTarget_perc[APPM_CFG_LED_MAX_NO_OF_LS_CHANNELS]; uint8 ctrlLedTargetEnable[APPM_CFG_LED_MAX_NO_OF_LS_CHANNELS]; tiu32Thermozone iu32LsThermozone[APPM_CFG_LED_MAX_NO_OF_LS_CHANNELS]; tiu32Voltage_mV iu32Voltage_mV; tiu32Voltage_mV iu32Voltage_mV2; tis32Temperature_mCelsius is32Temperature_mCelsius; tisBinningResistor isBinning[APPM_CFG_LED_MAX_NO_OF_LS_CHANNELS + APPM_CFG_MAX_NO_OF_MLC]; tisTemperature_mCelsius isTemperature_mCelsius[20]; tieHssState ieHssState_read; uint8 int3; tiu16Percent_1_328 iu16Percent_1_328_2[APPM_CFG_MAX_NO_OF_MLC][APPM_CFG_MAX_NO_OF_SWITCHES_ON_MLC+4]; tisHssTarget ieHssState; tisLsTarget isLsTarget[APPM_CFG_LED_MAX_NO_OF_LS_CHANNELS]; sint8 ieTLsRedLevel[APPM_CFG_MAX_NO_OF_THERMOZONES]; tisLsTarget_perc isLsTarget_perc2[APPM_CFG_LED_MAX_NO_OF_LS_CHANNELS]; tiu8Temperature_Celsius iu8Temperature_Celsius[20]; uint8 int4; tiu8TempGradient_mKelvinPerSecond iu8TempGradient_mKelvinPerSecond; tiu32LsErrorBitMask iu32LsErrorBitMask; tisTemperature_mCelsius tempRSensMLsTemperature0[APPM_CFG_LED_MAX_NO_OF_LS_CHANNELS + APPM_CFG_MAX_NO_OF_MLC_EX]; //uint32 _start_of_coding_data; //extern const tRomPara_CodingArea applicationCodingData __attribute__((section(".APPL_CODING_DATA"))); //extern const tRomPara_CodingArea* applicationCodingDataptr = (tRomPara_CodingArea*)&_start_of_coding_data; tRomPara_CodingArea coding_data; const tRomPara_CodingArea* applicationCodingDataptr = &coding_data; const tRomPara_CodingArea applicationCodingData; tisLsTargetArr AppM_chBinning[APPM_CFG_BIN_MAX_NO_OF_CLASSES]; boolean AppM_bCodingDataLoaded = 1; tisLsTarget AppM_asAppMLsTargetSetting[APPM_CFG_LED_MAX_NO_OF_LS_CHANNELS]; tiu16Percent_1_328 AppM_chExtTakeoverDutyCycle[APPM_CFG_MAX_NO_OF_THERMOZONES]; boolean AppM_bChExtTakeoverEnabel[APPM_CFG_MAX_NO_OF_THERMOZONES]; //extern const tRomPara_CodingArea* applicationCodingDataptr; //----------------------------------------------------------------------------- /// \Test Case : Mt_riAppMInit /// /// \Test Case Description /// - Test subject: /// Check if the riAppMInit: /// - Initialize the internal RAM variabels with the right values /// Run rdCPMDeInit for code coverage /// /// - Test Design Technique: ET (Exploratory Testing) /// /// - Preconditions: none /// /// - Test steps: /// 1. Call FUT /// 2. Read RTE interfaces (ppAppMHssTarget0 and ppAppMLsTarget0) /// 3. Check if the RTE interfaces are correct initialized /// 4. Check if the static variables are correct initialized /// /// - Expected test results: The values are initialized with "0" or "FALSE". /// //----------------------------------------------------------------------------- void Mt_riAppMInit(void) { tieHssState initAppMHssTarget0[APPM_CFG_HSS_MAX_NO_OF_HSS_CHANNELS] = { 0,0,0 }; // declerate temp variable for HSS target settings tisLsTarget initAppMLsTarget0[APPM_CFG_MAX_NO_OF_THERMOZONES] = { {0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0} }; // declerate temp variabel for channel target settings //Step 1) Set pre - conditions if needed //Step 2) Assign all input values to the corresponding input variables identified in the FUT //Step 3) Call the FUT ieDataStatus = TRUE; //tiu32Thermozone = { 0u, 1u, 2u, 3u, 4u, 5u, 6u, 7u, 8u, 9u, 10u, 11u }; //ctrlLedTargetEnable = { 0u, 1u, 2u, 3u, 4u, 5u, 6u, 7u, 8u, 9u, 10u, 11u }; is32Temperature_mCelsius = 30000u; for (int ucChIdx = 0; ucChIdx < APPM_CFG_LED_MAX_NO_OF_LS_CHANNELS; ucChIdx++) { isBinning[ucChIdx].ucBin = 0; iu32LsThermozone[ucChIdx] = ucChIdx; ctrlLedTargetEnable[ucChIdx] = 0u; } // run initialisation riCPMInit(); //riAppMDeInit(); CPM_UpdateRomCoding(); //Step 4) Check that the value of the output variables set/changed by the FUT matches the corresponding expected output value // read RTE interfaces //(void)APPM_RTE_GET_APPMHSSTARGET0SETTING(initAppMHssTarget0); //(void)APPM_RTE_GET_CTRLLEDLSTARGET0SETTING(initAppMLsTarget0); /*for (uint8 i = 0; i < APPM_CFG_MAX_NO_OF_THERMOZONES; i++) { // check RTE interface (channel settings) AL_UNITTEST_CHECK(initAppMLsTarget0[i].unDutyCycle, 0u, == ); // expected duty cycle AL_UNITTEST_CHECK(initAppMLsTarget0[i].unCurrent, 0u, == ); // expected current } // check RTE interface (HSS) AL_UNITTEST_CHECK(initAppMHssTarget0[0], 0u, == ); // expected hss state for (uint8 ucChIdx = 0u; ucChIdx < (uint8)APPM_CFG_MAX_NO_OF_THERMOZONES; ucChIdx++) { // check external takeover initialisation AL_UNITTEST_CHECK(AppM_chExtTakeoverDutyCycle[ucChIdx], 0u, == ); AL_UNITTEST_CHECK(AppM_bChExtTakeoverEnabel[ucChIdx], FALSE, == ); } /*for (uint8 ucChIdx = 0u; ucChIdx < (uint8)APPM_CFG_LED_MAX_NO_OF_LS_CHANNELS; ucChIdx++) { // check binning initialisation for (uint8 ucClIdx = 0u; ucClIdx < (uint8)APPM_CFG_BIN_MAX_NO_OF_CLASSES; ucClIdx++) { //if (ucChIdx < 12) //{ AL_UNITTEST_CHECK(AppM_chBinning[ucClIdx][ucChIdx].unCurrent, BINCUR2CURMA(mtRteCoding_LM0x_CURRENT_BINNING_CLASSy[ucChIdx][ucClIdx]), == ); //} //else //{ // AL_UNITTEST_CHECK(AppM_chBinning[ucClIdx][ucChIdx].unCurrent, BINCUR2CURMA(mtRteCoding_LM0x_CURRENT_BINNING_CLASSy[11][ucClIdx]), == ); //} AL_UNITTEST_CHECK(AppM_chBinning[ucClIdx][ucChIdx].unDutyCycle, BINDUCY2PER1328(mtRteCoding_LM0x_DUTY_CYCLE_BINNING_CLASSy[ucChIdx][ucClIdx]), == ); } }*/ AL_UNITTEST_CHECK(1, 1, == ); } void Mt_AppM_Test_1(void) { tieHssState initAppMHssTarget0[APPM_CFG_HSS_MAX_NO_OF_HSS_CHANNELS] = { 0,0,0 }; // declerate temp variable for HSS target settings tisLsTarget initAppMLsTarget0[APPM_CFG_MAX_NO_OF_THERMOZONES] = { {0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0} }; // declerate temp variabel for channel target settings //Step 1) Set pre - conditions if needed //Step 2) Assign all input values to the corresponding input variables identified in the FUT //Step 3) Call the FUT // run initialisation for (int cnt = 0; cnt < 20; cnt++) { tempRSensMLsTemperature0[cnt].lVal = 150000; tempRSensMLsTemperature0[cnt].eQty = 1; } tempRSensMLsTemperature0[4].eQty = 0; tempRSensMLsTemperature0[7].eQty = 2; tempRSensMLsTemperature0[8].eQty = 3; tempRSensMLsTemperature0[9].eQty = 4; tempRSensMLsTemperature0[12].eQty = 5; for (int i = 0; i < 10; i++) { rpCPMCycles10ms(); } rdCPMDeInit(); //Step 4) Check that the value of the output variables set/changed by the FUT matches the corresponding expected output value // read RTE interfaces //(void)APPM_RTE_GET_APPMHSSTARGET0SETTING(initAppMHssTarget0); //(void)APPM_RTE_GET_CTRLLEDLSTARGET0SETTING(initAppMLsTarget0); /*for (uint8 i = 0; i < APPM_CFG_MAX_NO_OF_THERMOZONES; i++) { // check RTE interface (channel settings) AL_UNITTEST_CHECK(initAppMLsTarget0[i].unDutyCycle, 0u, == ); // expected duty cycle AL_UNITTEST_CHECK(initAppMLsTarget0[i].unCurrent, 0u, == ); // expected current }*/ // check RTE interface (HSS) //AL_UNITTEST_CHECK(initAppMHssTarget0[0], 0u, == ); // expected hss state /*for (uint8 ucChIdx = 0u; ucChIdx < (uint8)APPM_CFG_MAX_NO_OF_THERMOZONES; ucChIdx++) { // check external takeover initialisation AL_UNITTEST_CHECK(AppM_chExtTakeoverDutyCycle[ucChIdx], 0u, == ); AL_UNITTEST_CHECK(AppM_bChExtTakeoverEnabel[ucChIdx], FALSE, == ); }*/ /*for (uint8 ucChIdx = 0u; ucChIdx < (uint8)APPM_CFG_LED_MAX_NO_OF_LS_CHANNELS; ucChIdx++) { // check binning initialisation for (uint8 ucClIdx = 0u; ucClIdx < (uint8)APPM_CFG_BIN_MAX_NO_OF_CLASSES; ucClIdx++) { //if (ucChIdx < 12) //{ AL_UNITTEST_CHECK(AppM_chBinning[ucClIdx][ucChIdx].unCurrent, BINCUR2CURMA(mtRteCoding_LM0x_CURRENT_BINNING_CLASSy[ucChIdx][ucClIdx]), == ); //} //else //{ // AL_UNITTEST_CHECK(AppM_chBinning[ucClIdx][ucChIdx].unCurrent, BINCUR2CURMA(mtRteCoding_LM0x_CURRENT_BINNING_CLASSy[11][ucClIdx]), == ); //} AL_UNITTEST_CHECK(AppM_chBinning[ucClIdx][ucChIdx].unDutyCycle, BINDUCY2PER1328(mtRteCoding_LM0x_DUTY_CYCLE_BINNING_CLASSy[ucChIdx][ucClIdx]), == ); } }*/ AL_UNITTEST_CHECK(1, 1, == ); } void Mt_rdCPMDeInit(void) { CPM_DeInit(); } //Increase Coverage by calling CPM_UpdateDefCoding() void Mt_CPM_Cover(void) { extern STATIC_AL uint8 AppM_ucVariant; CPM_UpdateDefCoding(); AppM_ucVariant = 1; CPM_UpdateDefCoding(); AppM_ucVariant = 2; CPM_UpdateDefCoding(); AppM_ucVariant = 3; CPM_UpdateDefCoding(); AppM_ucVariant = 1; CPM_UpdateRomCoding(); AppM_ucVariant = 2; CPM_UpdateRomCoding(); AppM_ucVariant = 3; CPM_UpdateRomCoding(); } void Mt_Trigger_Light_Func(void) { uint8 uChIdx; riCPMInit(); //Initialize Light Source for (uChIdx = 0u; uChIdx < APPM_CFG_LED_MAX_NO_OF_LS_CHANNELS; uChIdx++){ isLsTarget_perc[uChIdx].unCurrent = 100; isLsTarget_perc[uChIdx].unDutyCycle = PERCENT_VAL; } //isLsTarget_perc[3].unDutyCycle = PERCENT_VAL; //LB //Initialize Sensor Temperature for (uChIdx = 0u; uChIdx < APPM_CFG_LED_MAX_NO_OF_LS_CHANNELS + APPM_CFG_MAX_NO_OF_MLC; uChIdx++) { tempRSensMLsTemperature0[uChIdx].lVal = 0; //20 Degree, No derating tempRSensMLsTemperature0[uChIdx].eQty = 1; } is32Temperature_mCelsius = 20000; tempRSensMLsTemperature0[0].eQty = 0; tempRSensMLsTemperature0[1].eQty = 2; tempRSensMLsTemperature0[2].eQty = 3; tempRSensMLsTemperature0[5].eQty = 4; tempRSensMLsTemperature0[8].eQty = 5; tempRSensMLsTemperature0[9].eQty = 255; //Initialize Binning Class for (uChIdx = 0u; uChIdx < APPM_CFG_LED_MAX_NO_OF_LS_CHANNELS + APPM_CFG_MAX_NO_OF_MLC; uChIdx++) { isBinning[uChIdx].ucBin = 0; //Binning Class - 0 isBinning[uChIdx].eQty = 1; } //init //Execute runnable for (uChIdx = 0u; uChIdx < 10; uChIdx++) { rpCPMCycles10ms(); } //Validate output for (uChIdx = 0u; uChIdx < APPM_CFG_LED_MAX_NO_OF_LS_CHANNELS; uChIdx++) { AL_UNITTEST_CHECK(isLsTarget[uChIdx].unDutyCycle, PERCENT_VAL, == ); //No change in LB DutyCycle } } //derating void Mt_Derate_LB_Func(void) { uint8 uChIdx; uint8 uMlcIdx; riCPMInit(); //Initialize Light Source for (uChIdx = 0u; uChIdx < APPM_CFG_LED_MAX_NO_OF_LS_CHANNELS; uChIdx++) { isLsTarget_perc[uChIdx].unCurrent = 100; isLsTarget_perc[uChIdx].unDutyCycle = 0; } isLsTarget_perc[3].unDutyCycle = PERCENT_VAL; //LB for (uMlcIdx = 0u; uMlcIdx < (uint8)(APPM_CFG_MAX_NO_OF_MLC); uMlcIdx++) { for (uChIdx = 0u; uChIdx < (uint8)APPM_CFG_LED_MAX_NO_OF_LS_CHANNELS + 4; uChIdx++) { iu16Percent_1_328[uMlcIdx][uChIdx] = PERCENT_VAL; } } //Initialize Sensor Temperature for (uChIdx = 0u; uChIdx < APPM_CFG_LED_MAX_NO_OF_LS_CHANNELS + APPM_CFG_MAX_NO_OF_MLC; uChIdx++) { tempRSensMLsTemperature0[uChIdx].lVal = 150000; //150 Degree, derating tempRSensMLsTemperature0[uChIdx].eQty = 1; } is32Temperature_mCelsius = 150000; //Initialize Binning Class for (uChIdx = 0u; uChIdx < APPM_CFG_LED_MAX_NO_OF_LS_CHANNELS + APPM_CFG_MAX_NO_OF_MLC; uChIdx++) { isBinning[uChIdx].ucBin = 0; //Binning Class - 0 isBinning[uChIdx].eQty = 1; } //init //Execute runnable for (uChIdx = 0u; uChIdx < 10; uChIdx++) { rpCPMCycles10ms(); } //Validate output for (uChIdx = 0u; uChIdx < APPM_CFG_LED_MAX_NO_OF_LS_CHANNELS; uChIdx++) { //AL_UNITTEST_CHECK(isLsTarget[uChIdx].unCurrent, 1, > ); //Current is there if (uChIdx == 3) { AL_UNITTEST_CHECK(isLsTarget[uChIdx].unDutyCycle, PERCENT_VAL, < ); //Derating in LB DutyCycle } else { AL_UNITTEST_CHECK(isLsTarget[uChIdx].unDutyCycle, 0, == );//No DutyCycle for others } } } extern uint8 CPM_PARA_aucTz2Temp[12]; extern uint8 FANM_PARA_aucTz2Temp[12]; extern uint8 CPM_PARA_aucExtSwitch2Tz[8][16]; extern uint8 FANM_PARA_aucExtSwitch2Tz[8][12]; void Mt_Check_Fan(void) { uint8 uChIdx; uint8 uMlcIdx; uint8 Test_CPM_PARA_aucTz2Temp[12] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 16, 17 }; uint8 Test_CPM_PARA_aucExtSwitch2Tz[8][16] = { { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0 }, { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0 }, { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0 }, { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0 }, { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0 }, { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0 }, { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0 }, { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0 } }; uint16 Test_iu16Percent_1_328[8][16] = { { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 }, { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0 }, { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0 }, { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0 }, { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0 }, { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0 }, { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0 }, { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0 } }; for (uChIdx = 0u; uChIdx < 10; uChIdx++) { riCPMInit(); } memcpy(CPM_PARA_aucTz2Temp, Test_CPM_PARA_aucTz2Temp, sizeof(CPM_PARA_aucTz2Temp)); memcpy(FANM_PARA_aucTz2Temp, Test_CPM_PARA_aucTz2Temp, sizeof(FANM_PARA_aucTz2Temp)); memcpy(CPM_PARA_aucExtSwitch2Tz, Test_CPM_PARA_aucExtSwitch2Tz, sizeof(CPM_PARA_aucExtSwitch2Tz)); memcpy(FANM_PARA_aucExtSwitch2Tz, Test_CPM_PARA_aucExtSwitch2Tz, sizeof(FANM_PARA_aucExtSwitch2Tz)); memcpy(iu16Percent_1_328, Test_iu16Percent_1_328, sizeof(iu16Percent_1_328)); for (uMlcIdx = 0u; uMlcIdx < (uint8)(APPM_CFG_MAX_NO_OF_MLC); uMlcIdx++) { for (uChIdx = 0u; uChIdx < (uint8)APPM_CFG_LED_MAX_NO_OF_LS_CHANNELS + 4; uChIdx++) { iu16Percent_1_328[uMlcIdx][uChIdx] = PERCENT_VAL; } } //Initialize Light Source for (uChIdx = 0u; uChIdx < APPM_CFG_LED_MAX_NO_OF_LS_CHANNELS; uChIdx++) { isLsTarget_perc[uChIdx].unCurrent = 100; isLsTarget_perc[uChIdx].unDutyCycle = 0; } isLsTarget_perc[3].unDutyCycle = PERCENT_VAL; //LB //Initialize Sensor Temperature for (uChIdx = 0u; uChIdx < APPM_CFG_LED_MAX_NO_OF_LS_CHANNELS + APPM_CFG_MAX_NO_OF_MLC; uChIdx++) { tempRSensMLsTemperature0[uChIdx].lVal = 150000; //150 Degree, derating tempRSensMLsTemperature0[uChIdx].eQty = 1; } is32Temperature_mCelsius = 150000; //Initialize Binning Class for (uChIdx = 0u; uChIdx < APPM_CFG_LED_MAX_NO_OF_LS_CHANNELS + APPM_CFG_MAX_NO_OF_MLC; uChIdx++) { isBinning[uChIdx].ucBin = 0; //Binning Class - 0 isBinning[uChIdx].eQty = 1; } //init //Execute runnable for (uChIdx = 0u; uChIdx < 10; uChIdx++) { rpCPMCycles10ms(); } //Validate output AL_UNITTEST_CHECK(ieHssState.aeSetting[0], TRUE, == );//No DutyCycle for others } void Mt_Check_Fan2(void) { uint8 uChIdx; uint8 uMlcIdx; uint8 Test_CPM_PARA_aucTz2Temp[12] = { 10, 11, 12, 13, 14, 15, 22, 23, 18, 19, 20, 21 }; uint8 Test_CPM_PARA_aucExtSwitch2Tz[8][16] = { { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 }, { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0 }, { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0 }, { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0 }, { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0 }, { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0 }, { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0 }, { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0 } }; for (uChIdx = 0u; uChIdx < 10; uChIdx++) { riCPMInit(); } memcpy(CPM_PARA_aucTz2Temp, Test_CPM_PARA_aucTz2Temp, sizeof(CPM_PARA_aucTz2Temp)); memcpy(FANM_PARA_aucTz2Temp, Test_CPM_PARA_aucTz2Temp, sizeof(FANM_PARA_aucTz2Temp)); memcpy(CPM_PARA_aucExtSwitch2Tz, Test_CPM_PARA_aucExtSwitch2Tz, sizeof(CPM_PARA_aucExtSwitch2Tz)); memcpy(FANM_PARA_aucExtSwitch2Tz, Test_CPM_PARA_aucExtSwitch2Tz, sizeof(FANM_PARA_aucExtSwitch2Tz)); for (uMlcIdx = 0u; uMlcIdx < (uint8)(APPM_CFG_MAX_NO_OF_MLC); uMlcIdx++) { for (uChIdx = 0u; uChIdx < (uint8)APPM_CFG_LED_MAX_NO_OF_LS_CHANNELS + 4; uChIdx++) { iu16Percent_1_328[uMlcIdx][uChIdx] = PERCENT_VAL; } } //Initialize Light Source for (uChIdx = 0u; uChIdx < APPM_CFG_LED_MAX_NO_OF_LS_CHANNELS; uChIdx++) { isLsTarget_perc[uChIdx].unCurrent = 100; isLsTarget_perc[uChIdx].unDutyCycle = 0; } isLsTarget_perc[3].unDutyCycle = PERCENT_VAL; //LB //Initialize Sensor Temperature for (uChIdx = 0u; uChIdx < APPM_CFG_LED_MAX_NO_OF_LS_CHANNELS + APPM_CFG_MAX_NO_OF_MLC; uChIdx++) { tempRSensMLsTemperature0[uChIdx].lVal = 150000; //150 Degree, derating tempRSensMLsTemperature0[uChIdx].eQty = 0; } is32Temperature_mCelsius = 150000; //Initialize Binning Class for (uChIdx = 0u; uChIdx < APPM_CFG_LED_MAX_NO_OF_LS_CHANNELS + APPM_CFG_MAX_NO_OF_MLC; uChIdx++) { isBinning[uChIdx].ucBin = 0; //Binning Class - 0 isBinning[uChIdx].eQty = 0; } //init //Execute runnable for (uChIdx = 0u; uChIdx < 10; uChIdx++) { rpCPMCycles10ms(); } uint8 Test_CPM_PARA_aucTz2Temp2[12] = { 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35 }; memcpy(CPM_PARA_aucTz2Temp, Test_CPM_PARA_aucTz2Temp2, sizeof(CPM_PARA_aucTz2Temp)); memcpy(FANM_PARA_aucTz2Temp, Test_CPM_PARA_aucTz2Temp2, sizeof(FANM_PARA_aucTz2Temp)); //Execute runnable for (uChIdx = 0u; uChIdx < 10; uChIdx++) { rpCPMCycles10ms(); } uint8 Test_CPM_PARA_aucTz2Temp3[12] = { 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47 }; memcpy(CPM_PARA_aucTz2Temp, Test_CPM_PARA_aucTz2Temp3, sizeof(CPM_PARA_aucTz2Temp)); memcpy(FANM_PARA_aucTz2Temp, Test_CPM_PARA_aucTz2Temp3, sizeof(FANM_PARA_aucTz2Temp)); //Execute runnable for (uChIdx = 0u; uChIdx < 10; uChIdx++) { rpCPMCycles10ms(); } //Validate output // AL_UNITTEST_CHECK(ieHssState.aeSetting[0], TRUE, == );//No DutyCycle for others //to be checked } // ---------------------------------------------------------------------------- // Test Cases //----------------------------------------------------------------------------- void ALUnitTest_AddTests(void) { ALUnitTest_AddFunction("Mt_riAppMInit", Mt_riAppMInit); ALUnitTest_AddFunction("Mt_AppM_Test_1", Mt_AppM_Test_1); ALUnitTest_AddFunction("Mt_rdCPMDeInit", Mt_rdCPMDeInit); ALUnitTest_AddFunction("Mt_CPM_Cover", Mt_CPM_Cover); ALUnitTest_AddFunction("Mt_Trigger_Light_Func", Mt_Trigger_Light_Func); ALUnitTest_AddFunction("Mt_Derate_LB_Func", Mt_Derate_LB_Func); ALUnitTest_AddFunction("Mt_Check_Fan", Mt_Check_Fan); ALUnitTest_AddFunction("Mt_Check_Fan2", Mt_Check_Fan2); }