From 8c7220d7a57ad318f3e7815336b7d3c4ff02319f Mon Sep 17 00:00:00 2001 From: "Roger A. Light" Date: Wed, 3 Oct 2018 22:37:57 +0100 Subject: [PATCH] UTF-8 String write tests. --- test/unit/datatype_write.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/test/unit/datatype_write.c b/test/unit/datatype_write.c index 24d5056e..ddb8d3c5 100644 --- a/test/unit/datatype_write.c +++ b/test/unit/datatype_write.c @@ -95,6 +95,36 @@ static void TEST_uint32_write(void) } +/* ======================================================================== + * UTF-8 STRING TESTS + * ======================================================================== */ + +/* This tests writing a UTF-8 String to an incoming packet. */ +static void TEST_string_write(void) +{ + uint8_t payload[100]; + struct mosquitto__packet packet; + int i; + + memset(&packet, 0, sizeof(struct mosquitto__packet)); + memset(payload, 0, 100); + + packet.payload = payload; + packet.packet_length = 100; + + packet__write_string(&packet, "first test", strlen("first test")); + packet__write_string(&packet, "second test", strlen("second test")); + + CU_ASSERT_EQUAL(packet.pos, 2+10+2+11); + CU_ASSERT_EQUAL(payload[0], 0); + CU_ASSERT_EQUAL(payload[1], 10); + CU_ASSERT_NSTRING_EQUAL(payload+2, "first test", 10); + CU_ASSERT_EQUAL(payload[2+10+0], 0); + CU_ASSERT_EQUAL(payload[2+10+1], 11); + CU_ASSERT_NSTRING_EQUAL(payload+2+10+2, "second test", 11); +} + + /* ======================================================================== * TEST SUITE SETUP * ======================================================================== */ @@ -113,6 +143,7 @@ int init_datatype_write_tests(void) || !CU_add_test(test_suite, "Byte write)", TEST_byte_write) || !CU_add_test(test_suite, "Two Byte Integer write", TEST_uint16_write) || !CU_add_test(test_suite, "Four Byte Integer write", TEST_uint32_write) + || !CU_add_test(test_suite, "UTF-8 String write", TEST_string_write) ){ printf("Error adding Datatype write CUnit tests.\n");