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: blinky_max32630fthr
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 hdr2->payload_ptr = (uint8_t*)malloc(3); 00388 00389 for( int i=0; i < 8; i++ ){ 00390 retCounter = 1 + i; 00391 sn_coap_builder_stub.expectedInt16 = 1; 00392 hdr2->payload_len = SN_COAP_MAX_BLOCKWISE_PAYLOAD_SIZE + 20; 00393 int8_t rett = sn_coap_protocol_build(handle, &addr, dst_packet_data_ptr, hdr2, NULL); 00394 CHECK( -2 == rett ); 00395 } 00396 00397 retCounter = 11; 00398 sn_coap_builder_stub.expectedInt16 = 1; 00399 hdr2->payload_len = SN_COAP_MAX_BLOCKWISE_PAYLOAD_SIZE + 20; 00400 CHECK( 1 == sn_coap_protocol_build(handle, &addr, dst_packet_data_ptr, hdr2, NULL)); 00401 00402 retCounter = 19; 00403 sn_coap_builder_stub.expectedInt16 = 1; 00404 hdr2->payload_len = SN_COAP_MAX_BLOCKWISE_PAYLOAD_SIZE + 20; 00405 CHECK( 1 == sn_coap_protocol_build(handle, &addr, dst_packet_data_ptr, hdr2, NULL)); 00406 00407 free(hdr2->payload_ptr); 00408 sn_coap_parser_release_allocated_coap_msg_mem(handle, hdr2); 00409 hdr2 = NULL; 00410 00411 //<-- Test sn_coap_protocol_copy_header here 00412 00413 hdr.msg_code = COAP_MSG_CODE_REQUEST_GET; 00414 retCounter = 5; 00415 sn_coap_builder_stub.expectedInt16 = 1; 00416 hdr.payload_len = 0; 00417 CHECK( 1 == sn_coap_protocol_build(handle, &addr, dst_packet_data_ptr, &hdr, NULL)); 00418 00419 sn_coap_protocol_destroy(handle); 00420 handle = NULL; 00421 retCounter = 1; 00422 handle = sn_coap_protocol_init(myMalloc, myFree, null_tx_cb, NULL); 00423 00424 retCounter = 6; 00425 sn_coap_builder_stub.expectedInt16 = 1; 00426 hdr.payload_len = 0; 00427 CHECK( -2 == sn_coap_protocol_build(handle, &addr, dst_packet_data_ptr, &hdr, NULL)); 00428 00429 retCounter = 7; 00430 sn_coap_builder_stub.expectedInt16 = 1; 00431 hdr.payload_len = 0; 00432 CHECK( 1 == sn_coap_protocol_build(handle, &addr, dst_packet_data_ptr, &hdr, NULL)); 00433 00434 free(hdr.payload_ptr); 00435 hdr.payload_ptr = NULL; 00436 hdr.payload_len = 0; 00437 00438 hdr.msg_code = COAP_MSG_CODE_EMPTY; 00439 00440 // <-- Test second SN_COAP_MAX_BLOCKWISE_PAYLOAD_SIZE 00441 00442 free(addr.addr_ptr); 00443 free(dst_packet_data_ptr); 00444 sn_coap_protocol_destroy(handle); 00445 } 00446 00447 TEST(libCoap_protocol, sn_coap_protocol_parse) 00448 { 00449 CHECK( NULL == sn_coap_protocol_parse(NULL, NULL, 0, NULL, NULL) ); 00450 00451 retCounter = 1; 00452 struct coap_s * handle = sn_coap_protocol_init(myMalloc, myFree, null_tx_cb, NULL); 00453 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 = 4; 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 tmp_hdr.payload_ptr = (uint8_t*)malloc(3); 00847 tmp_hdr.options_list_ptr = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 00848 memset(tmp_hdr.options_list_ptr, 0, sizeof(sn_coap_options_list_s)); 00849 tmp_hdr.options_list_ptr->block2 = 1; 00850 tmp_hdr.msg_id = 16; 00851 tmp_hdr.payload_len = SN_COAP_MAX_BLOCKWISE_PAYLOAD_SIZE + 20; 00852 sn_coap_protocol_build(handle, &tmp_addr, dst_packet_data_ptr, &tmp_hdr, NULL); 00853 00854 free(tmp_hdr.options_list_ptr); 00855 free(tmp_hdr.payload_ptr); 00856 free(tmp_addr.addr_ptr); 00857 free(dst_packet_data_ptr); 00858 00859 retCounter = 2; 00860 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 00861 CHECK( NULL == ret ); 00862 free(payload); 00863 00864 sn_coap_protocol_destroy(handle); 00865 retCounter = 1; 00866 handle = sn_coap_protocol_init(myMalloc, myFree, null_tx_cb, NULL); 00867 00868 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 00869 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 00870 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 00871 sn_coap_parser_stub.expectedHeader->msg_id = 17; 00872 00873 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 00874 memset(list, 0, sizeof(sn_coap_options_list_s)); 00875 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 00876 sn_coap_parser_stub.expectedHeader->options_list_ptr->block1 = 0x08; 00877 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 00878 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_RESPONSE_CREATED; 00879 payload = (uint8_t*)malloc(17); 00880 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 00881 sn_coap_parser_stub.expectedHeader->payload_len = 17; 00882 00883 memset(&tmp_addr, 0, sizeof(sn_nsdl_addr_s)); 00884 memset(&tmp_hdr, 0, sizeof(sn_coap_hdr_s)); 00885 00886 dst_packet_data_ptr = (uint8_t*)malloc(5); 00887 memset(dst_packet_data_ptr, '1', 5); 00888 00889 tmp_addr.addr_ptr = (uint8_t*)malloc(5); 00890 memset(tmp_addr.addr_ptr, '1', 5); 00891 00892 retCounter = 21; 00893 sn_coap_builder_stub.expectedInt16 = 1; 00894 tmp_hdr.payload_ptr = (uint8_t*)malloc(3); 00895 tmp_hdr.options_list_ptr = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 00896 memset(tmp_hdr.options_list_ptr, 0, sizeof(sn_coap_options_list_s)); 00897 tmp_hdr.options_list_ptr->block1 = -1; 00898 tmp_hdr.options_list_ptr->block2 = 1; 00899 tmp_hdr.msg_id = 17; 00900 tmp_hdr.payload_len = SN_COAP_MAX_BLOCKWISE_PAYLOAD_SIZE + 20; 00901 00902 sn_coap_protocol_build(handle, &tmp_addr, dst_packet_data_ptr, &tmp_hdr, NULL); 00903 00904 free(tmp_hdr.options_list_ptr); 00905 free(tmp_hdr.payload_ptr); 00906 free(tmp_addr.addr_ptr); 00907 free(dst_packet_data_ptr); 00908 00909 retCounter = 2; 00910 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 00911 CHECK( NULL == ret ); 00912 free(payload); 00913 00914 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 00915 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 00916 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 00917 sn_coap_parser_stub.expectedHeader->msg_id = 18; 00918 00919 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 00920 memset(list, 0, sizeof(sn_coap_options_list_s)); 00921 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 00922 sn_coap_parser_stub.expectedHeader->options_list_ptr->block1 = 0xe808; 00923 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 00924 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_RESPONSE_CREATED; 00925 payload = (uint8_t*)malloc(17); 00926 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 00927 sn_coap_parser_stub.expectedHeader->payload_len = 17; 00928 00929 00930 memset(&tmp_addr, 0, sizeof(sn_nsdl_addr_s)); 00931 memset(&tmp_hdr, 0, sizeof(sn_coap_hdr_s)); 00932 00933 dst_packet_data_ptr = (uint8_t*)malloc(5); 00934 memset(dst_packet_data_ptr, '1', 5); 00935 00936 tmp_addr.addr_ptr = (uint8_t*)malloc(5); 00937 memset(tmp_addr.addr_ptr, '1', 5); 00938 00939 retCounter = 20; 00940 sn_coap_builder_stub.expectedInt16 = 1; 00941 tmp_hdr.payload_ptr = (uint8_t*)malloc(3); 00942 // tmp_hdr.options_list_ptr = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 00943 // memset(tmp_hdr.options_list_ptr, 0, sizeof(sn_coap_options_list_s)); 00944 // tmp_hdr.options_list_ptr->block2 = 1; 00945 tmp_hdr.msg_id = 18; 00946 tmp_hdr.msg_code = COAP_MSG_CODE_RESPONSE_CREATED; 00947 tmp_hdr.payload_len = SN_COAP_MAX_BLOCKWISE_PAYLOAD_SIZE + 20; 00948 sn_coap_protocol_build(handle, &tmp_addr, dst_packet_data_ptr, &tmp_hdr, NULL); 00949 00950 free(tmp_hdr.options_list_ptr); 00951 tmp_hdr.options_list_ptr = NULL; 00952 00953 tmp_hdr.payload_len = UINT16_MAX; 00954 sn_coap_protocol_build(handle, &tmp_addr, dst_packet_data_ptr, &tmp_hdr, NULL); 00955 free(tmp_hdr.options_list_ptr); 00956 free(tmp_hdr.payload_ptr); 00957 tmp_hdr.payload_ptr = NULL; 00958 free(tmp_addr.addr_ptr); 00959 free(dst_packet_data_ptr); 00960 00961 retCounter = 2; 00962 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 00963 CHECK( NULL == ret ); 00964 free(payload); 00965 00966 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 00967 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 00968 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 00969 sn_coap_parser_stub.expectedHeader->msg_id = 19; 00970 00971 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 00972 memset(list, 0, sizeof(sn_coap_options_list_s)); 00973 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 00974 sn_coap_parser_stub.expectedHeader->options_list_ptr->block1 = 0xeee808; 00975 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 00976 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_RESPONSE_CREATED; 00977 payload = (uint8_t*)malloc(17); 00978 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 00979 sn_coap_parser_stub.expectedHeader->payload_len = 17; 00980 00981 memset(&tmp_addr, 0, sizeof(sn_nsdl_addr_s)); 00982 memset(&tmp_hdr, 0, sizeof(sn_coap_hdr_s)); 00983 00984 dst_packet_data_ptr = (uint8_t*)malloc(5); 00985 memset(dst_packet_data_ptr, '1', 5); 00986 00987 tmp_addr.addr_ptr = (uint8_t*)malloc(5); 00988 memset(tmp_addr.addr_ptr, '1', 5); 00989 00990 retCounter = 21; 00991 sn_coap_builder_stub.expectedInt16 = 1; 00992 tmp_hdr.payload_ptr = (uint8_t*)malloc(3); 00993 // tmp_hdr.options_list_ptr = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 00994 // memset(tmp_hdr.options_list_ptr, 0, sizeof(sn_coap_options_list_s)); 00995 // tmp_hdr.options_list_ptr->block2 = 1; 00996 tmp_hdr.msg_id = 19; 00997 tmp_hdr.msg_code = COAP_MSG_CODE_REQUEST_GET; 00998 tmp_hdr.payload_len = 1; 00999 sn_coap_protocol_build(handle, &tmp_addr, dst_packet_data_ptr, &tmp_hdr, NULL); 01000 01001 free(tmp_hdr.options_list_ptr); 01002 free(tmp_hdr.payload_ptr); 01003 tmp_hdr.payload_ptr = NULL; 01004 free(tmp_addr.addr_ptr); 01005 free(dst_packet_data_ptr); 01006 01007 retCounter = 2; 01008 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 01009 CHECK( NULL == ret ); 01010 free(payload); 01011 01012 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 01013 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 01014 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 01015 sn_coap_parser_stub.expectedHeader->msg_id = 20; 01016 01017 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01018 memset(list, 0, sizeof(sn_coap_options_list_s)); 01019 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 01020 sn_coap_parser_stub.expectedHeader->options_list_ptr->block1 = 0xeee808; 01021 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 01022 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_RESPONSE_CREATED; 01023 payload = (uint8_t*)malloc(17); 01024 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 01025 sn_coap_parser_stub.expectedHeader->payload_len = 17; 01026 01027 memset(&tmp_addr, 0, sizeof(sn_nsdl_addr_s)); 01028 memset(&tmp_hdr, 0, sizeof(sn_coap_hdr_s)); 01029 01030 dst_packet_data_ptr = (uint8_t*)malloc(5); 01031 memset(dst_packet_data_ptr, '1', 5); 01032 01033 tmp_addr.addr_ptr = (uint8_t*)malloc(5); 01034 memset(tmp_addr.addr_ptr, '1', 5); 01035 01036 retCounter = 21; 01037 sn_coap_builder_stub.expectedInt16 = 1; 01038 tmp_hdr.payload_ptr = (uint8_t*)malloc(3); 01039 // tmp_hdr.options_list_ptr = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01040 // memset(tmp_hdr.options_list_ptr, 0, sizeof(sn_coap_options_list_s)); 01041 // tmp_hdr.options_list_ptr->block2 = 1; 01042 tmp_hdr.msg_id = 20; 01043 tmp_hdr.msg_code = COAP_MSG_CODE_REQUEST_GET; 01044 tmp_hdr.payload_len = 1; 01045 sn_coap_protocol_build(handle, &tmp_addr, dst_packet_data_ptr, &tmp_hdr, NULL); 01046 01047 free(tmp_hdr.options_list_ptr); 01048 free(tmp_hdr.payload_ptr); 01049 tmp_hdr.payload_ptr = NULL; 01050 free(tmp_addr.addr_ptr); 01051 free(dst_packet_data_ptr); 01052 01053 retCounter = 5; 01054 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 01055 CHECK( NULL != ret ); 01056 CHECK( COAP_STATUS_PARSER_BLOCKWISE_ACK == ret->coap_status ); 01057 free(payload); 01058 sn_coap_parser_release_allocated_coap_msg_mem(handle, ret); 01059 01060 //<-- block1 == 0x08 01061 //<-- Test sn_coap_handle_blockwise_message, block1 != -1 01062 01063 sn_coap_protocol_destroy(handle); 01064 retCounter = 1; 01065 handle = sn_coap_protocol_init(myMalloc, myFree, null_tx_cb, NULL); 01066 01067 //Test sn_coap_handle_blockwise_message, block2 != -1 --> 01068 sn_coap_protocol_set_duplicate_buffer_size(handle,1); 01069 01070 // block2 length == 1,2,3 --> 01071 01072 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 01073 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 01074 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 01075 sn_coap_parser_stub.expectedHeader->msg_id = 16; 01076 01077 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01078 memset(list, 0, sizeof(sn_coap_options_list_s)); 01079 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 01080 sn_coap_parser_stub.expectedHeader->options_list_ptr->block2 = 0x08; 01081 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 01082 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_REQUEST_DELETE; 01083 payload = (uint8_t*)malloc(17); 01084 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 01085 sn_coap_parser_stub.expectedHeader->payload_len = 17; 01086 sn_coap_parser_stub.expectedHeader->uri_path_ptr = NULL; 01087 01088 memset(&tmp_addr, 0, sizeof(sn_nsdl_addr_s)); 01089 memset(&tmp_hdr, 0, sizeof(sn_coap_hdr_s)); 01090 01091 dst_packet_data_ptr = (uint8_t*)malloc(5); 01092 memset(dst_packet_data_ptr, '1', 5); 01093 01094 tmp_addr.addr_ptr = (uint8_t*)malloc(5); 01095 memset(tmp_addr.addr_ptr, '1', 5); 01096 01097 retCounter = 20; 01098 sn_coap_builder_stub.expectedInt16 = 1; 01099 tmp_hdr.payload_ptr = (uint8_t*)malloc(3); 01100 tmp_hdr.options_list_ptr = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01101 memset(tmp_hdr.options_list_ptr, 0, sizeof(sn_coap_options_list_s)); 01102 tmp_hdr.options_list_ptr->block2 = 1; 01103 tmp_hdr.msg_id = 16; 01104 tmp_hdr.payload_len = SN_COAP_MAX_BLOCKWISE_PAYLOAD_SIZE + 20; 01105 sn_coap_protocol_build(handle, &tmp_addr, dst_packet_data_ptr, &tmp_hdr, NULL); 01106 01107 free(tmp_hdr.options_list_ptr); 01108 free(tmp_hdr.payload_ptr); 01109 free(tmp_addr.addr_ptr); 01110 free(dst_packet_data_ptr); 01111 01112 retCounter = 2; 01113 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 01114 CHECK( NULL == ret ); 01115 free(payload); 01116 // sn_coap_parser_release_allocated_coap_msg_mem(handle, sn_coap_parser_stub.expectedHeader); 01117 01118 sn_coap_protocol_destroy(handle); 01119 retCounter = 1; 01120 handle = sn_coap_protocol_init(myMalloc, myFree, null_tx_cb, NULL); 01121 01122 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 01123 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 01124 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 01125 sn_coap_parser_stub.expectedHeader->msg_id = 17; 01126 01127 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01128 memset(list, 0, sizeof(sn_coap_options_list_s)); 01129 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 01130 sn_coap_parser_stub.expectedHeader->options_list_ptr->block2 = 0x08; 01131 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 01132 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_REQUEST_DELETE; 01133 payload = (uint8_t*)malloc(17); 01134 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 01135 sn_coap_parser_stub.expectedHeader->payload_len = 17; 01136 01137 memset(&tmp_addr, 0, sizeof(sn_nsdl_addr_s)); 01138 memset(&tmp_hdr, 0, sizeof(sn_coap_hdr_s)); 01139 01140 dst_packet_data_ptr = (uint8_t*)malloc(5); 01141 memset(dst_packet_data_ptr, '1', 5); 01142 01143 tmp_addr.addr_ptr = (uint8_t*)malloc(5); 01144 memset(tmp_addr.addr_ptr, '1', 5); 01145 01146 retCounter = 21; 01147 sn_coap_builder_stub.expectedInt16 = 1; 01148 tmp_hdr.payload_ptr = (uint8_t*)malloc(3); 01149 tmp_hdr.options_list_ptr = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01150 memset(tmp_hdr.options_list_ptr, 0, sizeof(sn_coap_options_list_s)); 01151 tmp_hdr.options_list_ptr->block1 = -1; 01152 tmp_hdr.options_list_ptr->block2 = 1; 01153 tmp_hdr.msg_id = 17; 01154 tmp_hdr.payload_len = SN_COAP_MAX_BLOCKWISE_PAYLOAD_SIZE + 20; 01155 01156 sn_coap_protocol_build(handle, &tmp_addr, dst_packet_data_ptr, &tmp_hdr, NULL); 01157 01158 free(tmp_hdr.options_list_ptr); 01159 free(tmp_hdr.payload_ptr); 01160 free(tmp_addr.addr_ptr); 01161 free(dst_packet_data_ptr); 01162 01163 retCounter = 3; 01164 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 01165 CHECK( NULL == ret ); 01166 free(payload); 01167 // sn_coap_parser_release_allocated_coap_msg_mem(handle, sn_coap_parser_stub.expectedHeader); 01168 01169 sn_coap_protocol_destroy(handle); 01170 retCounter = 1; 01171 handle = sn_coap_protocol_init(myMalloc, myFree, null_tx_cb, NULL); 01172 01173 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 01174 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 01175 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 01176 sn_coap_parser_stub.expectedHeader->msg_id = 18; 01177 01178 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01179 memset(list, 0, sizeof(sn_coap_options_list_s)); 01180 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 01181 sn_coap_parser_stub.expectedHeader->options_list_ptr->block2 = 0xe808; 01182 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 01183 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_REQUEST_DELETE; 01184 payload = (uint8_t*)malloc(17); 01185 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 01186 sn_coap_parser_stub.expectedHeader->payload_len = 17; 01187 01188 01189 memset(&tmp_addr, 0, sizeof(sn_nsdl_addr_s)); 01190 memset(&tmp_hdr, 0, sizeof(sn_coap_hdr_s)); 01191 01192 dst_packet_data_ptr = (uint8_t*)malloc(5); 01193 memset(dst_packet_data_ptr, '1', 5); 01194 01195 tmp_addr.addr_ptr = (uint8_t*)malloc(5); 01196 memset(tmp_addr.addr_ptr, '1', 5); 01197 01198 retCounter = 20; 01199 sn_coap_builder_stub.expectedInt16 = 1; 01200 tmp_hdr.payload_ptr = (uint8_t*)malloc(3); 01201 tmp_hdr.options_list_ptr = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01202 memset(tmp_hdr.options_list_ptr, 0, sizeof(sn_coap_options_list_s)); 01203 tmp_hdr.options_list_ptr->use_size2 = true; 01204 tmp_hdr.options_list_ptr->size2 = 0xFF01; 01205 tmp_hdr.msg_id = 18; 01206 tmp_hdr.msg_code = COAP_MSG_CODE_RESPONSE_CREATED; 01207 tmp_hdr.payload_len = SN_COAP_MAX_BLOCKWISE_PAYLOAD_SIZE + 20; 01208 sn_coap_protocol_build(handle, &tmp_addr, dst_packet_data_ptr, &tmp_hdr, NULL); 01209 01210 free(tmp_hdr.options_list_ptr); 01211 free(tmp_hdr.payload_ptr); 01212 tmp_hdr.payload_ptr = NULL; 01213 free(tmp_addr.addr_ptr); 01214 free(dst_packet_data_ptr); 01215 01216 retCounter = 3; 01217 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 01218 CHECK( NULL == ret ); 01219 free(payload); 01220 // sn_coap_parser_release_allocated_coap_msg_mem(handle, sn_coap_parser_stub.expectedHeader); 01221 01222 sn_coap_protocol_destroy(handle); 01223 retCounter = 1; 01224 handle = sn_coap_protocol_init(myMalloc, myFree, null_tx_cb, NULL); 01225 01226 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 01227 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 01228 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 01229 sn_coap_parser_stub.expectedHeader->msg_id = 19; 01230 01231 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01232 memset(list, 0, sizeof(sn_coap_options_list_s)); 01233 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 01234 sn_coap_parser_stub.expectedHeader->options_list_ptr->block2 = 0xeee808; 01235 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 01236 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_REQUEST_DELETE; 01237 payload = (uint8_t*)malloc(17); 01238 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 01239 sn_coap_parser_stub.expectedHeader->payload_len = 17; 01240 01241 memset(&tmp_addr, 0, sizeof(sn_nsdl_addr_s)); 01242 memset(&tmp_hdr, 0, sizeof(sn_coap_hdr_s)); 01243 01244 dst_packet_data_ptr = (uint8_t*)malloc(5); 01245 memset(dst_packet_data_ptr, '1', 5); 01246 01247 tmp_addr.addr_ptr = (uint8_t*)malloc(5); 01248 memset(tmp_addr.addr_ptr, '1', 5); 01249 01250 retCounter = 21; 01251 sn_coap_builder_stub.expectedInt16 = 1; 01252 tmp_hdr.payload_ptr = (uint8_t*)malloc(3); 01253 // tmp_hdr.options_list_ptr = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01254 // memset(tmp_hdr.options_list_ptr, 0, sizeof(sn_coap_options_list_s)); 01255 // tmp_hdr.options_list_ptr->block2 = 1; 01256 tmp_hdr.msg_id = 19; 01257 tmp_hdr.msg_code = COAP_MSG_CODE_REQUEST_GET; 01258 tmp_hdr.payload_len = 1; 01259 sn_coap_protocol_build(handle, &tmp_addr, dst_packet_data_ptr, &tmp_hdr, NULL); 01260 01261 free(tmp_hdr.options_list_ptr); 01262 free(tmp_hdr.payload_ptr); 01263 tmp_hdr.payload_ptr = NULL; 01264 free(tmp_addr.addr_ptr); 01265 free(dst_packet_data_ptr); 01266 01267 retCounter = 2; 01268 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 01269 CHECK( NULL == ret ); 01270 free(payload); 01271 // sn_coap_parser_release_allocated_coap_msg_mem(handle, sn_coap_parser_stub.expectedHeader); 01272 01273 sn_coap_protocol_destroy(handle); 01274 retCounter = 1; 01275 handle = sn_coap_protocol_init(myMalloc, myFree, null_tx_cb, NULL); 01276 01277 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 01278 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 01279 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 01280 sn_coap_parser_stub.expectedHeader->msg_id = 200; 01281 01282 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01283 memset(list, 0, sizeof(sn_coap_options_list_s)); 01284 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 01285 sn_coap_parser_stub.expectedHeader->options_list_ptr->block2 = 0xeee808; 01286 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 01287 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_REQUEST_DELETE; 01288 payload = (uint8_t*)malloc(17); 01289 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 01290 sn_coap_parser_stub.expectedHeader->payload_len = 17; 01291 01292 memset(&tmp_addr, 0, sizeof(sn_nsdl_addr_s)); 01293 memset(&tmp_hdr, 0, sizeof(sn_coap_hdr_s)); 01294 01295 dst_packet_data_ptr = (uint8_t*)malloc(5); 01296 memset(dst_packet_data_ptr, '1', 5); 01297 01298 tmp_addr.addr_ptr = (uint8_t*)malloc(5); 01299 memset(tmp_addr.addr_ptr, '1', 5); 01300 01301 retCounter = 21; 01302 sn_coap_builder_stub.expectedInt16 = 1; 01303 tmp_hdr.payload_ptr = (uint8_t*)malloc(3); 01304 tmp_hdr.msg_id = 200; 01305 tmp_hdr.msg_code = COAP_MSG_CODE_REQUEST_GET; 01306 tmp_hdr.payload_len = 1; 01307 sn_coap_protocol_build(handle, &tmp_addr, dst_packet_data_ptr, &tmp_hdr, NULL); 01308 01309 free(tmp_hdr.options_list_ptr); 01310 free(tmp_hdr.payload_ptr); 01311 tmp_hdr.payload_ptr = NULL; 01312 free(tmp_addr.addr_ptr); 01313 free(dst_packet_data_ptr); 01314 01315 retCounter = 3; 01316 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 01317 CHECK( NULL == ret ); 01318 free(payload); 01319 // sn_coap_parser_release_allocated_coap_msg_mem(handle, sn_coap_parser_stub.expectedHeader); 01320 01321 01322 sn_coap_protocol_destroy(handle); 01323 retCounter = 1; 01324 handle = sn_coap_protocol_init(myMalloc, myFree, null_tx_cb, NULL); 01325 01326 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 01327 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 01328 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 01329 sn_coap_parser_stub.expectedHeader->msg_id = 20; 01330 01331 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01332 memset(list, 0, sizeof(sn_coap_options_list_s)); 01333 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 01334 sn_coap_parser_stub.expectedHeader->options_list_ptr->block1 = -1; 01335 sn_coap_parser_stub.expectedHeader->options_list_ptr->block2 = 0xeee808; 01336 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 01337 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_REQUEST_DELETE; 01338 payload = (uint8_t*)malloc(17); 01339 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 01340 sn_coap_parser_stub.expectedHeader->payload_len = 17; 01341 01342 memset(&tmp_addr, 0, sizeof(sn_nsdl_addr_s)); 01343 memset(&tmp_hdr, 0, sizeof(sn_coap_hdr_s)); 01344 01345 dst_packet_data_ptr = (uint8_t*)malloc(5); 01346 memset(dst_packet_data_ptr, '1', 5); 01347 01348 tmp_addr.addr_ptr = (uint8_t*)malloc(5); 01349 memset(tmp_addr.addr_ptr, '1', 5); 01350 01351 retCounter = 20; 01352 sn_coap_builder_stub.expectedInt16 = 1; 01353 tmp_hdr.payload_ptr = (uint8_t*)malloc(3); 01354 01355 tmp_hdr.msg_id = 20; 01356 tmp_hdr.msg_code = COAP_MSG_CODE_RESPONSE_CREATED; 01357 tmp_hdr.payload_len = SN_COAP_MAX_BLOCKWISE_PAYLOAD_SIZE + 20; 01358 sn_coap_protocol_build(handle, &tmp_addr, dst_packet_data_ptr, &tmp_hdr, NULL); 01359 01360 free(tmp_hdr.options_list_ptr); 01361 free(tmp_hdr.payload_ptr); 01362 tmp_hdr.payload_ptr = NULL; 01363 free(tmp_addr.addr_ptr); 01364 free(dst_packet_data_ptr); 01365 01366 retCounter = 6; 01367 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 01368 CHECK( NULL != ret ); 01369 CHECK( COAP_STATUS_PARSER_BLOCKWISE_ACK == ret->coap_status ); 01370 free(payload); 01371 sn_coap_parser_release_allocated_coap_msg_mem(handle, sn_coap_parser_stub.expectedHeader); 01372 01373 //<-- block2 length == 1,2,3 01374 01375 // block2 == 0x08 --> 01376 01377 sn_coap_protocol_destroy(handle); 01378 retCounter = 1; 01379 handle = sn_coap_protocol_init(myMalloc, myFree, null_tx_cb, NULL); 01380 01381 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 01382 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 01383 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 01384 01385 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01386 memset(list, 0, sizeof(sn_coap_options_list_s)); 01387 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 01388 sn_coap_parser_stub.expectedHeader->options_list_ptr->block1 = -1; 01389 sn_coap_parser_stub.expectedHeader->options_list_ptr->block2 = 0x08; 01390 sn_coap_parser_stub.expectedHeader->msg_id = 41; 01391 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 01392 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_RESPONSE_CREATED; 01393 payload = (uint8_t*)malloc(5); 01394 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 01395 sn_coap_parser_stub.expectedHeader->payload_len = 5; 01396 01397 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 01398 CHECK( NULL == ret ); 01399 free(payload); 01400 01401 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 01402 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 01403 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 01404 01405 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01406 memset(list, 0, sizeof(sn_coap_options_list_s)); 01407 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 01408 sn_coap_parser_stub.expectedHeader->options_list_ptr->block1 = -1; 01409 sn_coap_parser_stub.expectedHeader->options_list_ptr->block2 = 0x08; 01410 sn_coap_parser_stub.expectedHeader->msg_id = 41; 01411 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 01412 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_RESPONSE_CREATED; 01413 payload = (uint8_t*)malloc(5); 01414 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 01415 sn_coap_parser_stub.expectedHeader->payload_len = 5; 01416 01417 memset(&tmp_addr, 0, sizeof(sn_nsdl_addr_s)); 01418 memset(&tmp_hdr, 0, sizeof(sn_coap_hdr_s)); 01419 01420 dst_packet_data_ptr = (uint8_t*)malloc(5); 01421 memset(dst_packet_data_ptr, '1', 5); 01422 01423 tmp_addr.addr_ptr = (uint8_t*)malloc(5); 01424 memset(tmp_addr.addr_ptr, '1', 5); 01425 01426 retCounter = 20; 01427 sn_coap_builder_stub.expectedInt16 = 1; 01428 tmp_hdr.payload_ptr = (uint8_t*)malloc(3); 01429 tmp_hdr.options_list_ptr = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01430 memset(tmp_hdr.options_list_ptr, 0, sizeof(sn_coap_options_list_s)); 01431 tmp_hdr.options_list_ptr->block2 = 1; 01432 tmp_hdr.msg_id = 41; 01433 tmp_hdr.payload_len = SN_COAP_MAX_BLOCKWISE_PAYLOAD_SIZE + 20; 01434 sn_coap_protocol_build(handle, &tmp_addr, dst_packet_data_ptr, &tmp_hdr, NULL); 01435 01436 free(tmp_hdr.options_list_ptr); 01437 free(tmp_hdr.payload_ptr); 01438 free(tmp_addr.addr_ptr); 01439 free(dst_packet_data_ptr); 01440 01441 retCounter = 0; 01442 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 01443 CHECK( NULL == ret ); 01444 free(payload); 01445 free(list); 01446 free(sn_coap_parser_stub.expectedHeader); 01447 01448 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 01449 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 01450 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 01451 01452 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01453 memset(list, 0, sizeof(sn_coap_options_list_s)); 01454 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 01455 sn_coap_parser_stub.expectedHeader->options_list_ptr->block1 = -1; 01456 sn_coap_parser_stub.expectedHeader->options_list_ptr->block2 = 0x08; 01457 sn_coap_parser_stub.expectedHeader->msg_id = 42; 01458 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 01459 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_RESPONSE_CREATED; 01460 payload = (uint8_t*)malloc(5); 01461 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 01462 sn_coap_parser_stub.expectedHeader->payload_len = 5; 01463 01464 memset(&tmp_addr, 0, sizeof(sn_nsdl_addr_s)); 01465 memset(&tmp_hdr, 0, sizeof(sn_coap_hdr_s)); 01466 01467 dst_packet_data_ptr = (uint8_t*)malloc(5); 01468 memset(dst_packet_data_ptr, '1', 5); 01469 01470 tmp_addr.addr_ptr = (uint8_t*)malloc(5); 01471 memset(tmp_addr.addr_ptr, '1', 5); 01472 01473 retCounter = 20; 01474 sn_coap_builder_stub.expectedInt16 = 1; 01475 tmp_hdr.payload_ptr = (uint8_t*)malloc(3); 01476 tmp_hdr.options_list_ptr = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01477 memset(tmp_hdr.options_list_ptr, 0, sizeof(sn_coap_options_list_s)); 01478 tmp_hdr.options_list_ptr->block2 = 1; 01479 tmp_hdr.msg_id = 42; 01480 tmp_hdr.payload_len = SN_COAP_MAX_BLOCKWISE_PAYLOAD_SIZE + 20; 01481 sn_coap_protocol_build(handle, &tmp_addr, dst_packet_data_ptr, &tmp_hdr, NULL); 01482 01483 free(tmp_hdr.options_list_ptr); 01484 free(tmp_hdr.payload_ptr); 01485 free(tmp_addr.addr_ptr); 01486 free(dst_packet_data_ptr); 01487 01488 retCounter = 5; 01489 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 01490 CHECK( NULL == ret ); 01491 free(payload); 01492 free(list); 01493 free(sn_coap_parser_stub.expectedHeader); 01494 01495 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 01496 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 01497 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 01498 01499 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01500 memset(list, 0, sizeof(sn_coap_options_list_s)); 01501 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 01502 sn_coap_parser_stub.expectedHeader->options_list_ptr->block1 = -1; 01503 sn_coap_parser_stub.expectedHeader->options_list_ptr->block2 = 0x08; 01504 sn_coap_parser_stub.expectedHeader->msg_id = 43; 01505 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 01506 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_RESPONSE_CREATED; 01507 payload = (uint8_t*)malloc(5); 01508 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 01509 sn_coap_parser_stub.expectedHeader->payload_len = 5; 01510 01511 memset(&tmp_addr, 0, sizeof(sn_nsdl_addr_s)); 01512 memset(&tmp_hdr, 0, sizeof(sn_coap_hdr_s)); 01513 01514 dst_packet_data_ptr = (uint8_t*)malloc(5); 01515 memset(dst_packet_data_ptr, '1', 5); 01516 01517 tmp_addr.addr_ptr = (uint8_t*)malloc(5); 01518 memset(tmp_addr.addr_ptr, '1', 5); 01519 01520 retCounter = 20; 01521 sn_coap_builder_stub.expectedInt16 = 1; 01522 tmp_hdr.payload_ptr = (uint8_t*)malloc(3); 01523 tmp_hdr.options_list_ptr = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01524 memset(tmp_hdr.options_list_ptr, 0, sizeof(sn_coap_options_list_s)); 01525 tmp_hdr.options_list_ptr->block2 = 1; 01526 tmp_hdr.msg_id = 43; 01527 tmp_hdr.payload_len = SN_COAP_MAX_BLOCKWISE_PAYLOAD_SIZE + 20; 01528 sn_coap_protocol_build(handle, &tmp_addr, dst_packet_data_ptr, &tmp_hdr, NULL); 01529 01530 free(tmp_hdr.options_list_ptr); 01531 free(tmp_hdr.payload_ptr); 01532 free(tmp_addr.addr_ptr); 01533 free(dst_packet_data_ptr); 01534 01535 retCounter = 6; 01536 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 01537 CHECK( NULL == ret ); 01538 free(payload); 01539 // sn_coap_parser_release_allocated_coap_msg_mem(handle, sn_coap_parser_stub.expectedHeader); 01540 01541 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 01542 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 01543 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 01544 01545 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01546 memset(list, 0, sizeof(sn_coap_options_list_s)); 01547 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 01548 sn_coap_parser_stub.expectedHeader->options_list_ptr->block1 = -1; 01549 sn_coap_parser_stub.expectedHeader->options_list_ptr->block2 = 0x08; 01550 sn_coap_parser_stub.expectedHeader->msg_id = 44; 01551 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 01552 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_RESPONSE_CREATED; 01553 payload = (uint8_t*)malloc(5); 01554 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 01555 sn_coap_parser_stub.expectedHeader->payload_len = 5; 01556 01557 memset(&tmp_addr, 0, sizeof(sn_nsdl_addr_s)); 01558 memset(&tmp_hdr, 0, sizeof(sn_coap_hdr_s)); 01559 01560 dst_packet_data_ptr = (uint8_t*)malloc(5); 01561 memset(dst_packet_data_ptr, '1', 5); 01562 01563 tmp_addr.addr_ptr = (uint8_t*)malloc(5); 01564 memset(tmp_addr.addr_ptr, '1', 5); 01565 01566 retCounter = 20; 01567 sn_coap_builder_stub.expectedInt16 = 1; 01568 tmp_hdr.payload_ptr = (uint8_t*)malloc(3); 01569 tmp_hdr.options_list_ptr = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01570 memset(tmp_hdr.options_list_ptr, 0, sizeof(sn_coap_options_list_s)); 01571 tmp_hdr.options_list_ptr->block2 = 1; 01572 tmp_hdr.msg_id = 44; 01573 tmp_hdr.payload_len = SN_COAP_MAX_BLOCKWISE_PAYLOAD_SIZE + 20; 01574 sn_coap_protocol_build(handle, &tmp_addr, dst_packet_data_ptr, &tmp_hdr, NULL); 01575 01576 free(tmp_hdr.options_list_ptr); 01577 free(tmp_hdr.payload_ptr); 01578 free(tmp_addr.addr_ptr); 01579 free(dst_packet_data_ptr); 01580 01581 retCounter = 7; 01582 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 01583 CHECK( NULL == ret ); 01584 free(payload); 01585 01586 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 01587 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 01588 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 01589 01590 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01591 memset(list, 0, sizeof(sn_coap_options_list_s)); 01592 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 01593 sn_coap_parser_stub.expectedHeader->options_list_ptr->block1 = -1; 01594 sn_coap_parser_stub.expectedHeader->options_list_ptr->block2 = 0xa8a8; 01595 sn_coap_parser_stub.expectedHeader->msg_id = 45; 01596 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 01597 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_RESPONSE_CREATED; 01598 payload = (uint8_t*)malloc(5); 01599 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 01600 sn_coap_parser_stub.expectedHeader->payload_len = 5; 01601 01602 memset(&tmp_addr, 0, sizeof(sn_nsdl_addr_s)); 01603 memset(&tmp_hdr, 0, sizeof(sn_coap_hdr_s)); 01604 01605 dst_packet_data_ptr = (uint8_t*)malloc(5); 01606 memset(dst_packet_data_ptr, '1', 5); 01607 01608 tmp_addr.addr_ptr = (uint8_t*)malloc(5); 01609 memset(tmp_addr.addr_ptr, '1', 5); 01610 01611 retCounter = 20; 01612 sn_coap_builder_stub.expectedInt16 = 1; 01613 tmp_hdr.payload_ptr = (uint8_t*)malloc(3); 01614 tmp_hdr.options_list_ptr = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01615 memset(tmp_hdr.options_list_ptr, 0, sizeof(sn_coap_options_list_s)); 01616 tmp_hdr.options_list_ptr->block2 = 1; 01617 tmp_hdr.msg_id = 45; 01618 tmp_hdr.payload_len = SN_COAP_MAX_BLOCKWISE_PAYLOAD_SIZE + 20; 01619 sn_coap_protocol_build(handle, &tmp_addr, dst_packet_data_ptr, &tmp_hdr, NULL); 01620 01621 free(tmp_hdr.options_list_ptr); 01622 free(tmp_hdr.payload_ptr); 01623 free(tmp_addr.addr_ptr); 01624 free(dst_packet_data_ptr); 01625 01626 sn_coap_builder_stub.expectedInt16 = -1; 01627 retCounter = 8; 01628 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 01629 CHECK( NULL == ret ); 01630 free(payload); 01631 01632 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 01633 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 01634 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 01635 01636 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01637 memset(list, 0, sizeof(sn_coap_options_list_s)); 01638 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 01639 sn_coap_parser_stub.expectedHeader->options_list_ptr->block1 = -1; 01640 sn_coap_parser_stub.expectedHeader->options_list_ptr->block2 = 0xc8c8c8; 01641 sn_coap_parser_stub.expectedHeader->msg_id = 46; 01642 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 01643 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_RESPONSE_CREATED; 01644 payload = (uint8_t*)malloc(5); 01645 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 01646 sn_coap_parser_stub.expectedHeader->payload_len = 5; 01647 01648 memset(&tmp_addr, 0, sizeof(sn_nsdl_addr_s)); 01649 memset(&tmp_hdr, 0, sizeof(sn_coap_hdr_s)); 01650 01651 dst_packet_data_ptr = (uint8_t*)malloc(5); 01652 memset(dst_packet_data_ptr, '1', 5); 01653 01654 tmp_addr.addr_ptr = (uint8_t*)malloc(5); 01655 memset(tmp_addr.addr_ptr, '1', 5); 01656 01657 retCounter = 20; 01658 sn_coap_builder_stub.expectedInt16 = 1; 01659 tmp_hdr.payload_ptr = (uint8_t*)malloc(3); 01660 tmp_hdr.options_list_ptr = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01661 memset(tmp_hdr.options_list_ptr, 0, sizeof(sn_coap_options_list_s)); 01662 tmp_hdr.options_list_ptr->block2 = 1; 01663 tmp_hdr.msg_id = 46; 01664 tmp_hdr.payload_len = SN_COAP_MAX_BLOCKWISE_PAYLOAD_SIZE + 20; 01665 sn_coap_protocol_build(handle, &tmp_addr, dst_packet_data_ptr, &tmp_hdr, NULL); 01666 01667 free(tmp_hdr.options_list_ptr); 01668 free(tmp_hdr.payload_ptr); 01669 free(tmp_addr.addr_ptr); 01670 free(dst_packet_data_ptr); 01671 01672 sn_coap_builder_stub.expectedInt16 = 1; 01673 retCounter = 8; 01674 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 01675 CHECK( NULL == ret ); 01676 free(payload); 01677 01678 sn_coap_protocol_destroy(handle); 01679 retCounter = 1; 01680 handle = sn_coap_protocol_init(myMalloc, myFree, null_tx_cb, NULL); 01681 01682 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 01683 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 01684 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 01685 01686 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01687 memset(list, 0, sizeof(sn_coap_options_list_s)); 01688 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 01689 sn_coap_parser_stub.expectedHeader->options_list_ptr->block1 = -1; 01690 sn_coap_parser_stub.expectedHeader->options_list_ptr->block2 = 0xc8c8c8; 01691 sn_coap_parser_stub.expectedHeader->msg_id = 47; 01692 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 01693 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_RESPONSE_CREATED; 01694 payload = (uint8_t*)malloc(5); 01695 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 01696 sn_coap_parser_stub.expectedHeader->payload_len = 5; 01697 01698 memset(&tmp_addr, 0, sizeof(sn_nsdl_addr_s)); 01699 memset(&tmp_hdr, 0, sizeof(sn_coap_hdr_s)); 01700 01701 dst_packet_data_ptr = (uint8_t*)malloc(5); 01702 memset(dst_packet_data_ptr, '1', 5); 01703 01704 tmp_addr.addr_ptr = (uint8_t*)malloc(5); 01705 memset(tmp_addr.addr_ptr, '1', 5); 01706 01707 retCounter = 20; 01708 sn_coap_builder_stub.expectedInt16 = 1; 01709 tmp_hdr.payload_ptr = (uint8_t*)malloc(3); 01710 tmp_hdr.options_list_ptr = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01711 memset(tmp_hdr.options_list_ptr, 0, sizeof(sn_coap_options_list_s)); 01712 tmp_hdr.options_list_ptr->block2 = 1; 01713 tmp_hdr.msg_id = 47; 01714 tmp_hdr.payload_len = SN_COAP_MAX_BLOCKWISE_PAYLOAD_SIZE + 20; 01715 sn_coap_protocol_build(handle, &tmp_addr, dst_packet_data_ptr, &tmp_hdr, NULL); 01716 01717 free(tmp_hdr.options_list_ptr); 01718 free(tmp_hdr.payload_ptr); 01719 free(tmp_addr.addr_ptr); 01720 free(dst_packet_data_ptr); 01721 01722 sn_coap_builder_stub.expectedInt16 = 1; 01723 retCounter = 9; 01724 sn_coap_protocol_set_retransmission_buffer(handle,0,0); 01725 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 01726 CHECK( NULL != ret ); 01727 free(payload); 01728 sn_coap_parser_release_allocated_coap_msg_mem(handle, ret); 01729 01730 sn_coap_protocol_destroy(handle); 01731 retCounter = 1; 01732 handle = sn_coap_protocol_init(myMalloc, myFree, null_tx_cb, NULL); 01733 01734 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 01735 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 01736 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 01737 01738 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01739 memset(list, 0, sizeof(sn_coap_options_list_s)); 01740 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 01741 sn_coap_parser_stub.expectedHeader->options_list_ptr->block1 = -1; 01742 sn_coap_parser_stub.expectedHeader->options_list_ptr->block2 = 0xc8c8c8; 01743 sn_coap_parser_stub.expectedHeader->msg_id = 47; 01744 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 01745 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_RESPONSE_CREATED; 01746 payload = (uint8_t*)malloc(5); 01747 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 01748 sn_coap_parser_stub.expectedHeader->payload_len = 5; 01749 01750 memset(&tmp_addr, 0, sizeof(sn_nsdl_addr_s)); 01751 memset(&tmp_hdr, 0, sizeof(sn_coap_hdr_s)); 01752 01753 dst_packet_data_ptr = (uint8_t*)malloc(5); 01754 memset(dst_packet_data_ptr, '1', 5); 01755 01756 tmp_addr.addr_ptr = (uint8_t*)malloc(5); 01757 memset(tmp_addr.addr_ptr, '1', 5); 01758 01759 retCounter = 20; 01760 sn_coap_builder_stub.expectedInt16 = 1; 01761 tmp_hdr.payload_ptr = (uint8_t*)malloc(3); 01762 tmp_hdr.options_list_ptr = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01763 memset(tmp_hdr.options_list_ptr, 0, sizeof(sn_coap_options_list_s)); 01764 tmp_hdr.options_list_ptr->block2 = 1; 01765 tmp_hdr.msg_id = 47; 01766 tmp_hdr.payload_len = SN_COAP_MAX_BLOCKWISE_PAYLOAD_SIZE + 20; 01767 sn_coap_protocol_build(handle, &tmp_addr, dst_packet_data_ptr, &tmp_hdr, NULL); 01768 01769 free(tmp_hdr.options_list_ptr); 01770 free(tmp_hdr.payload_ptr); 01771 free(tmp_addr.addr_ptr); 01772 free(dst_packet_data_ptr); 01773 01774 sn_coap_builder_stub.expectedInt16 = 1; 01775 retCounter = 9; 01776 sn_coap_protocol_set_retransmission_buffer(handle,2,1); 01777 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 01778 CHECK( NULL != ret ); 01779 free(payload); 01780 sn_coap_parser_release_allocated_coap_msg_mem(handle, ret); 01781 01782 // <-- block2 == 0x08 01783 01784 //<-- Test sn_coap_handle_blockwise_message, block2 != -1 01785 01786 sn_coap_protocol_destroy(handle); 01787 retCounter = 1; 01788 handle = sn_coap_protocol_init(myMalloc, myFree, null_tx_cb, NULL); 01789 01790 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 01791 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 01792 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 01793 01794 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01795 memset(list, 0, sizeof(sn_coap_options_list_s)); 01796 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 01797 sn_coap_parser_stub.expectedHeader->options_list_ptr->block1 = -1; 01798 sn_coap_parser_stub.expectedHeader->options_list_ptr->block2 = 1; 01799 sn_coap_parser_stub.expectedHeader->msg_id = 41; 01800 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 01801 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_RESPONSE_CREATED; 01802 payload = (uint8_t*)malloc(5); 01803 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 01804 sn_coap_parser_stub.expectedHeader->payload_len = 5; 01805 01806 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 01807 CHECK( NULL == ret ); 01808 free(payload); 01809 sn_coap_parser_release_allocated_coap_msg_mem(handle, sn_coap_parser_stub.expectedHeader); 01810 01811 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 01812 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 01813 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 01814 01815 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01816 memset(list, 0, sizeof(sn_coap_options_list_s)); 01817 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 01818 sn_coap_parser_stub.expectedHeader->options_list_ptr->block1 = -1; 01819 sn_coap_parser_stub.expectedHeader->options_list_ptr->block2 = 1; 01820 sn_coap_parser_stub.expectedHeader->msg_id = 42; 01821 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 01822 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_RESPONSE_CREATED; 01823 payload = (uint8_t*)malloc(5); 01824 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 01825 sn_coap_parser_stub.expectedHeader->payload_len = 5; 01826 01827 retCounter = 1; 01828 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 01829 CHECK( NULL == ret ); 01830 free(payload); 01831 sn_coap_parser_release_allocated_coap_msg_mem(handle, sn_coap_parser_stub.expectedHeader); 01832 01833 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 01834 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 01835 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 01836 01837 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01838 memset(list, 0, sizeof(sn_coap_options_list_s)); 01839 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 01840 sn_coap_parser_stub.expectedHeader->options_list_ptr->block1 = -1; 01841 sn_coap_parser_stub.expectedHeader->options_list_ptr->block2 = 1; 01842 sn_coap_parser_stub.expectedHeader->msg_id = 43; 01843 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 01844 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_RESPONSE_CREATED; 01845 payload = (uint8_t*)malloc(5); 01846 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 01847 sn_coap_parser_stub.expectedHeader->payload_len = 5; 01848 01849 retCounter = 2; 01850 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 01851 CHECK( NULL == ret ); 01852 free(payload); 01853 sn_coap_parser_release_allocated_coap_msg_mem(handle, sn_coap_parser_stub.expectedHeader); 01854 01855 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 01856 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 01857 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 01858 01859 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01860 memset(list, 0, sizeof(sn_coap_options_list_s)); 01861 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 01862 sn_coap_parser_stub.expectedHeader->options_list_ptr->block1 = -1; 01863 sn_coap_parser_stub.expectedHeader->options_list_ptr->block2 = 1; 01864 sn_coap_parser_stub.expectedHeader->msg_id = 44; 01865 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 01866 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_RESPONSE_CREATED; 01867 payload = (uint8_t*)malloc(5); 01868 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 01869 sn_coap_parser_stub.expectedHeader->payload_len = 5; 01870 01871 retCounter = 3; 01872 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 01873 CHECK( NULL == ret ); 01874 free(payload); 01875 sn_coap_parser_release_allocated_coap_msg_mem(handle, sn_coap_parser_stub.expectedHeader); 01876 01877 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 01878 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 01879 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 01880 01881 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01882 memset(list, 0, sizeof(sn_coap_options_list_s)); 01883 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 01884 sn_coap_parser_stub.expectedHeader->options_list_ptr->block1 = -1; 01885 sn_coap_parser_stub.expectedHeader->options_list_ptr->block2 = 1; 01886 sn_coap_parser_stub.expectedHeader->msg_id = 45; 01887 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 01888 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_RESPONSE_CREATED; 01889 payload = (uint8_t*)malloc(5); 01890 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 01891 sn_coap_parser_stub.expectedHeader->payload_len = 5; 01892 01893 retCounter = 4; 01894 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 01895 CHECK( NULL == ret ); 01896 free(payload); 01897 sn_coap_parser_release_allocated_coap_msg_mem(handle, sn_coap_parser_stub.expectedHeader); 01898 01899 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 01900 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 01901 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 01902 01903 list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 01904 memset(list, 0, sizeof(sn_coap_options_list_s)); 01905 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 01906 sn_coap_parser_stub.expectedHeader->options_list_ptr->block1 = -1; 01907 sn_coap_parser_stub.expectedHeader->options_list_ptr->block2 = 1; 01908 sn_coap_parser_stub.expectedHeader->msg_id = 46; 01909 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 01910 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_RESPONSE_CREATED; 01911 payload = (uint8_t*)malloc(5); 01912 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 01913 sn_coap_parser_stub.expectedHeader->payload_len = 5; 01914 01915 retCounter = 6; 01916 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 01917 CHECK( NULL != ret ); 01918 free(payload); 01919 free(ret->payload_ptr); 01920 sn_coap_parser_release_allocated_coap_msg_mem(handle, ret); 01921 01922 sn_coap_protocol_destroy(handle); 01923 retCounter = 1; 01924 handle = sn_coap_protocol_init(myMalloc, myFree, null_tx_cb, NULL); 01925 01926 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 01927 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 01928 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 01929 sn_coap_parser_stub.expectedHeader->msg_id = 18; 01930 01931 memset(&tmp_addr, 0, sizeof(sn_nsdl_addr_s)); 01932 memset(&tmp_hdr, 0, sizeof(sn_coap_hdr_s)); 01933 01934 dst_packet_data_ptr = (uint8_t*)malloc(5); 01935 memset(dst_packet_data_ptr, '1', 5); 01936 dst_packet_data_ptr[2]=0; 01937 dst_packet_data_ptr[3]=18; 01938 01939 tmp_addr.addr_ptr = (uint8_t*)malloc(5); 01940 memset(tmp_addr.addr_ptr, '1', 5); 01941 tmp_addr.port = 0; 01942 01943 retCounter = 20; 01944 sn_coap_builder_stub.expectedInt16 = 5; 01945 tmp_hdr.payload_ptr = (uint8_t*)malloc(3); 01946 tmp_hdr.msg_id = 18; 01947 tmp_hdr.msg_code = COAP_MSG_CODE_RESPONSE_CREATED; 01948 tmp_hdr.payload_len = SN_COAP_MAX_BLOCKWISE_PAYLOAD_SIZE + 20; 01949 sn_coap_protocol_build(handle, &tmp_addr, dst_packet_data_ptr, &tmp_hdr, NULL); 01950 01951 free(tmp_hdr.options_list_ptr); 01952 free(tmp_hdr.payload_ptr); 01953 free(tmp_addr.addr_ptr); 01954 free(dst_packet_data_ptr); 01955 01956 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 01957 CHECK( ret != NULL ); 01958 sn_coap_parser_release_allocated_coap_msg_mem(handle, ret); 01959 01960 sn_coap_protocol_destroy(handle); 01961 01962 retCounter = 1; 01963 handle = sn_coap_protocol_init(myMalloc, myFree, null_tx_cb, NULL); 01964 01965 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 01966 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 01967 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_RESET; 01968 sn_coap_parser_stub.expectedHeader->msg_id = 18; 01969 01970 memset(&tmp_addr, 0, sizeof(sn_nsdl_addr_s)); 01971 memset(&tmp_hdr, 0, sizeof(sn_coap_hdr_s)); 01972 01973 dst_packet_data_ptr = (uint8_t*)malloc(5); 01974 memset(dst_packet_data_ptr, '1', 5); 01975 dst_packet_data_ptr[2]=0; 01976 dst_packet_data_ptr[3]=18; 01977 01978 tmp_addr.addr_ptr = (uint8_t*)malloc(5); 01979 memset(tmp_addr.addr_ptr, '1', 5); 01980 tmp_addr.port = 0; 01981 01982 retCounter = 20; 01983 sn_coap_builder_stub.expectedInt16 = 5; 01984 tmp_hdr.payload_ptr = (uint8_t*)malloc(3); 01985 tmp_hdr.msg_id = 18; 01986 tmp_hdr.msg_code = COAP_MSG_CODE_RESPONSE_CREATED; 01987 tmp_hdr.payload_len = SN_COAP_MAX_BLOCKWISE_PAYLOAD_SIZE + 20; 01988 tmp_hdr.uri_path_ptr = (uint8_t*)malloc(7); 01989 snprintf((char *)tmp_hdr.uri_path_ptr, 7, "13/0/1"); 01990 tmp_hdr.uri_path_len = 7; 01991 01992 sn_coap_protocol_build(handle, &tmp_addr, dst_packet_data_ptr, &tmp_hdr, NULL); 01993 01994 free(tmp_hdr.uri_path_ptr); 01995 free(tmp_hdr.options_list_ptr); 01996 free(tmp_hdr.payload_ptr); 01997 free(tmp_addr.addr_ptr); 01998 free(dst_packet_data_ptr); 01999 02000 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 02001 CHECK( ret != NULL ); 02002 sn_coap_parser_release_allocated_coap_msg_mem(handle, ret); 02003 02004 sn_coap_protocol_destroy(handle); 02005 02006 retCounter = 1; 02007 handle = sn_coap_protocol_init(myMalloc, myFree, null_tx_cb, NULL); 02008 02009 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 02010 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 02011 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 02012 sn_coap_parser_stub.expectedHeader->msg_id = 18; 02013 02014 memset(&tmp_addr, 0, sizeof(sn_nsdl_addr_s)); 02015 memset(&tmp_hdr, 0, sizeof(sn_coap_hdr_s)); 02016 02017 dst_packet_data_ptr = (uint8_t*)malloc(5); 02018 memset(dst_packet_data_ptr, '1', 5); 02019 dst_packet_data_ptr[2]=0; 02020 dst_packet_data_ptr[3]=185; 02021 02022 tmp_addr.addr_ptr = (uint8_t*)malloc(5); 02023 memset(tmp_addr.addr_ptr, '1', 5); 02024 tmp_addr.port = 0; 02025 02026 retCounter = 20; 02027 sn_coap_builder_stub.expectedInt16 = 5; 02028 tmp_hdr.payload_ptr = (uint8_t*)malloc(3); 02029 tmp_hdr.msg_id = 18; 02030 tmp_hdr.msg_code = COAP_MSG_CODE_RESPONSE_CREATED; 02031 tmp_hdr.payload_len = SN_COAP_MAX_BLOCKWISE_PAYLOAD_SIZE + 20; 02032 tmp_hdr.uri_path_ptr = (uint8_t*)malloc(7); 02033 snprintf((char *)tmp_hdr.uri_path_ptr, 7, "13/0/1"); 02034 tmp_hdr.uri_path_len = 7; 02035 sn_coap_protocol_build(handle, &tmp_addr, dst_packet_data_ptr, &tmp_hdr, NULL); 02036 02037 free(tmp_hdr.options_list_ptr); 02038 free(tmp_hdr.payload_ptr); 02039 free(tmp_addr.addr_ptr); 02040 free(dst_packet_data_ptr); 02041 02042 ret = sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 02043 CHECK( ret != NULL ); 02044 sn_coap_parser_release_allocated_coap_msg_mem(handle, ret); 02045 02046 free(tmp_hdr.uri_path_ptr); 02047 free(packet_data_ptr); 02048 free(addr->addr_ptr); 02049 free(addr); 02050 sn_coap_protocol_destroy(handle); 02051 } 02052 02053 TEST(libCoap_protocol, sn_coap_protocol_exec) 02054 { 02055 CHECK(-1 == sn_coap_protocol_exec(NULL, 0)); 02056 02057 retCounter = 1; 02058 struct coap_s * handle = sn_coap_protocol_init(myMalloc, myFree, null_tx_cb, NULL); 02059 02060 sn_nsdl_addr_s tmp_addr; 02061 memset(&tmp_addr, 0, sizeof(sn_nsdl_addr_s)); 02062 sn_coap_hdr_s tmp_hdr; 02063 memset(&tmp_hdr, 0, sizeof(sn_coap_hdr_s)); 02064 02065 uint8_t* dst_packet_data_ptr = (uint8_t*)malloc(5); 02066 memset(dst_packet_data_ptr, '1', 5); 02067 02068 tmp_addr.addr_ptr = (uint8_t*)malloc(5); 02069 memset(tmp_addr.addr_ptr, '1', 5); 02070 02071 retCounter = 20; 02072 sn_coap_builder_stub.expectedInt16 = 5; 02073 tmp_hdr.payload_ptr = (uint8_t*)malloc(3); 02074 tmp_hdr.msg_id = 18; 02075 tmp_hdr.msg_code = COAP_MSG_CODE_RESPONSE_CREATED; 02076 tmp_hdr.payload_len = SN_COAP_MAX_BLOCKWISE_PAYLOAD_SIZE + 20; 02077 sn_coap_protocol_build(handle, &tmp_addr, dst_packet_data_ptr, &tmp_hdr, NULL); 02078 02079 free(tmp_hdr.options_list_ptr); 02080 free(tmp_hdr.payload_ptr); 02081 free(tmp_addr.addr_ptr); 02082 free(dst_packet_data_ptr); 02083 02084 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 02085 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 02086 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 02087 sn_coap_parser_stub.expectedHeader->msg_id = 7; 02088 02089 sn_coap_options_list_s* list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 02090 memset(list, 0, sizeof(sn_coap_options_list_s)); 02091 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 02092 sn_coap_parser_stub.expectedHeader->options_list_ptr->block1 = 1; 02093 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 02094 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_REQUEST_GET; 02095 uint8_t* payload = (uint8_t*)malloc(17); 02096 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 02097 sn_coap_parser_stub.expectedHeader->payload_len = 17; 02098 02099 uint8_t *packet_data_ptr = (uint8_t*)malloc(5); 02100 uint16_t packet_data_len = 5; 02101 02102 sn_nsdl_addr_s* addr = (sn_nsdl_addr_s*)malloc(sizeof(sn_nsdl_addr_s)); 02103 memset(addr, 0, sizeof(sn_nsdl_addr_s)); 02104 02105 addr->addr_ptr = (uint8_t*)malloc(5); 02106 02107 retCounter = 5; 02108 sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 02109 free(payload); 02110 free(packet_data_ptr); 02111 free(addr->addr_ptr); 02112 free(addr); 02113 02114 CHECK(0 == sn_coap_protocol_exec(handle, 600)); 02115 02116 sn_coap_builder_stub.expectedInt16 = 0; 02117 retCounter = 0; 02118 sn_coap_protocol_destroy(handle); 02119 } 02120 02121 TEST(libCoap_protocol, sn_coap_protocol_exec2) 02122 { 02123 retCounter = 1; 02124 struct coap_s * handle = sn_coap_protocol_init(myMalloc, myFree, null_tx_cb, null_rx_cb); 02125 02126 sn_nsdl_addr_s tmp_addr; 02127 memset(&tmp_addr, 0, sizeof(sn_nsdl_addr_s)); 02128 sn_coap_hdr_s tmp_hdr; 02129 memset(&tmp_hdr, 0, sizeof(sn_coap_hdr_s)); 02130 02131 uint8_t* dst_packet_data_ptr = (uint8_t*)malloc(5); 02132 memset(dst_packet_data_ptr, '1', 5); 02133 02134 tmp_addr.addr_ptr = (uint8_t*)malloc(5); 02135 memset(tmp_addr.addr_ptr, '1', 5); 02136 02137 retCounter = 20; 02138 sn_coap_builder_stub.expectedInt16 = 5; 02139 tmp_hdr.payload_ptr = (uint8_t*)malloc(3); 02140 tmp_hdr.msg_id = 18; 02141 tmp_hdr.msg_code = COAP_MSG_CODE_RESPONSE_CREATED; 02142 tmp_hdr.payload_len = SN_COAP_MAX_BLOCKWISE_PAYLOAD_SIZE + 20; 02143 sn_coap_protocol_build(handle, &tmp_addr, dst_packet_data_ptr, &tmp_hdr, NULL); 02144 02145 free(tmp_hdr.options_list_ptr); 02146 free(tmp_hdr.payload_ptr); 02147 free(tmp_addr.addr_ptr); 02148 free(dst_packet_data_ptr); 02149 02150 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 02151 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 02152 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 02153 sn_coap_parser_stub.expectedHeader->msg_id = 7; 02154 02155 sn_coap_options_list_s* list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 02156 memset(list, 0, sizeof(sn_coap_options_list_s)); 02157 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 02158 sn_coap_parser_stub.expectedHeader->options_list_ptr->block1 = 1; 02159 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 02160 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_REQUEST_GET; 02161 uint8_t* payload = (uint8_t*)malloc(17); 02162 sn_coap_parser_stub.expectedHeader->payload_ptr = payload; 02163 sn_coap_parser_stub.expectedHeader->payload_len = 17; 02164 02165 uint8_t *packet_data_ptr = (uint8_t*)malloc(5); 02166 uint16_t packet_data_len = 5; 02167 02168 sn_nsdl_addr_s* addr = (sn_nsdl_addr_s*)malloc(sizeof(sn_nsdl_addr_s)); 02169 memset(addr, 0, sizeof(sn_nsdl_addr_s)); 02170 02171 addr->addr_ptr = (uint8_t*)malloc(5); 02172 02173 retCounter = 5; 02174 sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 02175 free(payload); 02176 free(packet_data_ptr); 02177 free(addr->addr_ptr); 02178 free(addr); 02179 02180 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 02181 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 02182 02183 sn_coap_protocol_set_retransmission_parameters(handle,0, 5); 02184 CHECK(0 == sn_coap_protocol_exec(handle, 600)); 02185 02186 sn_coap_builder_stub.expectedInt16 = 0; 02187 retCounter = 0; 02188 sn_coap_protocol_destroy(handle); 02189 } 02190 02191 TEST(libCoap_protocol, sn_coap_protocol_block_remove) 02192 { 02193 sn_coap_protocol_block_remove(0,0,0,0); 02194 retCounter = 9; 02195 sn_nsdl_addr_s* addr = (sn_nsdl_addr_s*)malloc(sizeof(sn_nsdl_addr_s)); 02196 memset(addr, 0, sizeof(sn_nsdl_addr_s)); 02197 addr->addr_ptr = (uint8_t*)malloc(5); 02198 memset(addr->addr_ptr,'a',5); 02199 addr->addr_len = 5; 02200 struct coap_s * handle = sn_coap_protocol_init(myMalloc, myFree, null_tx_cb, NULL); 02201 uint8_t *packet_data_ptr = (uint8_t*)malloc(5); 02202 memset(packet_data_ptr,'x',5); 02203 uint16_t packet_data_len = 5; 02204 sn_coap_parser_stub.expectedHeader = NULL; 02205 sn_coap_parser_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); 02206 memset(sn_coap_parser_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); 02207 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT; 02208 sn_coap_parser_stub.expectedHeader->msg_id = 13; 02209 02210 sn_coap_options_list_s* list = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s)); 02211 memset(list, 0, sizeof(sn_coap_options_list_s)); 02212 sn_coap_parser_stub.expectedHeader->options_list_ptr = list; 02213 sn_coap_parser_stub.expectedHeader->options_list_ptr->block1 = 0x08; 02214 sn_coap_parser_stub.expectedHeader->msg_type = COAP_MSG_TYPE_CONFIRMABLE; 02215 sn_coap_parser_stub.expectedHeader->msg_code = COAP_MSG_CODE_REQUEST_PUT; 02216 uint8_t* payload = (uint8_t*)malloc(17); 02217 sn_coap_parser_stub.expectedHeader->payload_ptr = packet_data_ptr; 02218 sn_coap_parser_stub.expectedHeader->payload_len = packet_data_len; 02219 sn_coap_builder_stub.expectedUint16 = 1; 02220 02221 // Success 02222 retCounter = 9; 02223 sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 02224 CHECK(ns_list_count(&handle->linked_list_blockwise_received_payloads) == 1); 02225 sn_coap_protocol_block_remove(handle,addr,packet_data_len,packet_data_ptr); 02226 CHECK(ns_list_count(&handle->linked_list_blockwise_received_payloads) == 0); 02227 02228 // Ports does not match 02229 retCounter = 18; 02230 sn_coap_parser_stub.expectedHeader->msg_id = 14; 02231 addr->port = 5600; 02232 sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 02233 CHECK(ns_list_count(&handle->linked_list_blockwise_received_payloads) == 1); 02234 addr->port = 5601; 02235 sn_coap_protocol_block_remove(handle,addr,packet_data_len,packet_data_ptr); 02236 CHECK(ns_list_count(&handle->linked_list_blockwise_received_payloads) == 1); 02237 02238 // Addresses does not match 02239 retCounter = 18; 02240 sn_coap_parser_stub.expectedHeader->msg_id = 15; 02241 sn_coap_protocol_parse(handle, addr, packet_data_len, packet_data_ptr, NULL); 02242 CHECK(ns_list_count(&handle->linked_list_blockwise_received_payloads) == 2); 02243 addr->addr_ptr[0] = 'x'; 02244 sn_coap_protocol_block_remove(handle,addr,packet_data_len,packet_data_ptr); 02245 CHECK(ns_list_count(&handle->linked_list_blockwise_received_payloads) == 2); 02246 02247 // Payload length does not match 02248 addr->addr_ptr[0] = 'a'; 02249 sn_coap_protocol_block_remove(handle,addr,packet_data_len+1,packet_data_ptr); 02250 CHECK(ns_list_count(&handle->linked_list_blockwise_received_payloads) == 2); 02251 02252 free(sn_coap_parser_stub.expectedHeader->options_list_ptr); 02253 free(sn_coap_parser_stub.expectedHeader); 02254 free(addr->addr_ptr); 02255 free(addr); 02256 free(payload); 02257 free(packet_data_ptr); 02258 sn_coap_protocol_destroy(handle); 02259 } 02260
Generated on Tue Jul 12 2022 14:21:09 by
1.7.2
