Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: mbed-TFT-example-NCS36510 mbed-Accelerometer-example-NCS36510 mbed-Accelerometer-example-NCS36510
libCoap_protocol_test.cpp
00001 /* 00002 * Copyright (c) 2015 ARM Limited. All rights reserved. 00003 * SPDX-License-Identifier: Apache-2.0 00004 * Licensed under the Apache License, Version 2.0 (the License); you may 00005 * not use this file except in compliance with the License. 00006 * You may obtain a copy of the License at 00007 * 00008 * http://www.apache.org/licenses/LICENSE-2.0 00009 * 00010 * Unless required by applicable law or agreed to in writing, software 00011 * distributed under the License is distributed on an AS IS BASIS, WITHOUT 00012 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00013 * See the License for the specific language governing permissions and 00014 * limitations under the License. 00015 */ 00016 #include "CppUTest/TestHarness.h" 00017 #include <string.h> 00018 #include <math.h> 00019 #include <stdint.h> 00020 #include "sn_nsdl.h" 00021 #include "sn_coap_protocol.h" 00022 #include "sn_nsdl_lib.h" 00023 #include "sn_coap_header_internal.h" 00024 #include "sn_coap_protocol_internal.h" 00025 00026 #include "sn_coap_builder_stub.h" 00027 #include "sn_coap_parser_stub.h" 00028 #include "sn_coap_header_check_stub.h" 00029 00030 00031 int retCounter = 0; 00032 static coap_s *coap_handle = NULL; 00033 void myFree(void* addr); 00034 void* myMalloc(uint16_t size); 00035 uint8_t null_tx_cb(uint8_t *a, uint16_t b, sn_nsdl_addr_s *c, void *d); 00036 00037 TEST_GROUP(libCoap_protocol) 00038 { 00039 void setup() { 00040 retCounter = 1; 00041 coap_handle = sn_coap_protocol_init(myMalloc, myFree, null_tx_cb, NULL); 00042 } 00043 00044 void teardown() { 00045 retCounter = 0; 00046 sn_coap_protocol_destroy(coap_handle); 00047 } 00048 }; 00049 00050 void* myMalloc(uint16_t size) 00051 { 00052 if( retCounter > 0 ){ 00053 retCounter--; 00054 return malloc(size); 00055 }else { 00056 return NULL; 00057 } 00058 } 00059 00060 void myFree(void* addr){ 00061 if( addr ){ 00062 free(addr); 00063 } 00064 } 00065 00066 uint8_t null_tx_cb(uint8_t *a, uint16_t b, sn_nsdl_addr_s *c, void *d) 00067 { 00068 return 0; 00069 } 00070 00071 int8_t null_rx_cb(sn_coap_hdr_s *a, sn_nsdl_addr_s *b, void *c) 00072 { 00073 00074 } 00075 00076 TEST(libCoap_protocol, sn_coap_protocol_destroy) 00077 { 00078 CHECK( -1 == sn_coap_protocol_destroy(NULL)); 00079 struct coap_s *handle = (struct coap_s *)malloc(sizeof(struct coap_s)); 00080 handle->sn_coap_protocol_free = &myFree; 00081 handle->sn_coap_protocol_malloc = &myMalloc; 00082 ns_list_init(&handle->linked_list_resent_msgs); 00083 coap_send_msg_s *msg_ptr = (coap_send_msg_s*)malloc(sizeof(coap_send_msg_s)); 00084 memset(msg_ptr, 0, sizeof(coap_send_msg_s)); 00085 msg_ptr->send_msg_ptr = (sn_nsdl_transmit_s*)malloc(sizeof(sn_nsdl_transmit_s)); 00086 memset(msg_ptr->send_msg_ptr, 0 , sizeof(sn_nsdl_transmit_s)); 00087 msg_ptr->send_msg_ptr->uri_path_ptr = (uint8_t*)malloc(2); 00088 msg_ptr->send_msg_ptr->uri_path_len = 2; 00089 00090 ns_list_add_to_end(&handle->linked_list_resent_msgs, msg_ptr); 00091 #if SN_COAP_DUPLICATION_MAX_MSGS_COUNT 00092 ns_list_init(&handle->linked_list_duplication_msgs); 00093 #endif 00094 #if SN_COAP_MAX_BLOCKWISE_PAYLOAD_SIZE 00095 ns_list_init(&handle->linked_list_blockwise_sent_msgs); 00096 ns_list_init(&handle->linked_list_blockwise_received_payloads); 00097 #endif 00098 CHECK( 0 == sn_coap_protocol_destroy(handle)); 00099 } 00100 00101 TEST(libCoap_protocol, sn_coap_protocol_init_null_func_ptrs) 00102 { 00103 POINTERS_EQUAL(NULL, sn_coap_protocol_init(NULL, NULL, NULL, NULL)); 00104 } 00105 00106 TEST(libCoap_protocol, sn_coap_protocol_init_null_malloc) 00107 { 00108 POINTERS_EQUAL(NULL, sn_coap_protocol_init(myMalloc, myFree, null_tx_cb, NULL)); 00109 00110 retCounter = 1; 00111 struct coap_s * handle = sn_coap_protocol_init(myMalloc, myFree, null_tx_cb, NULL); 00112 CHECK(NULL != handle); 00113 00114 sn_coap_protocol_destroy(handle); 00115 } 00116 00117 TEST(libCoap_protocol, sn_coap_protocol_set_block_size) 00118 { 00119 #if SN_COAP_MAX_BLOCKWISE_PAYLOAD_SIZE 00120 CHECK( 0 == sn_coap_protocol_set_block_size(coap_handle,16) ); 00121 CHECK( -1 == sn_coap_protocol_set_block_size(NULL,1) ); 00122 #endif 00123 CHECK( -1 == sn_coap_protocol_set_block_size(coap_handle,1) ); 00124 } 00125 00126 TEST(libCoap_protocol, sn_coap_protocol_set_duplicate_buffer_size) 00127 { 00128 #if SN_COAP_DUPLICATION_MAX_MSGS_COUNT 00129 CHECK( 0 == sn_coap_protocol_set_duplicate_buffer_size(coap_handle,3)); 00130 CHECK( -1 == sn_coap_protocol_set_duplicate_buffer_size(NULL,3)); 00131 #endif 00132 CHECK( -1 == sn_coap_protocol_set_duplicate_buffer_size(coap_handle,999)); 00133 } 00134 00135 TEST(libCoap_protocol, sn_coap_protocol_set_retransmission_parameters) 00136 { 00137 #if ENABLE_RESENDINGS 00138 CHECK( 0 == sn_coap_protocol_set_retransmission_parameters(coap_handle,3,0) ); 00139 CHECK( 0 == sn_coap_protocol_set_retransmission_parameters(coap_handle,3, 10) ); 00140 CHECK( -1 == sn_coap_protocol_set_retransmission_parameters(NULL,3,0) ); 00141 #endif 00142 CHECK( -1 == sn_coap_protocol_set_retransmission_parameters(coap_handle,999,0) ) 00143 } 00144 00145 TEST(libCoap_protocol, sn_coap_protocol_set_retransmission_buffer) 00146 { 00147 #if ENABLE_RESENDINGS 00148 CHECK( 0 == sn_coap_protocol_set_retransmission_buffer(coap_handle,3,3) ); 00149 CHECK( -1 == sn_coap_protocol_set_retransmission_buffer(NULL,3,3) ); 00150 #endif 00151 CHECK( -1 == sn_coap_protocol_set_retransmission_buffer(coap_handle,3,999) ); 00152 } 00153 00154 //TEST(libCoap_protocol, sn_coap_protocol_clear_retransmission_buffer) 00155 //{ 00156 // sn_coap_protocol_clear_retransmission_buffer(); 00157 //} 00158 #include <stdio.h> 00159 00160 TEST(libCoap_protocol, sn_coap_protocol_delete_retransmission) 00161 { 00162 #if ENABLE_RESENDINGS 00163 retCounter = 6; 00164 sn_nsdl_addr_s dst_addr_ptr; 00165 sn_coap_hdr_s src_coap_msg_ptr; 00166 uint8_t temp_addr[4] = {0}; 00167 uint8_t dst_packet_data_ptr[4] = {0x40, 0x00, 0x00, 0x63}; 00168 00169 memset(&dst_addr_ptr, 0, sizeof(sn_nsdl_addr_s)); 00170 memset(&src_coap_msg_ptr, 0, sizeof(sn_coap_hdr_s)); 00171 00172 dst_addr_ptr.addr_ptr = temp_addr; 00173 dst_addr_ptr.addr_len = 4; 00174 dst_addr_ptr.type = SN_NSDL_ADDRESS_TYPE_IPV4; 00175 00176 struct coap_s * handle = sn_coap_protocol_init(myMalloc, myFree, null_tx_cb, NULL); 00177 00178 CHECK( -1 == sn_coap_protocol_delete_retransmission(NULL, 0)); 00179 00180 CHECK( -2 == sn_coap_protocol_delete_retransmission(handle, 0)); 00181 00182 sn_coap_builder_stub.expectedInt16 = 4; 00183 00184 CHECK( 0 < sn_coap_protocol_build(handle, &dst_addr_ptr, dst_packet_data_ptr, &src_coap_msg_ptr, NULL)); 00185 00186 CHECK( 0 == sn_coap_protocol_delete_retransmission(handle, 99)); 00187 00188 sn_coap_protocol_destroy(handle); 00189 #endif 00190 } 00191 00192 TEST(libCoap_protocol, sn_coap_protocol_build) 00193 { 00194 retCounter = 1; 00195 struct coap_s * handle = sn_coap_protocol_init(myMalloc, myFree, null_tx_cb, NULL); 00196 sn_nsdl_addr_s addr; 00197 memset(&addr, 0, sizeof(sn_nsdl_addr_s)); 00198 sn_coap_hdr_s hdr; 00199 memset(&hdr, 0, sizeof(sn_coap_hdr_s)); 00200 00201 uint8_t* dst_packet_data_ptr = (uint8_t*)malloc(5); 00202 memset(dst_packet_data_ptr, '1', 5); 00203 00204 CHECK( -2 == sn_coap_protocol_build(NULL, NULL, NULL, NULL, NULL)); 00205 00206 CHECK( -2 == sn_coap_protocol_build(handle, &addr, dst_packet_data_ptr, &hdr, NULL)); 00207 00208 hdr.msg_type = COAP_MSG_TYPE_CONFIRMABLE; 00209 hdr.msg_id = 0; 00210 00211 addr.addr_ptr = (uint8_t*)malloc(5); 00212 memset(addr.addr_ptr, '1', 5); 00213 00214 sn_coap_builder_stub.expectedInt16 = 0; 00215 00216 CHECK( 0 == sn_coap_protocol_build(handle, &addr, dst_packet_data_ptr, &hdr, NULL)); 00217 00218 hdr.payload_ptr = (uint8_t*)malloc(SN_COAP_MAX_BLOCKWISE_PAYLOAD_SIZE + 20); 00219 memset(hdr.payload_ptr, '1', SN_COAP_MAX_BLOCKWISE_PAYLOAD_SIZE + 20); 00220 hdr.payload_len = SN_COAP_MAX_BLOCKWISE_PAYLOAD_SIZE + 20; 00221 00222 sn_coap_builder_stub.expectedInt16 = -3; 00223 // CHECK( -2 == sn_coap_protocol_build(handle, &addr, dst_packet_data_ptr, &hdr, NULL)); 00224 00225 retCounter = 0; 00226 hdr.options_list_ptr = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 00227 memset(hdr.options_list_ptr, 0, sizeof(sn_coap_options_list_s)); 00228 hdr.options_list_ptr->block1 = 67777; 00229 00230 CHECK( -3 == sn_coap_protocol_build(handle, &addr, dst_packet_data_ptr, &hdr, NULL)); 00231 free(hdr.options_list_ptr); 00232 hdr.options_list_ptr = NULL; 00233 00234 retCounter = 2; 00235 CHECK( -3 == sn_coap_protocol_build(handle, &addr, dst_packet_data_ptr, &hdr, NULL)); 00236 00237 free(hdr.options_list_ptr); 00238 hdr.options_list_ptr = NULL; 00239 00240 hdr.payload_len = SN_COAP_MAX_BLOCKWISE_PAYLOAD_SIZE + 20; 00241 hdr.msg_code = COAP_MSG_CODE_RESPONSE_BAD_REQUEST; 00242 hdr.options_list_ptr = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 00243 memset(hdr.options_list_ptr, 0, sizeof(sn_coap_options_list_s)); 00244 hdr.options_list_ptr->block2 = 1; 00245 retCounter = 0; 00246 00247 CHECK( -3 == sn_coap_protocol_build(handle, &addr, dst_packet_data_ptr, &hdr, NULL)); 00248 free(hdr.options_list_ptr); 00249 hdr.options_list_ptr = NULL; 00250 00251 free(hdr.payload_ptr); 00252 hdr.payload_ptr = NULL; 00253 hdr.payload_len = 0; 00254 00255 //Test variations of sn_coap_convert_block_size here --> 00256 for( int i=0; i < 8; i++ ){ 00257 uint16_t multiplier = 16*pow(2, i); 00258 sn_coap_protocol_set_block_size(handle,multiplier); 00259 hdr.payload_ptr = (uint8_t*)malloc(multiplier + 20); 00260 memset(hdr.payload_ptr, '1', multiplier + 20); 00261 hdr.payload_len = multiplier + 20; 00262 retCounter = 2; 00263 hdr.msg_code = COAP_MSG_CODE_RESPONSE_BAD_REQUEST; 00264 CHECK( -3 == sn_coap_protocol_build(handle, &addr, dst_packet_data_ptr, &hdr, NULL)); 00265 hdr.msg_code = COAP_MSG_CODE_EMPTY; 00266 00267 free(hdr.options_list_ptr); 00268 hdr.options_list_ptr = NULL; 00269 00270 free(hdr.payload_ptr); 00271 hdr.payload_ptr = NULL; 00272 hdr.payload_len = 0; 00273 } 00274 sn_coap_protocol_set_block_size(handle,SN_COAP_MAX_BLOCKWISE_PAYLOAD_SIZE); 00275 00276 // <-- Test variations of sn_coap_convert_block_size here 00277 00278 retCounter = 1; 00279 sn_coap_builder_stub.expectedInt16 = -1; 00280 CHECK( -1 == sn_coap_protocol_build(handle, &addr, dst_packet_data_ptr, &hdr, NULL)); 00281 00282 retCounter = 1; 00283 sn_coap_builder_stub.expectedInt16 = 1; 00284 CHECK( 1 == sn_coap_protocol_build(handle, &addr, dst_packet_data_ptr, &hdr, NULL)); 00285 00286 hdr.msg_code = COAP_MSG_CODE_EMPTY; 00287 00288 retCounter = 2; 00289 sn_coap_builder_stub.expectedInt16 = 1; 00290 CHECK( 1 == sn_coap_protocol_build(handle, &addr, dst_packet_data_ptr, &hdr, NULL)); 00291 00292 retCounter = 3; 00293 sn_coap_builder_stub.expectedInt16 = 1; 00294 CHECK( 1 == sn_coap_protocol_build(handle, &addr, dst_packet_data_ptr, &hdr, NULL)); 00295 00296 retCounter = 4; 00297 sn_coap_builder_stub.expectedInt16 = 1; 00298 CHECK( 1 == sn_coap_protocol_build(handle, &addr, dst_packet_data_ptr, &hdr, NULL)); 00299 00300 retCounter = 5; 00301 sn_coap_builder_stub.expectedInt16 = 1; 00302 CHECK( 1 == sn_coap_protocol_build(handle, &addr, dst_packet_data_ptr, &hdr, NULL)); 00303 00304 // Test second SN_COAP_MAX_BLOCKWISE_PAYLOAD_SIZE --> 00305 hdr.payload_ptr = (uint8_t*)malloc(SN_COAP_MAX_BLOCKWISE_PAYLOAD_SIZE + 20); 00306 memset(hdr.payload_ptr, '1', SN_COAP_MAX_BLOCKWISE_PAYLOAD_SIZE + 20); 00307 hdr.payload_len = SN_COAP_MAX_BLOCKWISE_PAYLOAD_SIZE + 20; 00308 00309 retCounter = 2; 00310 sn_coap_builder_stub.expectedInt16 = 1; 00311 CHECK( 1 == sn_coap_protocol_build(handle, &addr, dst_packet_data_ptr, &hdr, NULL)); 00312 free(hdr.payload_ptr); 00313 00314 hdr.payload_ptr = (uint8_t*)malloc(SN_COAP_MAX_BLOCKWISE_PAYLOAD_SIZE + 20); 00315 memset(hdr.payload_ptr, '1', SN_COAP_MAX_BLOCKWISE_PAYLOAD_SIZE + 20); 00316 hdr.payload_len = SN_COAP_MAX_BLOCKWISE_PAYLOAD_SIZE + 20; 00317 00318 retCounter = 4; 00319 sn_coap_builder_stub.expectedInt16 = 1; 00320 CHECK( 1 == sn_coap_protocol_build(handle, &addr, dst_packet_data_ptr, &hdr, NULL)); 00321 00322 free(hdr.payload_ptr); 00323 hdr.payload_ptr = (uint8_t*)malloc(UINT16_MAX); 00324 memset(hdr.payload_ptr, '1', UINT16_MAX); 00325 hdr.payload_len = UINT16_MAX; 00326 00327 retCounter = 5; 00328 sn_coap_builder_stub.expectedInt16 = 1; 00329 CHECK( 1 == sn_coap_protocol_build(handle, &addr, dst_packet_data_ptr, &hdr, NULL)); 00330 00331 free(hdr.payload_ptr); 00332 hdr.payload_ptr = (uint8_t*)malloc(UINT16_MAX - 1); 00333 memset(hdr.payload_ptr, '1', UINT16_MAX - 1); 00334 hdr.payload_len = UINT16_MAX - 1; 00335 00336 retCounter = 5; 00337 sn_coap_builder_stub.expectedInt16 = 1; 00338 CHECK( 1 == sn_coap_protocol_build(handle, &addr, dst_packet_data_ptr, &hdr, NULL)); 00339 00340 sn_coap_protocol_destroy(handle); 00341 handle = NULL; 00342 retCounter = 1; 00343 handle = sn_coap_protocol_init(myMalloc, myFree, null_tx_cb, NULL); 00344 free(hdr.options_list_ptr); 00345 hdr.options_list_ptr = NULL; 00346 //Test sn_coap_protocol_copy_header here --> 00347 retCounter = 6; 00348 sn_coap_builder_stub.expectedInt16 = 1; 00349 hdr.payload_len = SN_COAP_MAX_BLOCKWISE_PAYLOAD_SIZE + 20; 00350 CHECK( -2 == sn_coap_protocol_build(handle, &addr, dst_packet_data_ptr, &hdr, NULL)); 00351 00352 free(hdr.options_list_ptr); 00353 hdr.options_list_ptr = NULL; 00354 00355 sn_coap_hdr_s* hdr2 = (sn_coap_hdr_s*)malloc(sizeof(sn_coap_hdr_s)); 00356 memset(hdr2, 0, sizeof(sn_coap_hdr_s)); 00357 hdr2->msg_type = COAP_MSG_TYPE_NON_CONFIRMABLE; 00358 hdr2->uri_path_ptr = (uint8_t*)malloc(3); 00359 hdr2->uri_path_len = 3; 00360 hdr2->token_ptr = (uint8_t*)malloc(3); 00361 hdr2->token_len = 3; 00362 hdr2->content_format = COAP_CT_TEXT_PLAIN; 00363 00364 hdr2->options_list_ptr = (sn_coap_options_list_s *)malloc(sizeof(sn_coap_options_list_s)); 00365 memset(hdr2->options_list_ptr, 0, sizeof(sn_coap_options_list_s)); 00366 hdr2->options_list_ptr->accept = COAP_CT_TEXT_PLAIN; 00367 hdr2->options_list_ptr->block1 = 67777; 00368 hdr2->options_list_ptr->block2 = 67777; 00369 hdr2->options_list_ptr->etag_ptr = (uint8_t*)malloc(3); 00370 hdr2->options_list_ptr->etag_len = 3; 00371 hdr2->options_list_ptr->location_path_ptr = (uint8_t*)malloc(3); 00372 hdr2->options_list_ptr->location_path_len = 3; 00373 hdr2->options_list_ptr->location_query_ptr = (uint8_t*)malloc(3); 00374 hdr2->options_list_ptr->location_query_len = 3; 00375 hdr2->options_list_ptr->max_age = 3; 00376 hdr2->options_list_ptr->observe = 0; 00377 hdr2->options_list_ptr->proxy_uri_ptr = (uint8_t*)malloc(3); 00378 hdr2->options_list_ptr->proxy_uri_len = 3; 00379 hdr2->options_list_ptr->uri_host_ptr = (uint8_t*)malloc(3); 00380 hdr2->options_list_ptr->uri_host_len = 3; 00381 hdr2->options_list_ptr->uri_port = 3; 00382 hdr2->options_list_ptr->uri_query_ptr = (uint8_t*)malloc(3); 00383 hdr2->options_list_ptr->uri_query_len = 3; 00384 hdr2->options_list_ptr->use_size1 = true; 00385 hdr2->options_list_ptr->size1 = 0xFFFF01; 00386 00387 int buff_len = SN_COAP_MAX_BLOCKWISE_PAYLOAD_SIZE + 20; 00388 hdr2->payload_ptr = (uint8_t*)malloc(buff_len); 00389 00390 for( int i=0; i < 8; i++ ){ 00391 retCounter = 1 + i; 00392 sn_coap_builder_stub.expectedInt16 = 1; 00393 hdr2->payload_len = buff_len; 00394 int8_t rett = sn_coap_protocol_build(handle, &addr, dst_packet_data_ptr, hdr2, NULL); 00395 CHECK( -2 == rett ); 00396 } 00397 00398 retCounter = 11; 00399 sn_coap_builder_stub.expectedInt16 = 1; 00400 hdr2->payload_len = buff_len; 00401 CHECK( 1 == sn_coap_protocol_build(handle, &addr, dst_packet_data_ptr, hdr2, NULL)); 00402 00403 retCounter = 19; 00404 sn_coap_builder_stub.expectedInt16 = 1; 00405 hdr2->payload_len = buff_len; 00406 CHECK( 1 == sn_coap_protocol_build(handle, &addr, dst_packet_data_ptr, hdr2, NULL)); 00407 00408 free(hdr2->payload_ptr); 00409 sn_coap_parser_release_allocated_coap_msg_mem(handle, hdr2); 00410 hdr2 = NULL; 00411 00412 //<-- Test sn_coap_protocol_copy_header here 00413 00414 hdr.msg_code = COAP_MSG_CODE_REQUEST_GET; 00415 retCounter = 5; 00416 sn_coap_builder_stub.expectedInt16 = 1; 00417 hdr.payload_len = 0; 00418 CHECK( 1 == sn_coap_protocol_build(handle, &addr, dst_packet_data_ptr, &hdr, NULL)); 00419 00420 sn_coap_protocol_destroy(handle); 00421 handle = NULL; 00422 retCounter = 1; 00423 handle = sn_coap_protocol_init(myMalloc, myFree, null_tx_cb, NULL); 00424 00425 retCounter = 6; 00426 sn_coap_builder_stub.expectedInt16 = 1; 00427 hdr.payload_len = 0; 00428 CHECK( -2 == sn_coap_protocol_build(handle, &addr, dst_packet_data_ptr, &hdr, NULL)); 00429 00430 retCounter = 7; 00431 sn_coap_builder_stub.expectedInt16 = 1; 00432 hdr.payload_len = 0; 00433 CHECK( 1 == sn_coap_protocol_build(handle, &addr, dst_packet_data_ptr, &hdr, NULL)); 00434 00435 free(hdr.payload_ptr); 00436 hdr.payload_ptr = NULL; 00437 hdr.payload_len = 0; 00438 00439 hdr.msg_code = COAP_MSG_CODE_EMPTY; 00440 00441 // <-- Test second SN_COAP_MAX_BLOCKWISE_PAYLOAD_SIZE 00442 00443 free(addr.addr_ptr); 00444 free(dst_packet_data_ptr); 00445 sn_coap_protocol_destroy(handle); 00446 } 00447 00448 TEST(libCoap_protocol, sn_coap_protocol_parse) 00449 { 00450 CHECK( NULL == sn_coap_protocol_parse(NULL, NULL, 0, NULL, NULL) ); 00451 00452 retCounter = 1; 00453 struct coap_s * handle = sn_coap_protocol_init(myMalloc, myFree, null_tx_cb, NULL); 00454 sn_nsdl_addr_s* addr = (sn_nsdl_addr_s*)malloc(sizeof(sn_nsdl_addr_s)); 00455 memset(addr, 0, sizeof(sn_nsdl_addr_s)); 00456 00457 addr->addr_ptr = (uint8_t*)malloc(5); 00458 00459 uint8_t *packet_data_ptr = (uint8_t*)malloc(5); 00460 uint16_t packet_data_len = 5; 00461 00462 sn_coap_parser_stub.expectedHeader = NULL; 00463 CHECK( NULL == sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL) ); 00464 00465 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 00466 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 00467 sn_coap_header_check_stub.expectedInt8 = 1; 00468 sn_coap_parser_stub.expectedHeader->coap_status = COAP_STATUS_PARSER_ERROR_IN_HEADER; 00469 CHECK( NULL == sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL) ); 00470 00471 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 00472 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 00473 sn_coap_header_check_stub.expectedInt8 = 1; 00474 sn_coap_parser_stub.expectedHeader->msg_code = sn_coap_msg_code_e(COAP_MSG_CODE_RESPONSE_PROXYING_NOT_SUPPORTED + 60); 00475 00476 CHECK( NULL == sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL) ); 00477 00478 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 00479 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 00480 sn_coap_header_check_stub.expectedInt8 = 0; 00481 00482 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 00483 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_EMPTY; 00484 00485 CHECK( NULL == sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL) ); 00486 00487 //Test sn_coap_handle_blockwise_message, block1 != NULL --> 00488 sn_coap_protocol_set_duplicate_buffer_size(handle,1); 00489 00490 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 00491 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 00492 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 00493 sn_coap_parser_stub.expectedHeader->msg_id = 4; 00494 00495 sn_coap_options_list_s* list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 00496 memset(list, 0, sizeof(sn_coap_options_list_s)); 00497 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 00498 sn_coap_parser_stub.expectedHeader->options_list_ptr->block1 = 1; 00499 sn_coap_parser_stub.expectedHeader->msg_id = 4; 00500 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 00501 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_REQUEST_GET; 00502 00503 sn_coap_hdr_s *ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 00504 CHECK( NULL == ret ); 00505 00506 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 00507 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 00508 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 00509 sn_coap_parser_stub.expectedHeader->msg_id = 4; 00510 00511 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 00512 memset(list, 0, sizeof(sn_coap_options_list_s)); 00513 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 00514 sn_coap_parser_stub.expectedHeader->options_list_ptr->block1 = 1; 00515 sn_coap_parser_stub.expectedHeader->msg_id = 4; 00516 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 00517 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_REQUEST_GET; 00518 uint8_t* payload = (uint8_t*)malloc(5); 00519 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 00520 sn_coap_parser_stub.expectedHeader->payload_len = 5; 00521 00522 retCounter = 1; 00523 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 00524 CHECK( NULL == ret ); 00525 free(payload); 00526 00527 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 00528 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 00529 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 00530 sn_coap_parser_stub.expectedHeader->msg_id = 4; 00531 00532 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 00533 memset(list, 0, sizeof(sn_coap_options_list_s)); 00534 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 00535 sn_coap_parser_stub.expectedHeader->options_list_ptr->block1 = 1; 00536 sn_coap_parser_stub.expectedHeader->msg_id = 4; 00537 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 00538 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_REQUEST_GET; 00539 payload = (uint8_t*)malloc(5); 00540 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 00541 sn_coap_parser_stub.expectedHeader->payload_len = 5; 00542 00543 retCounter = 2; 00544 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 00545 CHECK( NULL == ret ); 00546 free(payload); 00547 00548 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 00549 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 00550 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 00551 sn_coap_parser_stub.expectedHeader->msg_id = 4; 00552 00553 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 00554 memset(list, 0, sizeof(sn_coap_options_list_s)); 00555 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 00556 sn_coap_parser_stub.expectedHeader->options_list_ptr->block1 = 1; 00557 sn_coap_parser_stub.expectedHeader->msg_id = 4; 00558 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 00559 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_REQUEST_GET; 00560 payload = (uint8_t*)malloc(17); 00561 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 00562 sn_coap_parser_stub.expectedHeader->payload_len = 17; 00563 00564 retCounter = 3; 00565 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 00566 CHECK( COAP_STATUS_PARSER_DUPLICATED_MSG == ret->coap_status ); 00567 00568 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 00569 sn_coap_parser_stub.expectedHeader->msg_id = 5; 00570 00571 retCounter = 3; 00572 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 00573 CHECK( NULL == ret ); 00574 free(payload); 00575 00576 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 00577 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 00578 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 00579 sn_coap_parser_stub.expectedHeader->msg_id = 6; 00580 00581 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 00582 memset(list, 0, sizeof(sn_coap_options_list_s)); 00583 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 00584 sn_coap_parser_stub.expectedHeader->options_list_ptr->block1 = 1; 00585 sn_coap_parser_stub.expectedHeader->msg_id = 5; 00586 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 00587 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_REQUEST_GET; 00588 payload = (uint8_t*)malloc(17); 00589 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 00590 sn_coap_parser_stub.expectedHeader->payload_len = 17; 00591 00592 retCounter = 4; 00593 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 00594 CHECK( NULL == ret ); 00595 free(payload); 00596 00597 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 00598 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 00599 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 00600 sn_coap_parser_stub.expectedHeader->msg_id = 7; 00601 00602 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 00603 memset(list, 0, sizeof(sn_coap_options_list_s)); 00604 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 00605 sn_coap_parser_stub.expectedHeader->options_list_ptr->block1 = 1; 00606 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 00607 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_REQUEST_GET; 00608 payload = (uint8_t*)malloc(17); 00609 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 00610 sn_coap_parser_stub.expectedHeader->payload_len = 17; 00611 00612 retCounter = 5; 00613 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 00614 CHECK( NULL == ret ); 00615 free(payload); 00616 00617 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 00618 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 00619 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 00620 sn_coap_parser_stub.expectedHeader->msg_id = 8; 00621 00622 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 00623 memset(list, 0, sizeof(sn_coap_options_list_s)); 00624 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 00625 sn_coap_parser_stub.expectedHeader->options_list_ptr->block1 = 1; 00626 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 00627 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_REQUEST_GET; 00628 00629 retCounter = 6; 00630 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 00631 CHECK( COAP_STATUS_PARSER_BLOCKWISE_MSG_RECEIVED == ret->coap_status ); 00632 free(ret->payload_ptr); 00633 free(list); 00634 free(sn_coap_parser_stub.expectedHeader); 00635 00636 // block1 == 0x08 --> 00637 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 00638 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 00639 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 00640 sn_coap_parser_stub.expectedHeader->msg_id = 9; 00641 00642 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 00643 memset(list, 0, sizeof(sn_coap_options_list_s)); 00644 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 00645 sn_coap_parser_stub.expectedHeader->options_list_ptr->block1 = 0x08; 00646 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 00647 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_REQUEST_GET; 00648 payload = (uint8_t*)malloc(17); 00649 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 00650 sn_coap_parser_stub.expectedHeader->payload_len = 17; 00651 00652 retCounter = 2; 00653 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 00654 CHECK( NULL == ret ); 00655 free(payload); 00656 00657 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 00658 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 00659 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 00660 sn_coap_parser_stub.expectedHeader->msg_id = 10; 00661 00662 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 00663 memset(list, 0, sizeof(sn_coap_options_list_s)); 00664 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 00665 sn_coap_parser_stub.expectedHeader->options_list_ptr->block1 = 0x08; 00666 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 00667 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_REQUEST_GET; 00668 payload = (uint8_t*)malloc(17); 00669 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 00670 sn_coap_parser_stub.expectedHeader->payload_len = 17; 00671 00672 retCounter = 5; 00673 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 00674 CHECK( NULL == ret ); 00675 free(payload); 00676 00677 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 00678 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 00679 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 00680 sn_coap_parser_stub.expectedHeader->msg_id = 11; 00681 00682 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 00683 memset(list, 0, sizeof(sn_coap_options_list_s)); 00684 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 00685 sn_coap_parser_stub.expectedHeader->options_list_ptr->block1 = 0x08; 00686 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 00687 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_REQUEST_GET; 00688 payload = (uint8_t*)malloc(17); 00689 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 00690 sn_coap_parser_stub.expectedHeader->payload_len = 17; 00691 00692 retCounter = 6; 00693 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 00694 CHECK( NULL == ret ); 00695 free(payload); 00696 // free(list); 00697 // free(sn_coap_parser_stub.expectedHeader); 00698 00699 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 00700 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 00701 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 00702 sn_coap_parser_stub.expectedHeader->msg_id = 12; 00703 00704 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 00705 memset(list, 0, sizeof(sn_coap_options_list_s)); 00706 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 00707 sn_coap_parser_stub.expectedHeader->options_list_ptr->block1 = 0x0F; 00708 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 00709 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_REQUEST_POST; 00710 payload = (uint8_t*)malloc(17); 00711 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 00712 sn_coap_parser_stub.expectedHeader->payload_len = 17; 00713 sn_coap_builder_stub.expectedUint16 = 1; 00714 00715 retCounter = 7; 00716 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 00717 CHECK( NULL == ret ); 00718 free(payload); 00719 00720 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 00721 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 00722 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 00723 sn_coap_parser_stub.expectedHeader->msg_id = 13; 00724 00725 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 00726 memset(list, 0, sizeof(sn_coap_options_list_s)); 00727 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 00728 sn_coap_parser_stub.expectedHeader->options_list_ptr->block1 = 0x08; 00729 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 00730 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_REQUEST_PUT; 00731 payload = (uint8_t*)malloc(17); 00732 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 00733 sn_coap_parser_stub.expectedHeader->payload_len = 17; 00734 sn_coap_builder_stub.expectedUint16 = 1; 00735 00736 retCounter = 8; 00737 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 00738 CHECK( NULL != ret ); 00739 CHECK(COAP_STATUS_PARSER_BLOCKWISE_MSG_RECEIVING == ret->coap_status); 00740 free(payload); 00741 free(list); 00742 free(sn_coap_parser_stub.expectedHeader); 00743 00744 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 00745 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 00746 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 00747 sn_coap_parser_stub.expectedHeader->msg_id = 14; 00748 00749 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 00750 memset(list, 0, sizeof(sn_coap_options_list_s)); 00751 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 00752 sn_coap_parser_stub.expectedHeader->options_list_ptr->block1 = 0x08; 00753 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 00754 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_REQUEST_DELETE; 00755 payload = (uint8_t*)malloc(17); 00756 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 00757 sn_coap_parser_stub.expectedHeader->payload_len = 17; 00758 00759 retCounter = 7; 00760 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 00761 CHECK( NULL == ret ); 00762 free(payload); 00763 // free(list); 00764 // free(sn_coap_parser_stub.expectedHeader); 00765 00766 /* Size is more than we can handle */ 00767 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 00768 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 00769 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 00770 sn_coap_parser_stub.expectedHeader->msg_id = 100; 00771 00772 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 00773 memset(list, 0, sizeof(sn_coap_options_list_s)); 00774 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 00775 sn_coap_parser_stub.expectedHeader->options_list_ptr->block1 = 0x08; 00776 sn_coap_parser_stub.expectedHeader->options_list_ptr->use_size1 = true; 00777 sn_coap_parser_stub.expectedHeader->options_list_ptr->size1 = 0xFFFFFF01; 00778 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 00779 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_REQUEST_PUT; 00780 payload = (uint8_t*)malloc(65535); 00781 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 00782 sn_coap_parser_stub.expectedHeader->payload_len = 65535; 00783 00784 retCounter = 10; 00785 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 00786 CHECK( NULL != ret ); 00787 00788 free(payload); 00789 free(list); 00790 free(sn_coap_parser_stub.expectedHeader); 00791 00792 // received_coap_msg_ptr->msg_code > COAP_MSG_CODE_REQUEST_DELETE --> 00793 00794 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 00795 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 00796 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 00797 sn_coap_parser_stub.expectedHeader->msg_id = 15; 00798 00799 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 00800 memset(list, 0, sizeof(sn_coap_options_list_s)); 00801 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 00802 sn_coap_parser_stub.expectedHeader->options_list_ptr->block1 = 0x00; 00803 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 00804 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_RESPONSE_CREATED; 00805 payload = (uint8_t*)malloc(17); 00806 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 00807 sn_coap_parser_stub.expectedHeader->payload_len = 17; 00808 00809 retCounter = 2; 00810 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 00811 CHECK( NULL != ret ); 00812 CHECK( COAP_STATUS_OK == ret->coap_status ); 00813 free(payload); 00814 free(list); 00815 free(sn_coap_parser_stub.expectedHeader); 00816 00817 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 00818 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 00819 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 00820 sn_coap_parser_stub.expectedHeader->msg_id = 16; 00821 00822 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 00823 memset(list, 0, sizeof(sn_coap_options_list_s)); 00824 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 00825 sn_coap_parser_stub.expectedHeader->options_list_ptr->block1 = 0x08; 00826 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 00827 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_RESPONSE_CREATED; 00828 payload = (uint8_t*)malloc(17); 00829 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 00830 sn_coap_parser_stub.expectedHeader->payload_len = 17; 00831 00832 00833 sn_nsdl_addr_s tmp_addr; 00834 memset(&tmp_addr, 0, sizeof(sn_nsdl_addr_s)); 00835 sn_coap_hdr_s tmp_hdr; 00836 memset(&tmp_hdr, 0, sizeof(sn_coap_hdr_s)); 00837 00838 uint8_t* dst_packet_data_ptr = (uint8_t*)malloc(5); 00839 memset(dst_packet_data_ptr, '1', 5); 00840 00841 tmp_addr.addr_ptr = (uint8_t*)malloc(5); 00842 memset(tmp_addr.addr_ptr, '1', 5); 00843 00844 retCounter = 20; 00845 sn_coap_builder_stub.expectedInt16 = 1; 00846 int buff_size = SN_COAP_MAX_BLOCKWISE_PAYLOAD_SIZE + 20; 00847 tmp_hdr.payload_ptr = (uint8_t*)malloc(buff_size); 00848 tmp_hdr.options_list_ptr = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 00849 memset(tmp_hdr.options_list_ptr, 0, sizeof(sn_coap_options_list_s)); 00850 tmp_hdr.options_list_ptr->block2 = 1; 00851 tmp_hdr.msg_id = 16; 00852 tmp_hdr.payload_len = buff_size; 00853 sn_coap_protocol_build(handle, &tmp_addr, dst_packet_data_ptr, &tmp_hdr, NULL); 00854 00855 free(tmp_hdr.options_list_ptr); 00856 free(tmp_hdr.payload_ptr); 00857 free(tmp_addr.addr_ptr); 00858 free(dst_packet_data_ptr); 00859 00860 retCounter = 2; 00861 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 00862 CHECK( NULL == ret ); 00863 free(payload); 00864 00865 sn_coap_protocol_destroy(handle); 00866 retCounter = 1; 00867 handle = sn_coap_protocol_init(myMalloc, myFree, null_tx_cb, NULL); 00868 00869 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 00870 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 00871 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 00872 sn_coap_parser_stub.expectedHeader->msg_id = 17; 00873 00874 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 00875 memset(list, 0, sizeof(sn_coap_options_list_s)); 00876 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 00877 sn_coap_parser_stub.expectedHeader->options_list_ptr->block1 = 0x08; 00878 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 00879 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_RESPONSE_CREATED; 00880 payload = (uint8_t*)malloc(17); 00881 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 00882 sn_coap_parser_stub.expectedHeader->payload_len = 17; 00883 00884 memset(&tmp_addr, 0, sizeof(sn_nsdl_addr_s)); 00885 memset(&tmp_hdr, 0, sizeof(sn_coap_hdr_s)); 00886 00887 dst_packet_data_ptr = (uint8_t*)malloc(5); 00888 memset(dst_packet_data_ptr, '1', 5); 00889 00890 tmp_addr.addr_ptr = (uint8_t*)malloc(5); 00891 memset(tmp_addr.addr_ptr, '1', 5); 00892 00893 retCounter = 21; 00894 sn_coap_builder_stub.expectedInt16 = 1; 00895 int buff_len = SN_COAP_MAX_BLOCKWISE_PAYLOAD_SIZE + 20; 00896 tmp_hdr.payload_ptr = (uint8_t*)malloc(buff_len); 00897 tmp_hdr.options_list_ptr = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 00898 memset(tmp_hdr.options_list_ptr, 0, sizeof(sn_coap_options_list_s)); 00899 tmp_hdr.options_list_ptr->block1 = -1; 00900 tmp_hdr.options_list_ptr->block2 = 1; 00901 tmp_hdr.msg_id = 17; 00902 tmp_hdr.payload_len = buff_len; 00903 00904 sn_coap_protocol_build(handle, &tmp_addr, dst_packet_data_ptr, &tmp_hdr, NULL); 00905 00906 free(tmp_hdr.options_list_ptr); 00907 free(tmp_hdr.payload_ptr); 00908 free(tmp_addr.addr_ptr); 00909 free(dst_packet_data_ptr); 00910 00911 retCounter = 2; 00912 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 00913 CHECK( NULL == ret ); 00914 free(payload); 00915 00916 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 00917 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 00918 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 00919 sn_coap_parser_stub.expectedHeader->msg_id = 18; 00920 00921 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 00922 memset(list, 0, sizeof(sn_coap_options_list_s)); 00923 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 00924 sn_coap_parser_stub.expectedHeader->options_list_ptr->block1 = 0xe808; 00925 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 00926 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_RESPONSE_CREATED; 00927 payload = (uint8_t*)malloc(17); 00928 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 00929 sn_coap_parser_stub.expectedHeader->payload_len = 17; 00930 00931 00932 memset(&tmp_addr, 0, sizeof(sn_nsdl_addr_s)); 00933 memset(&tmp_hdr, 0, sizeof(sn_coap_hdr_s)); 00934 00935 dst_packet_data_ptr = (uint8_t*)malloc(5); 00936 memset(dst_packet_data_ptr, '1', 5); 00937 00938 tmp_addr.addr_ptr = (uint8_t*)malloc(5); 00939 memset(tmp_addr.addr_ptr, '1', 5); 00940 00941 retCounter = 20; 00942 sn_coap_builder_stub.expectedInt16 = 1; 00943 buff_len = UINT16_MAX; 00944 tmp_hdr.payload_ptr = (uint8_t*)malloc(buff_len); 00945 // tmp_hdr.options_list_ptr = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 00946 // memset(tmp_hdr.options_list_ptr, 0, sizeof(sn_coap_options_list_s)); 00947 // tmp_hdr.options_list_ptr->block2 = 1; 00948 tmp_hdr.msg_id = 18; 00949 tmp_hdr.msg_code = COAP_MSG_CODE_RESPONSE_CREATED; 00950 tmp_hdr.payload_len = SN_COAP_MAX_BLOCKWISE_PAYLOAD_SIZE + 20; 00951 sn_coap_protocol_build(handle, &tmp_addr, dst_packet_data_ptr, &tmp_hdr, NULL); 00952 00953 free(tmp_hdr.options_list_ptr); 00954 tmp_hdr.options_list_ptr = NULL; 00955 00956 tmp_hdr.payload_len = UINT16_MAX; 00957 sn_coap_protocol_build(handle, &tmp_addr, dst_packet_data_ptr, &tmp_hdr, NULL); 00958 free(tmp_hdr.options_list_ptr); 00959 free(tmp_hdr.payload_ptr); 00960 tmp_hdr.payload_ptr = NULL; 00961 free(tmp_addr.addr_ptr); 00962 free(dst_packet_data_ptr); 00963 00964 retCounter = 2; 00965 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 00966 CHECK( NULL == ret ); 00967 free(payload); 00968 00969 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 00970 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 00971 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 00972 sn_coap_parser_stub.expectedHeader->msg_id = 19; 00973 00974 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 00975 memset(list, 0, sizeof(sn_coap_options_list_s)); 00976 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 00977 sn_coap_parser_stub.expectedHeader->options_list_ptr->block1 = 0xeee808; 00978 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 00979 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_RESPONSE_CREATED; 00980 payload = (uint8_t*)malloc(17); 00981 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 00982 sn_coap_parser_stub.expectedHeader->payload_len = 17; 00983 00984 memset(&tmp_addr, 0, sizeof(sn_nsdl_addr_s)); 00985 memset(&tmp_hdr, 0, sizeof(sn_coap_hdr_s)); 00986 00987 dst_packet_data_ptr = (uint8_t*)malloc(5); 00988 memset(dst_packet_data_ptr, '1', 5); 00989 00990 tmp_addr.addr_ptr = (uint8_t*)malloc(5); 00991 memset(tmp_addr.addr_ptr, '1', 5); 00992 00993 retCounter = 21; 00994 sn_coap_builder_stub.expectedInt16 = 1; 00995 tmp_hdr.payload_ptr = (uint8_t*)malloc(3); 00996 // tmp_hdr.options_list_ptr = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 00997 // memset(tmp_hdr.options_list_ptr, 0, sizeof(sn_coap_options_list_s)); 00998 // tmp_hdr.options_list_ptr->block2 = 1; 00999 tmp_hdr.msg_id = 19; 01000 tmp_hdr.msg_code = COAP_MSG_CODE_REQUEST_GET; 01001 tmp_hdr.payload_len = 1; 01002 sn_coap_protocol_build(handle, &tmp_addr, dst_packet_data_ptr, &tmp_hdr, NULL); 01003 01004 free(tmp_hdr.options_list_ptr); 01005 free(tmp_hdr.payload_ptr); 01006 tmp_hdr.payload_ptr = NULL; 01007 free(tmp_addr.addr_ptr); 01008 free(dst_packet_data_ptr); 01009 01010 retCounter = 2; 01011 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 01012 CHECK( NULL == ret ); 01013 free(payload); 01014 01015 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 01016 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 01017 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 01018 sn_coap_parser_stub.expectedHeader->msg_id = 20; 01019 01020 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01021 memset(list, 0, sizeof(sn_coap_options_list_s)); 01022 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 01023 sn_coap_parser_stub.expectedHeader->options_list_ptr->block1 = 0xeee808; 01024 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 01025 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_RESPONSE_CREATED; 01026 payload = (uint8_t*)malloc(17); 01027 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 01028 sn_coap_parser_stub.expectedHeader->payload_len = 17; 01029 01030 memset(&tmp_addr, 0, sizeof(sn_nsdl_addr_s)); 01031 memset(&tmp_hdr, 0, sizeof(sn_coap_hdr_s)); 01032 01033 dst_packet_data_ptr = (uint8_t*)malloc(5); 01034 memset(dst_packet_data_ptr, '1', 5); 01035 01036 tmp_addr.addr_ptr = (uint8_t*)malloc(5); 01037 memset(tmp_addr.addr_ptr, '1', 5); 01038 01039 retCounter = 21; 01040 sn_coap_builder_stub.expectedInt16 = 1; 01041 tmp_hdr.payload_ptr = (uint8_t*)malloc(3); 01042 // tmp_hdr.options_list_ptr = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01043 // memset(tmp_hdr.options_list_ptr, 0, sizeof(sn_coap_options_list_s)); 01044 // tmp_hdr.options_list_ptr->block2 = 1; 01045 tmp_hdr.msg_id = 20; 01046 tmp_hdr.msg_code = COAP_MSG_CODE_REQUEST_GET; 01047 tmp_hdr.payload_len = 1; 01048 sn_coap_protocol_build(handle, &tmp_addr, dst_packet_data_ptr, &tmp_hdr, NULL); 01049 01050 free(tmp_hdr.options_list_ptr); 01051 free(tmp_hdr.payload_ptr); 01052 tmp_hdr.payload_ptr = NULL; 01053 free(tmp_addr.addr_ptr); 01054 free(dst_packet_data_ptr); 01055 01056 retCounter = 5; 01057 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 01058 CHECK( NULL != ret ); 01059 CHECK( COAP_STATUS_PARSER_BLOCKWISE_ACK == ret->coap_status ); 01060 free(payload); 01061 sn_coap_parser_release_allocated_coap_msg_mem(handle, ret); 01062 01063 //<-- block1 == 0x08 01064 //<-- Test sn_coap_handle_blockwise_message, block1 != -1 01065 01066 sn_coap_protocol_destroy(handle); 01067 retCounter = 1; 01068 handle = sn_coap_protocol_init(myMalloc, myFree, null_tx_cb, NULL); 01069 01070 //Test sn_coap_handle_blockwise_message, block2 != -1 --> 01071 sn_coap_protocol_set_duplicate_buffer_size(handle,1); 01072 01073 // block2 length == 1,2,3 --> 01074 01075 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 01076 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 01077 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 01078 sn_coap_parser_stub.expectedHeader->msg_id = 16; 01079 01080 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01081 memset(list, 0, sizeof(sn_coap_options_list_s)); 01082 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 01083 sn_coap_parser_stub.expectedHeader->options_list_ptr->block2 = 0x08; 01084 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 01085 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_REQUEST_DELETE; 01086 payload = (uint8_t*)malloc(17); 01087 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 01088 sn_coap_parser_stub.expectedHeader->payload_len = 17; 01089 sn_coap_parser_stub.expectedHeader->uri_path_ptr = NULL; 01090 01091 memset(&tmp_addr, 0, sizeof(sn_nsdl_addr_s)); 01092 memset(&tmp_hdr, 0, sizeof(sn_coap_hdr_s)); 01093 01094 dst_packet_data_ptr = (uint8_t*)malloc(5); 01095 memset(dst_packet_data_ptr, '1', 5); 01096 01097 tmp_addr.addr_ptr = (uint8_t*)malloc(5); 01098 memset(tmp_addr.addr_ptr, '1', 5); 01099 01100 retCounter = 20; 01101 sn_coap_builder_stub.expectedInt16 = 1; 01102 buff_len = SN_COAP_MAX_BLOCKWISE_PAYLOAD_SIZE + 20; 01103 tmp_hdr.payload_ptr = (uint8_t*)malloc(buff_len); 01104 tmp_hdr.options_list_ptr = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01105 memset(tmp_hdr.options_list_ptr, 0, sizeof(sn_coap_options_list_s)); 01106 tmp_hdr.options_list_ptr->block2 = 1; 01107 tmp_hdr.msg_id = 16; 01108 tmp_hdr.payload_len = buff_len; 01109 sn_coap_protocol_build(handle, &tmp_addr, dst_packet_data_ptr, &tmp_hdr, NULL); 01110 01111 free(tmp_hdr.options_list_ptr); 01112 free(tmp_hdr.payload_ptr); 01113 free(tmp_addr.addr_ptr); 01114 free(dst_packet_data_ptr); 01115 01116 retCounter = 2; 01117 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 01118 CHECK( NULL == ret ); 01119 free(payload); 01120 // sn_coap_parser_release_allocated_coap_msg_mem(handle, sn_coap_parser_stub.expectedHeader); 01121 01122 sn_coap_protocol_destroy(handle); 01123 retCounter = 1; 01124 handle = sn_coap_protocol_init(myMalloc, myFree, null_tx_cb, NULL); 01125 01126 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 01127 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 01128 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 01129 sn_coap_parser_stub.expectedHeader->msg_id = 17; 01130 01131 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01132 memset(list, 0, sizeof(sn_coap_options_list_s)); 01133 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 01134 sn_coap_parser_stub.expectedHeader->options_list_ptr->block2 = 0x08; 01135 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 01136 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_REQUEST_DELETE; 01137 payload = (uint8_t*)malloc(17); 01138 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 01139 sn_coap_parser_stub.expectedHeader->payload_len = 17; 01140 01141 memset(&tmp_addr, 0, sizeof(sn_nsdl_addr_s)); 01142 memset(&tmp_hdr, 0, sizeof(sn_coap_hdr_s)); 01143 01144 dst_packet_data_ptr = (uint8_t*)malloc(5); 01145 memset(dst_packet_data_ptr, '1', 5); 01146 01147 tmp_addr.addr_ptr = (uint8_t*)malloc(5); 01148 memset(tmp_addr.addr_ptr, '1', 5); 01149 01150 retCounter = 21; 01151 sn_coap_builder_stub.expectedInt16 = 1; 01152 buff_len = SN_COAP_MAX_BLOCKWISE_PAYLOAD_SIZE + 20; 01153 tmp_hdr.payload_ptr = (uint8_t*)malloc(buff_len); 01154 tmp_hdr.options_list_ptr = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01155 memset(tmp_hdr.options_list_ptr, 0, sizeof(sn_coap_options_list_s)); 01156 tmp_hdr.options_list_ptr->block1 = -1; 01157 tmp_hdr.options_list_ptr->block2 = 1; 01158 tmp_hdr.msg_id = 17; 01159 tmp_hdr.payload_len = buff_len; 01160 01161 sn_coap_protocol_build(handle, &tmp_addr, dst_packet_data_ptr, &tmp_hdr, NULL); 01162 01163 free(tmp_hdr.options_list_ptr); 01164 free(tmp_hdr.payload_ptr); 01165 free(tmp_addr.addr_ptr); 01166 free(dst_packet_data_ptr); 01167 01168 retCounter = 3; 01169 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 01170 CHECK( NULL == ret ); 01171 free(payload); 01172 // sn_coap_parser_release_allocated_coap_msg_mem(handle, sn_coap_parser_stub.expectedHeader); 01173 01174 sn_coap_protocol_destroy(handle); 01175 retCounter = 1; 01176 handle = sn_coap_protocol_init(myMalloc, myFree, null_tx_cb, NULL); 01177 01178 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 01179 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 01180 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 01181 sn_coap_parser_stub.expectedHeader->msg_id = 18; 01182 01183 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01184 memset(list, 0, sizeof(sn_coap_options_list_s)); 01185 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 01186 sn_coap_parser_stub.expectedHeader->options_list_ptr->block2 = 0xe808; 01187 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 01188 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_REQUEST_DELETE; 01189 payload = (uint8_t*)malloc(17); 01190 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 01191 sn_coap_parser_stub.expectedHeader->payload_len = 17; 01192 01193 01194 memset(&tmp_addr, 0, sizeof(sn_nsdl_addr_s)); 01195 memset(&tmp_hdr, 0, sizeof(sn_coap_hdr_s)); 01196 01197 dst_packet_data_ptr = (uint8_t*)malloc(5); 01198 memset(dst_packet_data_ptr, '1', 5); 01199 01200 tmp_addr.addr_ptr = (uint8_t*)malloc(5); 01201 memset(tmp_addr.addr_ptr, '1', 5); 01202 01203 retCounter = 20; 01204 sn_coap_builder_stub.expectedInt16 = 1; 01205 buff_len = SN_COAP_MAX_BLOCKWISE_PAYLOAD_SIZE + 20; 01206 tmp_hdr.payload_ptr = (uint8_t*)malloc(buff_len); 01207 tmp_hdr.options_list_ptr = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01208 memset(tmp_hdr.options_list_ptr, 0, sizeof(sn_coap_options_list_s)); 01209 tmp_hdr.options_list_ptr->use_size2 = true; 01210 tmp_hdr.options_list_ptr->size2 = 0xFF01; 01211 tmp_hdr.msg_id = 18; 01212 tmp_hdr.msg_code = COAP_MSG_CODE_RESPONSE_CREATED; 01213 tmp_hdr.payload_len = buff_len; 01214 sn_coap_protocol_build(handle, &tmp_addr, dst_packet_data_ptr, &tmp_hdr, NULL); 01215 01216 free(tmp_hdr.options_list_ptr); 01217 free(tmp_hdr.payload_ptr); 01218 tmp_hdr.payload_ptr = NULL; 01219 free(tmp_addr.addr_ptr); 01220 free(dst_packet_data_ptr); 01221 01222 retCounter = 3; 01223 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 01224 CHECK( NULL == ret ); 01225 free(payload); 01226 // sn_coap_parser_release_allocated_coap_msg_mem(handle, sn_coap_parser_stub.expectedHeader); 01227 01228 sn_coap_protocol_destroy(handle); 01229 retCounter = 1; 01230 handle = sn_coap_protocol_init(myMalloc, myFree, null_tx_cb, NULL); 01231 01232 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 01233 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 01234 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 01235 sn_coap_parser_stub.expectedHeader->msg_id = 19; 01236 01237 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01238 memset(list, 0, sizeof(sn_coap_options_list_s)); 01239 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 01240 sn_coap_parser_stub.expectedHeader->options_list_ptr->block2 = 0xeee808; 01241 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 01242 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_REQUEST_DELETE; 01243 payload = (uint8_t*)malloc(17); 01244 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 01245 sn_coap_parser_stub.expectedHeader->payload_len = 17; 01246 01247 memset(&tmp_addr, 0, sizeof(sn_nsdl_addr_s)); 01248 memset(&tmp_hdr, 0, sizeof(sn_coap_hdr_s)); 01249 01250 dst_packet_data_ptr = (uint8_t*)malloc(5); 01251 memset(dst_packet_data_ptr, '1', 5); 01252 01253 tmp_addr.addr_ptr = (uint8_t*)malloc(5); 01254 memset(tmp_addr.addr_ptr, '1', 5); 01255 01256 retCounter = 21; 01257 sn_coap_builder_stub.expectedInt16 = 1; 01258 tmp_hdr.payload_ptr = (uint8_t*)malloc(3); 01259 // tmp_hdr.options_list_ptr = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01260 // memset(tmp_hdr.options_list_ptr, 0, sizeof(sn_coap_options_list_s)); 01261 // tmp_hdr.options_list_ptr->block2 = 1; 01262 tmp_hdr.msg_id = 19; 01263 tmp_hdr.msg_code = COAP_MSG_CODE_REQUEST_GET; 01264 tmp_hdr.payload_len = 1; 01265 sn_coap_protocol_build(handle, &tmp_addr, dst_packet_data_ptr, &tmp_hdr, NULL); 01266 01267 free(tmp_hdr.options_list_ptr); 01268 free(tmp_hdr.payload_ptr); 01269 tmp_hdr.payload_ptr = NULL; 01270 free(tmp_addr.addr_ptr); 01271 free(dst_packet_data_ptr); 01272 01273 retCounter = 2; 01274 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 01275 CHECK( NULL == ret ); 01276 free(payload); 01277 // sn_coap_parser_release_allocated_coap_msg_mem(handle, sn_coap_parser_stub.expectedHeader); 01278 01279 sn_coap_protocol_destroy(handle); 01280 retCounter = 1; 01281 handle = sn_coap_protocol_init(myMalloc, myFree, null_tx_cb, NULL); 01282 01283 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 01284 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 01285 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 01286 sn_coap_parser_stub.expectedHeader->msg_id = 200; 01287 01288 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01289 memset(list, 0, sizeof(sn_coap_options_list_s)); 01290 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 01291 sn_coap_parser_stub.expectedHeader->options_list_ptr->block2 = 0xeee808; 01292 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 01293 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_REQUEST_DELETE; 01294 payload = (uint8_t*)malloc(17); 01295 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 01296 sn_coap_parser_stub.expectedHeader->payload_len = 17; 01297 01298 memset(&tmp_addr, 0, sizeof(sn_nsdl_addr_s)); 01299 memset(&tmp_hdr, 0, sizeof(sn_coap_hdr_s)); 01300 01301 dst_packet_data_ptr = (uint8_t*)malloc(5); 01302 memset(dst_packet_data_ptr, '1', 5); 01303 01304 tmp_addr.addr_ptr = (uint8_t*)malloc(5); 01305 memset(tmp_addr.addr_ptr, '1', 5); 01306 01307 retCounter = 21; 01308 sn_coap_builder_stub.expectedInt16 = 1; 01309 tmp_hdr.payload_ptr = (uint8_t*)malloc(3); 01310 tmp_hdr.msg_id = 200; 01311 tmp_hdr.msg_code = COAP_MSG_CODE_REQUEST_GET; 01312 tmp_hdr.payload_len = 1; 01313 sn_coap_protocol_build(handle, &tmp_addr, dst_packet_data_ptr, &tmp_hdr, NULL); 01314 01315 free(tmp_hdr.options_list_ptr); 01316 free(tmp_hdr.payload_ptr); 01317 tmp_hdr.payload_ptr = NULL; 01318 free(tmp_addr.addr_ptr); 01319 free(dst_packet_data_ptr); 01320 01321 retCounter = 3; 01322 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 01323 CHECK( NULL == ret ); 01324 free(payload); 01325 // sn_coap_parser_release_allocated_coap_msg_mem(handle, sn_coap_parser_stub.expectedHeader); 01326 01327 01328 sn_coap_protocol_destroy(handle); 01329 retCounter = 1; 01330 handle = sn_coap_protocol_init(myMalloc, myFree, null_tx_cb, NULL); 01331 01332 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 01333 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 01334 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 01335 sn_coap_parser_stub.expectedHeader->msg_id = 20; 01336 01337 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01338 memset(list, 0, sizeof(sn_coap_options_list_s)); 01339 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 01340 sn_coap_parser_stub.expectedHeader->options_list_ptr->block1 = -1; 01341 sn_coap_parser_stub.expectedHeader->options_list_ptr->block2 = 0xeee808; 01342 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 01343 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_REQUEST_DELETE; 01344 payload = (uint8_t*)malloc(17); 01345 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 01346 sn_coap_parser_stub.expectedHeader->payload_len = 17; 01347 01348 memset(&tmp_addr, 0, sizeof(sn_nsdl_addr_s)); 01349 memset(&tmp_hdr, 0, sizeof(sn_coap_hdr_s)); 01350 01351 dst_packet_data_ptr = (uint8_t*)malloc(5); 01352 memset(dst_packet_data_ptr, '1', 5); 01353 01354 tmp_addr.addr_ptr = (uint8_t*)malloc(5); 01355 memset(tmp_addr.addr_ptr, '1', 5); 01356 01357 retCounter = 20; 01358 sn_coap_builder_stub.expectedInt16 = 1; 01359 buff_len = SN_COAP_MAX_BLOCKWISE_PAYLOAD_SIZE + 20; 01360 tmp_hdr.payload_ptr = (uint8_t*)malloc(buff_len); 01361 01362 tmp_hdr.msg_id = 20; 01363 tmp_hdr.msg_code = COAP_MSG_CODE_RESPONSE_CREATED; 01364 tmp_hdr.payload_len = buff_len; 01365 sn_coap_protocol_build(handle, &tmp_addr, dst_packet_data_ptr, &tmp_hdr, NULL); 01366 01367 free(tmp_hdr.options_list_ptr); 01368 free(tmp_hdr.payload_ptr); 01369 tmp_hdr.payload_ptr = NULL; 01370 free(tmp_addr.addr_ptr); 01371 free(dst_packet_data_ptr); 01372 01373 retCounter = 6; 01374 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 01375 CHECK( NULL != ret ); 01376 CHECK( COAP_STATUS_PARSER_BLOCKWISE_ACK == ret->coap_status ); 01377 free(payload); 01378 sn_coap_parser_release_allocated_coap_msg_mem(handle, sn_coap_parser_stub.expectedHeader); 01379 01380 //<-- block2 length == 1,2,3 01381 01382 // block2 == 0x08 --> 01383 01384 sn_coap_protocol_destroy(handle); 01385 retCounter = 1; 01386 handle = sn_coap_protocol_init(myMalloc, myFree, null_tx_cb, NULL); 01387 01388 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 01389 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 01390 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 01391 01392 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01393 memset(list, 0, sizeof(sn_coap_options_list_s)); 01394 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 01395 sn_coap_parser_stub.expectedHeader->options_list_ptr->block1 = -1; 01396 sn_coap_parser_stub.expectedHeader->options_list_ptr->block2 = 0x08; 01397 sn_coap_parser_stub.expectedHeader->msg_id = 41; 01398 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 01399 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_RESPONSE_CREATED; 01400 payload = (uint8_t*)malloc(5); 01401 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 01402 sn_coap_parser_stub.expectedHeader->payload_len = 5; 01403 01404 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 01405 CHECK( NULL == ret ); 01406 free(payload); 01407 01408 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 01409 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 01410 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 01411 01412 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01413 memset(list, 0, sizeof(sn_coap_options_list_s)); 01414 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 01415 sn_coap_parser_stub.expectedHeader->options_list_ptr->block1 = -1; 01416 sn_coap_parser_stub.expectedHeader->options_list_ptr->block2 = 0x08; 01417 sn_coap_parser_stub.expectedHeader->msg_id = 41; 01418 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 01419 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_RESPONSE_CREATED; 01420 payload = (uint8_t*)malloc(5); 01421 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 01422 sn_coap_parser_stub.expectedHeader->payload_len = 5; 01423 01424 memset(&tmp_addr, 0, sizeof(sn_nsdl_addr_s)); 01425 memset(&tmp_hdr, 0, sizeof(sn_coap_hdr_s)); 01426 01427 dst_packet_data_ptr = (uint8_t*)malloc(5); 01428 memset(dst_packet_data_ptr, '1', 5); 01429 01430 tmp_addr.addr_ptr = (uint8_t*)malloc(5); 01431 memset(tmp_addr.addr_ptr, '1', 5); 01432 01433 retCounter = 20; 01434 sn_coap_builder_stub.expectedInt16 = 1; 01435 buff_len = SN_COAP_MAX_BLOCKWISE_PAYLOAD_SIZE + 20; 01436 tmp_hdr.payload_ptr = (uint8_t*)malloc(buff_len); 01437 tmp_hdr.options_list_ptr = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01438 memset(tmp_hdr.options_list_ptr, 0, sizeof(sn_coap_options_list_s)); 01439 tmp_hdr.options_list_ptr->block2 = 1; 01440 tmp_hdr.msg_id = 41; 01441 tmp_hdr.payload_len = buff_len; 01442 sn_coap_protocol_build(handle, &tmp_addr, dst_packet_data_ptr, &tmp_hdr, NULL); 01443 01444 free(tmp_hdr.options_list_ptr); 01445 free(tmp_hdr.payload_ptr); 01446 free(tmp_addr.addr_ptr); 01447 free(dst_packet_data_ptr); 01448 01449 retCounter = 0; 01450 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 01451 CHECK( NULL == ret ); 01452 free(payload); 01453 free(list); 01454 free(sn_coap_parser_stub.expectedHeader); 01455 01456 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 01457 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 01458 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 01459 01460 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01461 memset(list, 0, sizeof(sn_coap_options_list_s)); 01462 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 01463 sn_coap_parser_stub.expectedHeader->options_list_ptr->block1 = -1; 01464 sn_coap_parser_stub.expectedHeader->options_list_ptr->block2 = 0x08; 01465 sn_coap_parser_stub.expectedHeader->msg_id = 42; 01466 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 01467 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_RESPONSE_CREATED; 01468 payload = (uint8_t*)malloc(5); 01469 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 01470 sn_coap_parser_stub.expectedHeader->payload_len = 5; 01471 01472 memset(&tmp_addr, 0, sizeof(sn_nsdl_addr_s)); 01473 memset(&tmp_hdr, 0, sizeof(sn_coap_hdr_s)); 01474 01475 dst_packet_data_ptr = (uint8_t*)malloc(5); 01476 memset(dst_packet_data_ptr, '1', 5); 01477 01478 tmp_addr.addr_ptr = (uint8_t*)malloc(5); 01479 memset(tmp_addr.addr_ptr, '1', 5); 01480 01481 retCounter = 20; 01482 sn_coap_builder_stub.expectedInt16 = 1; 01483 buff_len = SN_COAP_MAX_BLOCKWISE_PAYLOAD_SIZE + 20; 01484 tmp_hdr.payload_ptr = (uint8_t*)malloc(buff_len); 01485 tmp_hdr.options_list_ptr = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01486 memset(tmp_hdr.options_list_ptr, 0, sizeof(sn_coap_options_list_s)); 01487 tmp_hdr.options_list_ptr->block2 = 1; 01488 tmp_hdr.msg_id = 42; 01489 tmp_hdr.payload_len = buff_len; 01490 sn_coap_protocol_build(handle, &tmp_addr, dst_packet_data_ptr, &tmp_hdr, NULL); 01491 01492 free(tmp_hdr.options_list_ptr); 01493 free(tmp_hdr.payload_ptr); 01494 free(tmp_addr.addr_ptr); 01495 free(dst_packet_data_ptr); 01496 01497 retCounter = 5; 01498 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 01499 CHECK( NULL == ret ); 01500 free(payload); 01501 free(list); 01502 free(sn_coap_parser_stub.expectedHeader); 01503 01504 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 01505 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 01506 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 01507 01508 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01509 memset(list, 0, sizeof(sn_coap_options_list_s)); 01510 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 01511 sn_coap_parser_stub.expectedHeader->options_list_ptr->block1 = -1; 01512 sn_coap_parser_stub.expectedHeader->options_list_ptr->block2 = 0x08; 01513 sn_coap_parser_stub.expectedHeader->msg_id = 43; 01514 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 01515 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_RESPONSE_CREATED; 01516 payload = (uint8_t*)malloc(5); 01517 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 01518 sn_coap_parser_stub.expectedHeader->payload_len = 5; 01519 01520 memset(&tmp_addr, 0, sizeof(sn_nsdl_addr_s)); 01521 memset(&tmp_hdr, 0, sizeof(sn_coap_hdr_s)); 01522 01523 dst_packet_data_ptr = (uint8_t*)malloc(5); 01524 memset(dst_packet_data_ptr, '1', 5); 01525 01526 tmp_addr.addr_ptr = (uint8_t*)malloc(5); 01527 memset(tmp_addr.addr_ptr, '1', 5); 01528 01529 retCounter = 20; 01530 sn_coap_builder_stub.expectedInt16 = 1; 01531 buff_len = SN_COAP_MAX_BLOCKWISE_PAYLOAD_SIZE + 20; 01532 tmp_hdr.payload_ptr = (uint8_t*)malloc(buff_len); 01533 tmp_hdr.options_list_ptr = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01534 memset(tmp_hdr.options_list_ptr, 0, sizeof(sn_coap_options_list_s)); 01535 tmp_hdr.options_list_ptr->block2 = 1; 01536 tmp_hdr.msg_id = 43; 01537 tmp_hdr.payload_len = buff_len; 01538 sn_coap_protocol_build(handle, &tmp_addr, dst_packet_data_ptr, &tmp_hdr, NULL); 01539 01540 free(tmp_hdr.options_list_ptr); 01541 free(tmp_hdr.payload_ptr); 01542 free(tmp_addr.addr_ptr); 01543 free(dst_packet_data_ptr); 01544 01545 retCounter = 6; 01546 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 01547 CHECK( NULL == ret ); 01548 free(payload); 01549 // sn_coap_parser_release_allocated_coap_msg_mem(handle, sn_coap_parser_stub.expectedHeader); 01550 01551 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 01552 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 01553 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 01554 01555 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01556 memset(list, 0, sizeof(sn_coap_options_list_s)); 01557 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 01558 sn_coap_parser_stub.expectedHeader->options_list_ptr->block1 = -1; 01559 sn_coap_parser_stub.expectedHeader->options_list_ptr->block2 = 0x08; 01560 sn_coap_parser_stub.expectedHeader->msg_id = 44; 01561 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 01562 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_RESPONSE_CREATED; 01563 payload = (uint8_t*)malloc(5); 01564 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 01565 sn_coap_parser_stub.expectedHeader->payload_len = 5; 01566 01567 memset(&tmp_addr, 0, sizeof(sn_nsdl_addr_s)); 01568 memset(&tmp_hdr, 0, sizeof(sn_coap_hdr_s)); 01569 01570 dst_packet_data_ptr = (uint8_t*)malloc(5); 01571 memset(dst_packet_data_ptr, '1', 5); 01572 01573 tmp_addr.addr_ptr = (uint8_t*)malloc(5); 01574 memset(tmp_addr.addr_ptr, '1', 5); 01575 01576 retCounter = 20; 01577 sn_coap_builder_stub.expectedInt16 = 1; 01578 buff_len = SN_COAP_MAX_BLOCKWISE_PAYLOAD_SIZE + 20; 01579 tmp_hdr.payload_ptr = (uint8_t*)malloc(buff_len); 01580 tmp_hdr.options_list_ptr = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01581 memset(tmp_hdr.options_list_ptr, 0, sizeof(sn_coap_options_list_s)); 01582 tmp_hdr.options_list_ptr->block2 = 1; 01583 tmp_hdr.msg_id = 44; 01584 tmp_hdr.payload_len = buff_len; 01585 sn_coap_protocol_build(handle, &tmp_addr, dst_packet_data_ptr, &tmp_hdr, NULL); 01586 01587 free(tmp_hdr.options_list_ptr); 01588 free(tmp_hdr.payload_ptr); 01589 free(tmp_addr.addr_ptr); 01590 free(dst_packet_data_ptr); 01591 01592 retCounter = 7; 01593 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 01594 CHECK( NULL == ret ); 01595 free(payload); 01596 01597 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 01598 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 01599 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 01600 01601 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01602 memset(list, 0, sizeof(sn_coap_options_list_s)); 01603 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 01604 sn_coap_parser_stub.expectedHeader->options_list_ptr->block1 = -1; 01605 sn_coap_parser_stub.expectedHeader->options_list_ptr->block2 = 0xa8a8; 01606 sn_coap_parser_stub.expectedHeader->msg_id = 45; 01607 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 01608 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_RESPONSE_CREATED; 01609 payload = (uint8_t*)malloc(5); 01610 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 01611 sn_coap_parser_stub.expectedHeader->payload_len = 5; 01612 01613 memset(&tmp_addr, 0, sizeof(sn_nsdl_addr_s)); 01614 memset(&tmp_hdr, 0, sizeof(sn_coap_hdr_s)); 01615 01616 dst_packet_data_ptr = (uint8_t*)malloc(5); 01617 memset(dst_packet_data_ptr, '1', 5); 01618 01619 tmp_addr.addr_ptr = (uint8_t*)malloc(5); 01620 memset(tmp_addr.addr_ptr, '1', 5); 01621 01622 retCounter = 20; 01623 sn_coap_builder_stub.expectedInt16 = 1; 01624 buff_len = SN_COAP_MAX_BLOCKWISE_PAYLOAD_SIZE + 20; 01625 tmp_hdr.payload_ptr = (uint8_t*)malloc(buff_len); 01626 tmp_hdr.options_list_ptr = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01627 memset(tmp_hdr.options_list_ptr, 0, sizeof(sn_coap_options_list_s)); 01628 tmp_hdr.options_list_ptr->block2 = 1; 01629 tmp_hdr.msg_id = 45; 01630 tmp_hdr.payload_len = buff_len; 01631 sn_coap_protocol_build(handle, &tmp_addr, dst_packet_data_ptr, &tmp_hdr, NULL); 01632 01633 free(tmp_hdr.options_list_ptr); 01634 free(tmp_hdr.payload_ptr); 01635 free(tmp_addr.addr_ptr); 01636 free(dst_packet_data_ptr); 01637 01638 sn_coap_builder_stub.expectedInt16 = -1; 01639 retCounter = 8; 01640 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 01641 CHECK( NULL == ret ); 01642 free(payload); 01643 01644 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 01645 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 01646 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 01647 01648 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01649 memset(list, 0, sizeof(sn_coap_options_list_s)); 01650 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 01651 sn_coap_parser_stub.expectedHeader->options_list_ptr->block1 = -1; 01652 sn_coap_parser_stub.expectedHeader->options_list_ptr->block2 = 0xc8c8c8; 01653 sn_coap_parser_stub.expectedHeader->msg_id = 46; 01654 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 01655 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_RESPONSE_CREATED; 01656 payload = (uint8_t*)malloc(5); 01657 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 01658 sn_coap_parser_stub.expectedHeader->payload_len = 5; 01659 01660 memset(&tmp_addr, 0, sizeof(sn_nsdl_addr_s)); 01661 memset(&tmp_hdr, 0, sizeof(sn_coap_hdr_s)); 01662 01663 dst_packet_data_ptr = (uint8_t*)malloc(5); 01664 memset(dst_packet_data_ptr, '1', 5); 01665 01666 tmp_addr.addr_ptr = (uint8_t*)malloc(5); 01667 memset(tmp_addr.addr_ptr, '1', 5); 01668 01669 retCounter = 20; 01670 sn_coap_builder_stub.expectedInt16 = 1; 01671 buff_len = SN_COAP_MAX_BLOCKWISE_PAYLOAD_SIZE + 20; 01672 tmp_hdr.payload_ptr = (uint8_t*)malloc(buff_len); 01673 tmp_hdr.options_list_ptr = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01674 memset(tmp_hdr.options_list_ptr, 0, sizeof(sn_coap_options_list_s)); 01675 tmp_hdr.options_list_ptr->block2 = 1; 01676 tmp_hdr.msg_id = 46; 01677 tmp_hdr.payload_len = buff_len; 01678 sn_coap_protocol_build(handle, &tmp_addr, dst_packet_data_ptr, &tmp_hdr, NULL); 01679 01680 free(tmp_hdr.options_list_ptr); 01681 free(tmp_hdr.payload_ptr); 01682 free(tmp_addr.addr_ptr); 01683 free(dst_packet_data_ptr); 01684 01685 sn_coap_builder_stub.expectedInt16 = 1; 01686 retCounter = 8; 01687 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 01688 CHECK( NULL == ret ); 01689 free(payload); 01690 01691 sn_coap_protocol_destroy(handle); 01692 retCounter = 1; 01693 handle = sn_coap_protocol_init(myMalloc, myFree, null_tx_cb, NULL); 01694 01695 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 01696 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 01697 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 01698 01699 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01700 memset(list, 0, sizeof(sn_coap_options_list_s)); 01701 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 01702 sn_coap_parser_stub.expectedHeader->options_list_ptr->block1 = -1; 01703 sn_coap_parser_stub.expectedHeader->options_list_ptr->block2 = 0xc8c8c8; 01704 sn_coap_parser_stub.expectedHeader->msg_id = 47; 01705 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 01706 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_RESPONSE_CREATED; 01707 payload = (uint8_t*)malloc(5); 01708 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 01709 sn_coap_parser_stub.expectedHeader->payload_len = 5; 01710 01711 memset(&tmp_addr, 0, sizeof(sn_nsdl_addr_s)); 01712 memset(&tmp_hdr, 0, sizeof(sn_coap_hdr_s)); 01713 01714 dst_packet_data_ptr = (uint8_t*)malloc(5); 01715 memset(dst_packet_data_ptr, '1', 5); 01716 01717 tmp_addr.addr_ptr = (uint8_t*)malloc(5); 01718 memset(tmp_addr.addr_ptr, '1', 5); 01719 01720 retCounter = 20; 01721 sn_coap_builder_stub.expectedInt16 = 1; 01722 buff_len = SN_COAP_MAX_BLOCKWISE_PAYLOAD_SIZE + 20; 01723 tmp_hdr.payload_ptr = (uint8_t*)malloc(buff_len); 01724 tmp_hdr.options_list_ptr = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01725 memset(tmp_hdr.options_list_ptr, 0, sizeof(sn_coap_options_list_s)); 01726 tmp_hdr.options_list_ptr->block2 = 1; 01727 tmp_hdr.msg_id = 47; 01728 tmp_hdr.payload_len = buff_len; 01729 sn_coap_protocol_build(handle, &tmp_addr, dst_packet_data_ptr, &tmp_hdr, NULL); 01730 01731 free(tmp_hdr.options_list_ptr); 01732 free(tmp_hdr.payload_ptr); 01733 free(tmp_addr.addr_ptr); 01734 free(dst_packet_data_ptr); 01735 01736 sn_coap_builder_stub.expectedInt16 = 1; 01737 retCounter = 9; 01738 sn_coap_protocol_set_retransmission_buffer(handle,0,0); 01739 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 01740 CHECK( NULL != ret ); 01741 free(payload); 01742 sn_coap_parser_release_allocated_coap_msg_mem(handle, ret); 01743 01744 sn_coap_protocol_destroy(handle); 01745 retCounter = 1; 01746 handle = sn_coap_protocol_init(myMalloc, myFree, null_tx_cb, NULL); 01747 01748 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 01749 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 01750 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 01751 01752 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01753 memset(list, 0, sizeof(sn_coap_options_list_s)); 01754 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 01755 sn_coap_parser_stub.expectedHeader->options_list_ptr->block1 = -1; 01756 sn_coap_parser_stub.expectedHeader->options_list_ptr->block2 = 0xc8c8c8; 01757 sn_coap_parser_stub.expectedHeader->msg_id = 47; 01758 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 01759 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_RESPONSE_CREATED; 01760 payload = (uint8_t*)malloc(5); 01761 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 01762 sn_coap_parser_stub.expectedHeader->payload_len = 5; 01763 01764 memset(&tmp_addr, 0, sizeof(sn_nsdl_addr_s)); 01765 memset(&tmp_hdr, 0, sizeof(sn_coap_hdr_s)); 01766 01767 dst_packet_data_ptr = (uint8_t*)malloc(5); 01768 memset(dst_packet_data_ptr, '1', 5); 01769 01770 tmp_addr.addr_ptr = (uint8_t*)malloc(5); 01771 memset(tmp_addr.addr_ptr, '1', 5); 01772 01773 retCounter = 20; 01774 sn_coap_builder_stub.expectedInt16 = 1; 01775 buff_len = SN_COAP_MAX_BLOCKWISE_PAYLOAD_SIZE + 20; 01776 tmp_hdr.payload_ptr = (uint8_t*)malloc(buff_len); 01777 tmp_hdr.options_list_ptr = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01778 memset(tmp_hdr.options_list_ptr, 0, sizeof(sn_coap_options_list_s)); 01779 tmp_hdr.options_list_ptr->block2 = 1; 01780 tmp_hdr.msg_id = 47; 01781 tmp_hdr.payload_len = buff_len; 01782 sn_coap_protocol_build(handle, &tmp_addr, dst_packet_data_ptr, &tmp_hdr, NULL); 01783 01784 free(tmp_hdr.options_list_ptr); 01785 free(tmp_hdr.payload_ptr); 01786 free(tmp_addr.addr_ptr); 01787 free(dst_packet_data_ptr); 01788 01789 sn_coap_builder_stub.expectedInt16 = 1; 01790 retCounter = 9; 01791 sn_coap_protocol_set_retransmission_buffer(handle,2,1); 01792 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 01793 CHECK( NULL != ret ); 01794 free(payload); 01795 sn_coap_parser_release_allocated_coap_msg_mem(handle, ret); 01796 01797 // <-- block2 == 0x08 01798 01799 //<-- Test sn_coap_handle_blockwise_message, block2 != -1 01800 01801 sn_coap_protocol_destroy(handle); 01802 retCounter = 1; 01803 handle = sn_coap_protocol_init(myMalloc, myFree, null_tx_cb, NULL); 01804 01805 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 01806 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 01807 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 01808 01809 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01810 memset(list, 0, sizeof(sn_coap_options_list_s)); 01811 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 01812 sn_coap_parser_stub.expectedHeader->options_list_ptr->block1 = -1; 01813 sn_coap_parser_stub.expectedHeader->options_list_ptr->block2 = 1; 01814 sn_coap_parser_stub.expectedHeader->msg_id = 41; 01815 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 01816 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_RESPONSE_CREATED; 01817 payload = (uint8_t*)malloc(5); 01818 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 01819 sn_coap_parser_stub.expectedHeader->payload_len = 5; 01820 01821 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 01822 CHECK( NULL == ret ); 01823 free(payload); 01824 sn_coap_parser_release_allocated_coap_msg_mem(handle, sn_coap_parser_stub.expectedHeader); 01825 01826 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 01827 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 01828 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 01829 01830 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01831 memset(list, 0, sizeof(sn_coap_options_list_s)); 01832 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 01833 sn_coap_parser_stub.expectedHeader->options_list_ptr->block1 = -1; 01834 sn_coap_parser_stub.expectedHeader->options_list_ptr->block2 = 1; 01835 sn_coap_parser_stub.expectedHeader->msg_id = 42; 01836 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 01837 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_RESPONSE_CREATED; 01838 payload = (uint8_t*)malloc(5); 01839 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 01840 sn_coap_parser_stub.expectedHeader->payload_len = 5; 01841 01842 retCounter = 1; 01843 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 01844 CHECK( NULL == ret ); 01845 free(payload); 01846 sn_coap_parser_release_allocated_coap_msg_mem(handle, sn_coap_parser_stub.expectedHeader); 01847 01848 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 01849 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 01850 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 01851 01852 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01853 memset(list, 0, sizeof(sn_coap_options_list_s)); 01854 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 01855 sn_coap_parser_stub.expectedHeader->options_list_ptr->block1 = -1; 01856 sn_coap_parser_stub.expectedHeader->options_list_ptr->block2 = 1; 01857 sn_coap_parser_stub.expectedHeader->msg_id = 43; 01858 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 01859 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_RESPONSE_CREATED; 01860 payload = (uint8_t*)malloc(5); 01861 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 01862 sn_coap_parser_stub.expectedHeader->payload_len = 5; 01863 01864 retCounter = 2; 01865 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 01866 CHECK( NULL == ret ); 01867 free(payload); 01868 sn_coap_parser_release_allocated_coap_msg_mem(handle, sn_coap_parser_stub.expectedHeader); 01869 01870 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 01871 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 01872 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 01873 01874 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01875 memset(list, 0, sizeof(sn_coap_options_list_s)); 01876 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 01877 sn_coap_parser_stub.expectedHeader->options_list_ptr->block1 = -1; 01878 sn_coap_parser_stub.expectedHeader->options_list_ptr->block2 = 1; 01879 sn_coap_parser_stub.expectedHeader->msg_id = 44; 01880 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 01881 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_RESPONSE_CREATED; 01882 payload = (uint8_t*)malloc(5); 01883 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 01884 sn_coap_parser_stub.expectedHeader->payload_len = 5; 01885 01886 retCounter = 3; 01887 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 01888 CHECK( NULL == ret ); 01889 free(payload); 01890 sn_coap_parser_release_allocated_coap_msg_mem(handle, sn_coap_parser_stub.expectedHeader); 01891 01892 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 01893 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 01894 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 01895 01896 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01897 memset(list, 0, sizeof(sn_coap_options_list_s)); 01898 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 01899 sn_coap_parser_stub.expectedHeader->options_list_ptr->block1 = -1; 01900 sn_coap_parser_stub.expectedHeader->options_list_ptr->block2 = 1; 01901 sn_coap_parser_stub.expectedHeader->msg_id = 45; 01902 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 01903 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_RESPONSE_CREATED; 01904 payload = (uint8_t*)malloc(5); 01905 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 01906 sn_coap_parser_stub.expectedHeader->payload_len = 5; 01907 01908 retCounter = 4; 01909 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 01910 CHECK( NULL == ret ); 01911 free(payload); 01912 sn_coap_parser_release_allocated_coap_msg_mem(handle, sn_coap_parser_stub.expectedHeader); 01913 01914 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 01915 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 01916 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 01917 01918 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01919 memset(list, 0, sizeof(sn_coap_options_list_s)); 01920 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 01921 sn_coap_parser_stub.expectedHeader->options_list_ptr->block1 = -1; 01922 sn_coap_parser_stub.expectedHeader->options_list_ptr->block2 = 1; 01923 sn_coap_parser_stub.expectedHeader->msg_id = 46; 01924 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 01925 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_RESPONSE_CREATED; 01926 payload = (uint8_t*)malloc(5); 01927 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 01928 sn_coap_parser_stub.expectedHeader->payload_len = 5; 01929 01930 retCounter = 6; 01931 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 01932 CHECK( NULL != ret ); 01933 free(payload); 01934 free(ret->payload_ptr); 01935 sn_coap_parser_release_allocated_coap_msg_mem(handle, ret); 01936 01937 sn_coap_protocol_destroy(handle); 01938 retCounter = 1; 01939 handle = sn_coap_protocol_init(myMalloc, myFree, null_tx_cb, NULL); 01940 01941 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 01942 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 01943 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 01944 sn_coap_parser_stub.expectedHeader->msg_id = 18; 01945 01946 memset(&tmp_addr, 0, sizeof(sn_nsdl_addr_s)); 01947 memset(&tmp_hdr, 0, sizeof(sn_coap_hdr_s)); 01948 01949 dst_packet_data_ptr = (uint8_t*)malloc(5); 01950 memset(dst_packet_data_ptr, '1', 5); 01951 dst_packet_data_ptr[2]=0; 01952 dst_packet_data_ptr[3]=18; 01953 01954 tmp_addr.addr_ptr = (uint8_t*)malloc(5); 01955 memset(tmp_addr.addr_ptr, '1', 5); 01956 tmp_addr.port = 0; 01957 01958 retCounter = 20; 01959 sn_coap_builder_stub.expectedInt16 = 5; 01960 buff_len = SN_COAP_MAX_BLOCKWISE_PAYLOAD_SIZE + 20; 01961 tmp_hdr.payload_ptr = (uint8_t*)malloc(buff_len); 01962 tmp_hdr.msg_id = 18; 01963 tmp_hdr.msg_code = COAP_MSG_CODE_RESPONSE_CREATED; 01964 tmp_hdr.payload_len = buff_len; 01965 sn_coap_protocol_build(handle, &tmp_addr, dst_packet_data_ptr, &tmp_hdr, NULL); 01966 01967 free(tmp_hdr.options_list_ptr); 01968 free(tmp_hdr.payload_ptr); 01969 free(tmp_addr.addr_ptr); 01970 free(dst_packet_data_ptr); 01971 01972 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 01973 CHECK( ret != NULL ); 01974 sn_coap_parser_release_allocated_coap_msg_mem(handle, ret); 01975 01976 sn_coap_protocol_destroy(handle); 01977 01978 retCounter = 1; 01979 handle = sn_coap_protocol_init(myMalloc, myFree, null_tx_cb, NULL); 01980 01981 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 01982 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 01983 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_RESET; 01984 sn_coap_parser_stub.expectedHeader->msg_id = 18; 01985 01986 memset(&tmp_addr, 0, sizeof(sn_nsdl_addr_s)); 01987 memset(&tmp_hdr, 0, sizeof(sn_coap_hdr_s)); 01988 01989 dst_packet_data_ptr = (uint8_t*)malloc(5); 01990 memset(dst_packet_data_ptr, '1', 5); 01991 dst_packet_data_ptr[2]=0; 01992 dst_packet_data_ptr[3]=18; 01993 01994 tmp_addr.addr_ptr = (uint8_t*)malloc(5); 01995 memset(tmp_addr.addr_ptr, '1', 5); 01996 tmp_addr.port = 0; 01997 01998 retCounter = 20; 01999 sn_coap_builder_stub.expectedInt16 = 5; 02000 buff_len = SN_COAP_MAX_BLOCKWISE_PAYLOAD_SIZE + 20; 02001 tmp_hdr.payload_ptr = (uint8_t*)malloc(buff_len); 02002 tmp_hdr.msg_id = 18; 02003 tmp_hdr.msg_code = COAP_MSG_CODE_RESPONSE_CREATED; 02004 tmp_hdr.payload_len = buff_len; 02005 tmp_hdr.uri_path_ptr = (uint8_t*)malloc(7); 02006 snprintf((char *)tmp_hdr.uri_path_ptr, 7, "13/0/1"); 02007 tmp_hdr.uri_path_len = 7; 02008 02009 sn_coap_protocol_build(handle, &tmp_addr, dst_packet_data_ptr, &tmp_hdr, NULL); 02010 02011 free(tmp_hdr.uri_path_ptr); 02012 free(tmp_hdr.options_list_ptr); 02013 free(tmp_hdr.payload_ptr); 02014 free(tmp_addr.addr_ptr); 02015 free(dst_packet_data_ptr); 02016 02017 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 02018 CHECK( ret != NULL ); 02019 sn_coap_parser_release_allocated_coap_msg_mem(handle, ret); 02020 02021 sn_coap_protocol_destroy(handle); 02022 02023 retCounter = 1; 02024 handle = sn_coap_protocol_init(myMalloc, myFree, null_tx_cb, NULL); 02025 02026 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 02027 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 02028 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 02029 sn_coap_parser_stub.expectedHeader->msg_id = 18; 02030 02031 memset(&tmp_addr, 0, sizeof(sn_nsdl_addr_s)); 02032 memset(&tmp_hdr, 0, sizeof(sn_coap_hdr_s)); 02033 02034 dst_packet_data_ptr = (uint8_t*)malloc(5); 02035 memset(dst_packet_data_ptr, '1', 5); 02036 dst_packet_data_ptr[2]=0; 02037 dst_packet_data_ptr[3]=185; 02038 02039 tmp_addr.addr_ptr = (uint8_t*)malloc(5); 02040 memset(tmp_addr.addr_ptr, '1', 5); 02041 tmp_addr.port = 0; 02042 02043 retCounter = 20; 02044 sn_coap_builder_stub.expectedInt16 = 5; 02045 buff_len = SN_COAP_MAX_BLOCKWISE_PAYLOAD_SIZE + 20; 02046 tmp_hdr.payload_ptr = (uint8_t*)malloc(buff_len); 02047 tmp_hdr.msg_id = 18; 02048 tmp_hdr.msg_code = COAP_MSG_CODE_RESPONSE_CREATED; 02049 tmp_hdr.payload_len = buff_len; 02050 tmp_hdr.uri_path_ptr = (uint8_t*)malloc(7); 02051 snprintf((char *)tmp_hdr.uri_path_ptr, 7, "13/0/1"); 02052 tmp_hdr.uri_path_len = 7; 02053 sn_coap_protocol_build(handle, &tmp_addr, dst_packet_data_ptr, &tmp_hdr, NULL); 02054 02055 free(tmp_hdr.options_list_ptr); 02056 free(tmp_hdr.payload_ptr); 02057 free(tmp_addr.addr_ptr); 02058 free(dst_packet_data_ptr); 02059 02060 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 02061 CHECK( ret != NULL ); 02062 sn_coap_parser_release_allocated_coap_msg_mem(handle, ret); 02063 02064 free(tmp_hdr.uri_path_ptr); 02065 free(packet_data_ptr); 02066 free(addr->addr_ptr); 02067 free(addr); 02068 sn_coap_protocol_destroy(handle); 02069 } 02070 02071 TEST(libCoap_protocol, sn_coap_protocol_exec) 02072 { 02073 CHECK(-1 == sn_coap_protocol_exec(NULL, 0)); 02074 02075 retCounter = 1; 02076 struct coap_s * handle = sn_coap_protocol_init(myMalloc, myFree, null_tx_cb, NULL); 02077 02078 sn_nsdl_addr_s tmp_addr; 02079 memset(&tmp_addr, 0, sizeof(sn_nsdl_addr_s)); 02080 sn_coap_hdr_s tmp_hdr; 02081 memset(&tmp_hdr, 0, sizeof(sn_coap_hdr_s)); 02082 02083 uint8_t* dst_packet_data_ptr = (uint8_t*)malloc(5); 02084 memset(dst_packet_data_ptr, '1', 5); 02085 02086 tmp_addr.addr_ptr = (uint8_t*)malloc(5); 02087 memset(tmp_addr.addr_ptr, '1', 5); 02088 02089 retCounter = 20; 02090 sn_coap_builder_stub.expectedInt16 = 5; 02091 int buff_size = SN_COAP_MAX_BLOCKWISE_PAYLOAD_SIZE + 20; 02092 tmp_hdr.payload_ptr = (uint8_t*)malloc(buff_size); 02093 tmp_hdr.msg_id = 18; 02094 tmp_hdr.msg_code = COAP_MSG_CODE_RESPONSE_CREATED; 02095 tmp_hdr.payload_len = buff_size; 02096 sn_coap_protocol_build(handle, &tmp_addr, dst_packet_data_ptr, &tmp_hdr, NULL); 02097 02098 free(tmp_hdr.options_list_ptr); 02099 free(tmp_hdr.payload_ptr); 02100 free(tmp_addr.addr_ptr); 02101 free(dst_packet_data_ptr); 02102 02103 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 02104 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 02105 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 02106 sn_coap_parser_stub.expectedHeader->msg_id = 7; 02107 02108 sn_coap_options_list_s* list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 02109 memset(list, 0, sizeof(sn_coap_options_list_s)); 02110 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 02111 sn_coap_parser_stub.expectedHeader->options_list_ptr->block1 = 1; 02112 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 02113 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_REQUEST_GET; 02114 uint8_t* payload = (uint8_t*)malloc(17); 02115 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 02116 sn_coap_parser_stub.expectedHeader->payload_len = 17; 02117 02118 uint8_t *packet_data_ptr = (uint8_t*)malloc(5); 02119 uint16_t packet_data_len = 5; 02120 02121 sn_nsdl_addr_s* addr = (sn_nsdl_addr_s*)malloc(sizeof(sn_nsdl_addr_s)); 02122 memset(addr, 0, sizeof(sn_nsdl_addr_s)); 02123 02124 addr->addr_ptr = (uint8_t*)malloc(5); 02125 02126 retCounter = 5; 02127 sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 02128 free(payload); 02129 free(packet_data_ptr); 02130 free(addr->addr_ptr); 02131 free(addr); 02132 02133 CHECK(0 == sn_coap_protocol_exec(handle, 600)); 02134 02135 sn_coap_builder_stub.expectedInt16 = 0; 02136 retCounter = 0; 02137 sn_coap_protocol_destroy(handle); 02138 } 02139 02140 TEST(libCoap_protocol, sn_coap_protocol_exec2) 02141 { 02142 retCounter = 1; 02143 struct coap_s * handle = sn_coap_protocol_init(myMalloc, myFree, null_tx_cb, null_rx_cb); 02144 02145 sn_nsdl_addr_s tmp_addr; 02146 memset(&tmp_addr, 0, sizeof(sn_nsdl_addr_s)); 02147 sn_coap_hdr_s tmp_hdr; 02148 memset(&tmp_hdr, 0, sizeof(sn_coap_hdr_s)); 02149 02150 uint8_t* dst_packet_data_ptr = (uint8_t*)malloc(5); 02151 memset(dst_packet_data_ptr, '1', 5); 02152 02153 tmp_addr.addr_ptr = (uint8_t*)malloc(5); 02154 memset(tmp_addr.addr_ptr, '1', 5); 02155 02156 retCounter = 20; 02157 sn_coap_builder_stub.expectedInt16 = 5; 02158 int buf_len = SN_COAP_MAX_BLOCKWISE_PAYLOAD_SIZE + 20; 02159 tmp_hdr.payload_ptr = (uint8_t*)malloc(buf_len); 02160 tmp_hdr.msg_id = 18; 02161 tmp_hdr.msg_code = COAP_MSG_CODE_RESPONSE_CREATED; 02162 tmp_hdr.payload_len = buf_len; 02163 sn_coap_protocol_build(handle, &tmp_addr, dst_packet_data_ptr, &tmp_hdr, NULL); 02164 02165 free(tmp_hdr.options_list_ptr); 02166 free(tmp_hdr.payload_ptr); 02167 free(tmp_addr.addr_ptr); 02168 free(dst_packet_data_ptr); 02169 02170 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 02171 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 02172 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 02173 sn_coap_parser_stub.expectedHeader->msg_id = 7; 02174 02175 sn_coap_options_list_s* list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 02176 memset(list, 0, sizeof(sn_coap_options_list_s)); 02177 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 02178 sn_coap_parser_stub.expectedHeader->options_list_ptr->block1 = 1; 02179 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 02180 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_REQUEST_GET; 02181 uint8_t* payload = (uint8_t*)malloc(17); 02182 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 02183 sn_coap_parser_stub.expectedHeader->payload_len = 17; 02184 02185 uint8_t *packet_data_ptr = (uint8_t*)malloc(5); 02186 uint16_t packet_data_len = 5; 02187 02188 sn_nsdl_addr_s* addr = (sn_nsdl_addr_s*)malloc(sizeof(sn_nsdl_addr_s)); 02189 memset(addr, 0, sizeof(sn_nsdl_addr_s)); 02190 02191 addr->addr_ptr = (uint8_t*)malloc(5); 02192 02193 retCounter = 5; 02194 sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 02195 free(payload); 02196 free(packet_data_ptr); 02197 free(addr->addr_ptr); 02198 free(addr); 02199 02200 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 02201 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 02202 02203 sn_coap_protocol_set_retransmission_parameters(handle,0, 5); 02204 CHECK(0 == sn_coap_protocol_exec(handle, 600)); 02205 02206 sn_coap_builder_stub.expectedInt16 = 0; 02207 retCounter = 0; 02208 sn_coap_protocol_destroy(handle); 02209 } 02210 02211 TEST(libCoap_protocol, sn_coap_protocol_block_remove) 02212 { 02213 sn_coap_protocol_block_remove(0,0,0,0); 02214 retCounter = 9; 02215 sn_nsdl_addr_s* addr = (sn_nsdl_addr_s*)malloc(sizeof(sn_nsdl_addr_s)); 02216 memset(addr, 0, sizeof(sn_nsdl_addr_s)); 02217 addr->addr_ptr = (uint8_t*)malloc(5); 02218 memset(addr->addr_ptr,'a',5); 02219 addr->addr_len = 5; 02220 struct coap_s * handle = sn_coap_protocol_init(myMalloc, myFree, null_tx_cb, NULL); 02221 uint8_t *packet_data_ptr = (uint8_t*)malloc(5); 02222 memset(packet_data_ptr,'x',5); 02223 uint16_t packet_data_len = 5; 02224 sn_coap_parser_stub.expectedHeader = NULL; 02225 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 02226 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 02227 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 02228 sn_coap_parser_stub.expectedHeader->msg_id = 13; 02229 02230 sn_coap_options_list_s* list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 02231 memset(list, 0, sizeof(sn_coap_options_list_s)); 02232 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 02233 sn_coap_parser_stub.expectedHeader->options_list_ptr->block1 = 0x08; 02234 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 02235 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_REQUEST_PUT; 02236 uint8_t* payload = (uint8_t*)malloc(17); 02237 sn_coap_parser_stub.expectedHeader->payload_ptr = packet_data_ptr; 02238 sn_coap_parser_stub.expectedHeader->payload_len = packet_data_len; 02239 sn_coap_builder_stub.expectedUint16 = 1; 02240 02241 // Success 02242 retCounter = 9; 02243 sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 02244 CHECK(ns_list_count(&handle->linked_list_blockwise_received_payloads) == 1); 02245 sn_coap_protocol_block_remove(handle,addr,packet_data_len,packet_data_ptr); 02246 CHECK(ns_list_count(&handle->linked_list_blockwise_received_payloads) == 0); 02247 02248 // Ports does not match 02249 retCounter = 18; 02250 sn_coap_parser_stub.expectedHeader->msg_id = 14; 02251 addr->port = 5600; 02252 sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 02253 CHECK(ns_list_count(&handle->linked_list_blockwise_received_payloads) == 1); 02254 addr->port = 5601; 02255 sn_coap_protocol_block_remove(handle,addr,packet_data_len,packet_data_ptr); 02256 CHECK(ns_list_count(&handle->linked_list_blockwise_received_payloads) == 1); 02257 02258 // Addresses does not match 02259 retCounter = 18; 02260 sn_coap_parser_stub.expectedHeader->msg_id = 15; 02261 sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 02262 CHECK(ns_list_count(&handle->linked_list_blockwise_received_payloads) == 2); 02263 addr->addr_ptr[0] = 'x'; 02264 sn_coap_protocol_block_remove(handle,addr,packet_data_len,packet_data_ptr); 02265 CHECK(ns_list_count(&handle->linked_list_blockwise_received_payloads) == 2); 02266 02267 // Payload length does not match 02268 addr->addr_ptr[0] = 'a'; 02269 sn_coap_protocol_block_remove(handle,addr,packet_data_len+1,packet_data_ptr); 02270 CHECK(ns_list_count(&handle->linked_list_blockwise_received_payloads) == 2); 02271 02272 free(sn_coap_parser_stub.expectedHeader->options_list_ptr); 02273 free(sn_coap_parser_stub.expectedHeader); 02274 free(addr->addr_ptr); 02275 free(addr); 02276 free(payload); 02277 free(packet_data_ptr); 02278 sn_coap_protocol_destroy(handle); 02279 } 02280
Generated on Tue Jul 12 2022 11:02:40 by
1.7.2