//-------------------------------------------------------------------------------------------------- void Testle_sms_SetGetBinary() { le_result_t res; le_sms_MsgRef_t myMsg; le_sms_Format_t myformat; char timestamp[LE_SMS_TIMESTAMP_MAX_LEN]; char tel[LE_MDMDEFS_PHONE_NUM_MAX_LEN]; uint8_t raw[LE_SMS_BINARY_MAX_LEN]; size_t uintval; uint32_t i; myMsg = le_sms_Create(); CU_ASSERT_PTR_NOT_NULL(myMsg); res=le_sms_SetDestination(myMsg, DEST_TEST_PATTERN); CU_ASSERT_EQUAL(res, LE_OK); res=le_sms_SetBinary(myMsg, BINARY_TEST_PATTERN, sizeof(BINARY_TEST_PATTERN)); CU_ASSERT_EQUAL(res, LE_OK); myformat=le_sms_GetFormat(myMsg); CU_ASSERT_EQUAL(myformat, LE_SMS_FORMAT_BINARY); res=le_sms_GetSenderTel(myMsg, tel, sizeof(tel)); CU_ASSERT_EQUAL(res, LE_NOT_PERMITTED); res=le_sms_GetTimeStamp(myMsg, timestamp, sizeof(timestamp)); CU_ASSERT_EQUAL(res, LE_NOT_PERMITTED); uintval=le_sms_GetUserdataLen(myMsg); CU_ASSERT_EQUAL(uintval, sizeof(BINARY_TEST_PATTERN)); uintval=1; res=le_sms_GetBinary(myMsg, raw, &uintval); CU_ASSERT_EQUAL(res, LE_OVERFLOW); uintval=sizeof(BINARY_TEST_PATTERN); res=le_sms_GetBinary(myMsg, raw, &uintval); CU_ASSERT_EQUAL(res, LE_OK); for(i=0; i<sizeof(BINARY_TEST_PATTERN) ; i++) { CU_ASSERT_EQUAL(raw[i], BINARY_TEST_PATTERN[i]); } CU_ASSERT_EQUAL(uintval, sizeof(BINARY_TEST_PATTERN)); res=le_sms_SetDestination(myMsg, VOID_PATTERN); CU_ASSERT_EQUAL(res, LE_BAD_PARAMETER); res=le_sms_SetBinary(myMsg, BINARY_TEST_PATTERN, 0); CU_ASSERT_EQUAL(res, LE_BAD_PARAMETER); le_sms_Delete(myMsg); }
//-------------------------------------------------------------------------------------------------- void Testle_sms_SendBinary() { le_result_t res; le_sms_MsgRef_t myMsg; myMsg = le_sms_Create(); CU_ASSERT_PTR_NOT_NULL(myMsg); LE_DEBUG("-TEST- Create Msg %p", myMsg); res=le_sms_SetDestination(myMsg, DEST_TEST_PATTERN); CU_ASSERT_EQUAL(res, LE_OK); res=le_sms_SetBinary(myMsg, BINARY_TEST_PATTERN, sizeof(BINARY_TEST_PATTERN)/sizeof(BINARY_TEST_PATTERN[0])); CU_ASSERT_EQUAL(res, LE_OK); res=le_sms_Send(myMsg); CU_ASSERT_NOT_EQUAL(res, LE_FAULT); CU_ASSERT_NOT_EQUAL(res, LE_FORMAT_ERROR); le_sms_Delete(myMsg); }
//-------------------------------------------------------------------------------------------------- static le_result_t Testle_sms_Send_Binary ( void ) { le_result_t res = LE_FAULT; le_sms_MsgRef_t myMsg; myMsg = le_sms_Create(); if (myMsg) { LE_DEBUG("-TEST- Create Msg %p", myMsg); res = le_sms_SetDestination(myMsg, DEST_TEST_PATTERN); if (res != LE_OK) { return LE_FAULT; } res = le_sms_SetBinary(myMsg, BINARY_TEST_PATTERN, sizeof(BINARY_TEST_PATTERN)/ sizeof(BINARY_TEST_PATTERN[0])); if (res != LE_OK) { return LE_FAULT; } res = le_sms_Send(myMsg); if ((res == LE_FAULT) || (res == LE_FORMAT_ERROR)) { return LE_FAULT; } le_sms_Delete(myMsg); res = LE_OK; } return res; }
//-------------------------------------------------------------------------------------------------- static void TestRxHandler ( le_sms_MsgRef_t msg, void* contextPtr ) { le_sms_Format_t myformat; le_sms_Type_t myType; uint16_t myMessageId = 0; uint16_t myMessageSerialNumber = 0; le_result_t res; size_t pduLen; char timestamp[LE_SMS_TIMESTAMP_MAX_BYTES]; char text[LE_SMS_TEXT_MAX_BYTES] = {0}; uint8_t pdu[LE_SMS_PDU_MAX_BYTES] = {0}; uint8_t bin[50] = {0}; LE_INFO("-TEST- New SMS message received ! msg.%p", msg); myformat = le_sms_GetFormat(msg); myType = le_sms_GetType(msg); LE_INFO("-TEST- New SMS message format %d, Type %d", myformat, myType); if (myType != LE_SMS_TYPE_BROADCAST_RX) { LE_ERROR("-TEST 1- Check le_sms_GetType failure! %d", myType); return; } else { LE_INFO("-TEST 1- Check le_sms_GetType LE_SMS_TYPE_CB"); } res = le_sms_GetCellBroadcastId(msg, &myMessageId); if (res != LE_OK) { LE_ERROR("-TEST 2- Check le_sms_GetMessageIdCellBroadcast failure! %d", res); return; } else { LE_INFO("-TEST 2- Check le_sms_GetMessageIdCellBroadcast OK Message Id 0x%04X (%d)", myMessageId, myMessageId); } res = le_sms_GetCellBroadcastSerialNumber(msg, &myMessageSerialNumber); if (res != LE_OK) { LE_ERROR("-TEST 3- Check le_sms_GetCellBroadcastSerialNumber failure! %d", res); return; } else { LE_INFO("-TEST 3- Check le_sms_GetCellBroadcastSerialNumber OK Message Id 0x%04X (%d)", myMessageSerialNumber, myMessageSerialNumber); } if (myformat == LE_SMS_FORMAT_TEXT) { res = le_sms_GetTimeStamp(msg, timestamp, sizeof(timestamp)); if(res != LE_NOT_PERMITTED) { LE_ERROR("-TEST 4- Check le_sms_GetTimeStamp failure! %d", res); return; } else { LE_INFO("-TEST 4- Check le_sms_GetTimeStamp LE_NOT_PERMITTED"); } res = le_sms_GetText(msg, text, sizeof(text)); if(res != LE_OK) { LE_ERROR("-TEST 5- Check le_sms_GetText failure! %d", res); LE_ERROR("FAILED !!"); return; } else { LE_INFO("SMS CB text=> '%s'",text); LE_INFO("-TEST 5- Check le_sms_GetText OK."); } pduLen = le_sms_GetPDULen(msg); if( (pduLen <= 0) || (pduLen > LE_SMS_PDU_MAX_BYTES)) { LE_ERROR("-TEST 6 Check le_sms_GetPDULen failure!"); LE_ERROR("FAILED !!"); return; } else { LE_INFO("SMS CB Pdu len %d", (int) pduLen); LE_INFO("-TEST 6- Check le_sms_GetPDULen OK."); } res = le_sms_GetPDU(msg, pdu, &pduLen); if(res != LE_OK) { LE_ERROR("-TEST 7 Check le_sms_GetPDU failure! %d", res); LE_ERROR("FAILED !!"); return; } else { Dump("SMS CB PDU", pdu, pduLen); LE_INFO("-TEST 7 Check le_sms_GetPDU OK."); } res = le_sms_DeleteFromStorage(msg); if(res != LE_NO_MEMORY) { LE_ERROR("-TEST 8 Check le_sms_DeleteFromStorage failure! %d", res); LE_ERROR("FAILED !!"); return; } else { Dump("SMS CB PDU", pdu, pduLen); LE_INFO("-TEST 8 Check le_sms_DeleteFromStorage LE_NO_MEMORY."); } res = le_sms_SetText(msg, "TOTO"); if(res != LE_NOT_PERMITTED) { LE_ERROR("-TEST 9 Check le_sms_SetText failure !%d", res); LE_ERROR("FAILED !!"); return; } else { LE_INFO("-TEST 9 Check le_sms_SetText OK."); } res = le_sms_SetDestination(msg, "0123456789"); if(res != LE_NOT_PERMITTED) { LE_ERROR("-TEST 10 Check le_sms_SetDestination failure! %d", res); LE_ERROR("FAILED !!"); return; } else { LE_INFO("-TEST 10 Check le_sms_SetDestination LE_NOT_PERMITTED."); } res = le_sms_SetBinary(msg, bin, sizeof(bin)); if(res != LE_NOT_PERMITTED) { LE_ERROR("-TEST 11 Check le_sms_SetBinary failure! %d", res); LE_ERROR("FAILED !!"); return; } else { LE_INFO("-TEST 11 Check le_sms_SetBinary LE_NOT_PERMITTED."); } size_t binLen = sizeof(bin); res = le_sms_GetBinary(msg, bin, &binLen); if(res != LE_FORMAT_ERROR) { LE_ERROR("-TEST 12 Check le_sms_GetBinary failure! %d", res); LE_ERROR("FAILED !!"); return; } else { LE_INFO("-TEST 12 Check le_sms_GetBinary LE_FORMAT_ERROR."); } } else if (myformat == LE_SMS_FORMAT_BINARY) { LE_INFO("SMS Cell Broadcast in binary format"); res = le_sms_GetTimeStamp(msg, timestamp, sizeof(timestamp)); if(res != LE_NOT_PERMITTED) { LE_ERROR("-TEST 4- Check le_sms_GetTimeStamp failure! %d", res); return; } else { LE_INFO("-TEST 4- Check le_sms_GetTimeStamp LE_NOT_PERMITTED"); } res = le_sms_GetText(msg, text, sizeof(text)); if(res != LE_FORMAT_ERROR) { LE_ERROR("-TEST 5- Check le_sms_GetText failure! %d", res); LE_ERROR("FAILED !!"); return; } else { LE_INFO("SMS CB text=> '%s'",text); LE_INFO("-TEST 5- Check le_sms_GetText LE_FORMAT_ERROR."); } pduLen = le_sms_GetPDULen(msg); if( (pduLen <= 0) || (pduLen > LE_SMS_PDU_MAX_BYTES)) { LE_ERROR("-TEST 6 Check le_sms_GetPDULen failure!"); LE_ERROR("FAILED !!"); return; } else { LE_INFO("SMS CB Pdu len %d", (int) pduLen); LE_INFO("-TEST 6- Check le_sms_GetPDULen OK."); } res = le_sms_GetPDU(msg, pdu, &pduLen); if(res != LE_OK) { LE_ERROR("-TEST 7 Check le_sms_GetPDU failure! %d", res); LE_ERROR("FAILED !!"); return; } else { Dump("SMS CB PDU", pdu, pduLen); LE_INFO("-TEST 7 Check le_sms_GetPDU OK."); } res = le_sms_DeleteFromStorage(msg); if(res != LE_NO_MEMORY) { LE_ERROR("-TEST 8 Check le_sms_DeleteFromStorage failure! %d", res); LE_ERROR("FAILED !!"); return; } else { Dump("SMS CB PDU", pdu, pduLen); LE_INFO("-TEST 8 Check le_sms_DeleteFromStorage LE_NO_MEMORY."); } res = le_sms_SetText(msg, "TOTO"); if(res != LE_NOT_PERMITTED) { LE_ERROR("-TEST 9 Check le_sms_SetText failure !%d", res); LE_ERROR("FAILED !!"); return; } else { LE_INFO("-TEST 9 Check le_sms_SetText LE_NOT_PERMITTED."); } res = le_sms_SetDestination(msg, "0123456789"); if(res != LE_NOT_PERMITTED) { LE_ERROR("-TEST 10 Check le_sms_SetDestination failure! %d", res); LE_ERROR("FAILED !!"); return; } else { LE_INFO("-TEST 10 Check le_sms_SetDestination LE_NOT_PERMITTED."); } res = le_sms_SetBinary(msg, bin, sizeof(bin)); if(res != LE_NOT_PERMITTED) { LE_ERROR("-TEST 11 Check le_sms_SetBinary failure! %d", res); LE_ERROR("FAILED !!"); return; } else { LE_INFO("-TEST 11 Check le_sms_SetBinary LE_NOT_PERMITTED."); } size_t binLen = sizeof(bin); res = le_sms_GetBinary(msg, bin, &binLen); if(res != LE_OK) { LE_ERROR("-TEST 12 Check le_sms_GetBinary failure! %d", res); LE_ERROR("FAILED !!"); return; } else { bin[binLen] = 0; LE_INFO("SMS CB binary (%d)=> '%s'",(int) binLen, bin); LE_INFO("-TEST 12 Check le_sms_GetBinary OK."); } } else { LE_INFO("SMS Cell Broadcast not in test format"); } le_sms_Delete(msg); LE_INFO("smsCBTest sequence PASSED"); }