//***************************************************************************** // (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 CodM /// /// \author /// //----------------------------------------------------------------------------- #include #include #include #include #include #include #include #include #include tieResetReason ieResetReason; tieMountingSideRaw ieMountingSideRaw; tieSafetyCodingErrorReason ieSafetyCodingErrorReason; tisCddSbcStatus isCddSbcStatus; tieDataStatus ieDataStatus; tieDataStatus ieDataStatus_Eft; tieDataStatus ieFuSaDataStatus; boolean CodM_bIsCodingLabelsCompatible; boolean CodM_bIsCodingDataValidated; boolean CodM_boCrcCodingTestResultIsOk; uint8 CodM_CodingValidationCntr; STATIC_AL uint32 dummyEFTCRC = 420815; uint8 NVM_MOUNTING_SIDE = 0xFF; tieMountingSideRaw IoHwAbUser_tMountingSideRaw = 0x0000U; #define tieDataStatus_Invalid 0U #define tieDataStatus_Valid 1U #define tieFuSaDataStatus_Invalid 0U #define tieFuSaDataStatus_Valid 1U #define eIoHwAbUser_MountingSideRaw_Unknown 4244374275U #define eIoHwAbUser_MountingSideRaw_Right 4261216770U #define eIoHwAbUser_MountingSideRaw_Left 4278059265U #define Rte_GucppCodMEftCrcStatus0_sVal_ctaaCodM_Init_DEF 0U STATIC_AL VAR(tieDataStatus, RTE_DATA) Rte_GucppCodMEftCrcStatus0_sVal_ctaaCodM = Rte_GucppCodMEftCrcStatus0_sVal_ctaaCodM_Init_DEF; uint8 setValue; extern boolean CodM_bIsCodingDataValidated; FUNC(uint32, CRC_CODE) Crc_CalculateCRCTest(setValue) { if (setValue == 0) return FALSE; else { return TRUE; } } //----------------------------------------------------------------------------- /// \Test Case : Mt_riCodMInit /// /// \Test Case Description /// - Test subject: /// To call riCodMInit function and check Eft CRC status /// /// - Preconditions: none /// /// - Expected test results: /// - All conditions and assigned values mentioned for each test case/step shall be reached and passed /// //----------------------------------------------------------------------------- void Mt_riCodMInit(void) { IoHwAbUser_tMountingSideRaw = eIoHwAbUser_MountingSideRaw_Unknown; riCodMInit(); AL_UNITTEST_CHECK(ieDataStatus, tieDataStatus_Invalid, == ); setValue = 1; CodM_bIsCodingDataValidated = FALSE; IoHwAbUser_tMountingSideRaw = 0x0000; riCodMInit(); AL_UNITTEST_CHECK(ieDataStatus, tieDataStatus_Valid, == ); setValue = 0; CodM_bIsCodingDataValidated = FALSE; riCodMInit(); AL_UNITTEST_CHECK(ieDataStatus, tieDataStatus_Invalid, == ); setValue = 1; //Crc_CalculateCRCTest() will now return TRUE CodM_bIsCodingDataValidated = FALSE; NVM_MOUNTING_SIDE = NVM_RIGHT; IoHwAbUser_tMountingSideRaw = eIoHwAbUser_MountingSideRaw_Right; riCodMInit(); AL_UNITTEST_CHECK(ieDataStatus, tieDataStatus_Valid, == ); NVM_MOUNTING_SIDE = NVM_LEFT; CodM_bIsCodingDataValidated = FALSE; IoHwAbUser_tMountingSideRaw = eIoHwAbUser_MountingSideRaw_Left; riCodMInit(); AL_UNITTEST_CHECK(ieDataStatus, tieDataStatus_Valid, == ); NVM_MOUNTING_SIDE = NVM_LEFT; CodM_bIsCodingDataValidated = FALSE; IoHwAbUser_tMountingSideRaw = eIoHwAbUser_MountingSideRaw_Right; riCodMInit(); AL_UNITTEST_CHECK(ieDataStatus, tieDataStatus_Valid, == ); NVM_MOUNTING_SIDE = NVM_RIGHT; CodM_bIsCodingDataValidated = FALSE; IoHwAbUser_tMountingSideRaw = eIoHwAbUser_MountingSideRaw_Left; riCodMInit(); AL_UNITTEST_CHECK(ieDataStatus, tieDataStatus_Valid, == ); NVM_MOUNTING_SIDE = NVM_RIGHT; CodM_bIsCodingDataValidated = FALSE; IoHwAbUser_tMountingSideRaw = eIoHwAbUser_MountingSideRaw_Left; riCodMInit(); //AL_UNITTEST_CHECK(ieFuSaDataStatus, tieFuSaDataStatus_Valid, == ); } //----------------------------------------------------------------------------- /// \Test Case : Mt_rdCodMDeInit /// /// \Test Case Description /// - Test subject: /// Function rdCodMDeInit has been called to reach code coverage /// /// - Preconditions: none /// /// - Expected test results: /// - All conditions and assigned values mentioned for each test case/step shall be reached and passed /// //----------------------------------------------------------------------------- void Mt_rdCodMDeInit(void) { rdCodMDeInit(); } //----------------------------------------------------------------------------- /// \Test Case : Mt_rpCodM20ms /// /// \Test Case Description /// - Test subject: /// Function rpCodM20ms has been called to reach code coverage /// /// - Preconditions: none /// /// - Expected test results: /// - All conditions and assigned values mentioned for each test case/step shall be reached and passed /// //----------------------------------------------------------------------------- void Mt_rpCodM20ms(void) { ieSafetyCodingErrorReason = 0xFEu; CodM_boCrcCodingTestResultIsOk = TRUE; rpCodM20ms(); //AL_UNITTEST_CHECK(ieFuSaDataStatus, tieFuSaDataStatus_Valid, == ); ieSafetyCodingErrorReason = 0x04u; CodM_boCrcCodingTestResultIsOk = FALSE; rpCodM20ms(); AL_UNITTEST_CHECK(ieFuSaDataStatus, tieFuSaDataStatus_Invalid, == ); CodM_bIsCodingDataValidated = FALSE; CodM_CodingValidationCntr = 0U; rpCodM20ms(); AL_UNITTEST_CHECK(ieFuSaDataStatus, tieFuSaDataStatus_Invalid, == ); } //----------------------------------------------------------------------------- /// \Test Case : Mt_DoNotOptimize /// /// \Test Case Description /// - Test subject: /// Function DoNotOptimize has been called to reach code coverage /// /// - Preconditions: none /// /// - Expected test results: /// - All conditions and assigned values mentioned for each test case/step shall be reached and passed /// //----------------------------------------------------------------------------- void Mt_DoNotOptimize(void) { DoNotOptimize(); } //----------------------------------------------------------------------------- /// \Test Case : Mt_CodM_Cycle20ms /// /// \Test Case Description /// - Test subject: /// Function CodM_Cycle20ms has been called to reach code coverage /// /// - Preconditions: none /// /// - Expected test results: /// - All conditions and assigned values mentioned for each test case/step shall be reached and passed /// //----------------------------------------------------------------------------- void Mt_CodM_Cycle20ms(void) { CodM_Cycle20ms(); } //----------------------------------------------------------------------------- /// \Test Case : Mt_CodM_DeInit /// /// \Test Case Description /// - Test subject: /// Function CodM_DeInit has been called to reach code coverage /// /// - Preconditions: none /// /// - Expected test results: /// - All conditions and assigned values mentioned for each test case/step shall be reached and passed /// //----------------------------------------------------------------------------- void Mt_CodM_DeInit(void) { CodM_DeInit(); } //----------------------------------------------------------------------------- /// \Test Case : Mt_CodM_IsCodingLabelsCompatible /// /// \Test Case Description /// - Test subject: /// Function CodM_IsCodingLabelsCompatible has been called to reach code coverage /// /// - Preconditions: none /// /// - Expected test results: /// - All conditions and assigned values mentioned for each test case/step shall be reached and passed /// //----------------------------------------------------------------------------- void Mt_CodM_IsCodingLabelsCompatible(void) { static unsigned char ex[10] = { 1u,2u,3u,5u,6u,5u,4u,3u,5u,6u }; boolean retVal; unsigned char *szSrc = ex; unsigned char *szDest = ex; retVal = CodM_IsCodingLabelsCompatible(szSrc, szDest); AL_UNITTEST_CHECK(retVal, TRUE, == ); } void Mt_roCodMStartCodingDataVerification(void) { uint8 retVal; CodM_bIsCodingDataValidated = FALSE; retVal = roCodMStartCodingDataVerification(); AL_UNITTEST_CHECK(retVal, RTE_E_OK, == ); } // ---------------------------------------------------------------------------- // Add Test Cases //----------------------------------------------------------------------------- void ALUnitTest_AddTests(void) { ALUnitTest_AddFunction("Mt_riCodMInit", Mt_riCodMInit); ALUnitTest_AddFunction("Mt_rdCodMDeInit", Mt_rdCodMDeInit); ALUnitTest_AddFunction("Mt_rpCodM20ms", Mt_rpCodM20ms); ALUnitTest_AddFunction("Mt_DoNotOptimize", Mt_DoNotOptimize); ALUnitTest_AddFunction("Mt_CodM_Cycle20ms", Mt_CodM_Cycle20ms); ALUnitTest_AddFunction("Mt_CodM_DeInit", Mt_CodM_DeInit); ALUnitTest_AddFunction("Mt_CodM_IsCodingLabelsCompatible", Mt_CodM_IsCodingLabelsCompatible); ALUnitTest_AddFunction("Mt_roCodMStartCodingDataVerification", Mt_roCodMStartCodingDataVerification); }