From 715b79a1e78cb6be5930befe2909517333a9b5fe Mon Sep 17 00:00:00 2001 From: Ken Bannister <kb2ma@runbox.com> Date: Fri, 18 Jan 2019 06:34:04 -0500 Subject: [PATCH] tests/nanocoap: build request that fills buffer --- .../unittests/tests-nanocoap/tests-nanocoap.c | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/tests/unittests/tests-nanocoap/tests-nanocoap.c b/tests/unittests/tests-nanocoap/tests-nanocoap.c index 38185b2bbd..b742fadd97 100644 --- a/tests/unittests/tests-nanocoap/tests-nanocoap.c +++ b/tests/unittests/tests-nanocoap/tests-nanocoap.c @@ -330,6 +330,29 @@ static void test_nanocoap__get_multi_query(void) TEST_ASSERT_EQUAL_STRING((char *)qs, &query[1]); } +/* + * Builds on get_req test, to test building a PDU that completely fills the + * buffer. + */ +static void test_nanocoap__option_add_buffer_max(void) +{ + uint8_t buf[70]; /* header 4, token 2, path 64 */ + coap_pkt_t pkt; + uint16_t msgid = 0xABCD; + uint8_t token[2] = {0xDA, 0xEC}; + char path[] = "/23456789012345678901234567890123456789012345678901234567890123"; + + size_t uri_opt_len = 64; /* option hdr 2, option value 62 */ + + size_t len = coap_build_hdr((coap_hdr_t *)&buf[0], COAP_TYPE_NON, + &token[0], 2, COAP_METHOD_GET, msgid); + + coap_pkt_init(&pkt, &buf[0], sizeof(buf), len); + + len = coap_opt_add_string(&pkt, COAP_OPT_URI_PATH, &path[0], '/'); + TEST_ASSERT_EQUAL_INT(uri_opt_len, len); +} + /* * Helper for server_get tests below. * GET Request for nanocoap server example /riot/value resource. @@ -531,6 +554,7 @@ Test *tests_nanocoap_tests(void) new_TestFixture(test_nanocoap__get_path_too_long), new_TestFixture(test_nanocoap__get_query), new_TestFixture(test_nanocoap__get_multi_query), + new_TestFixture(test_nanocoap__option_add_buffer_max), new_TestFixture(test_nanocoap__server_get_req), new_TestFixture(test_nanocoap__server_reply_simple), new_TestFixture(test_nanocoap__server_get_req_con), -- GitLab