blob: ed922ce1dc96e5d76a6fc54dcd786d8a7c67ab87 [file] [log] [blame]
/* Copyright (c) 2022 Nordic Semiconductor ASA
* SPDX-License-Identifier: Apache-2.0
*/
#include <stdbool.h>
#include <string.h>
#include <zephyr/ztest.h>
#include <zephyr/bluetooth/uuid.h>
ZTEST_SUITE(bt_uuid_to_str, NULL, NULL, NULL, NULL, NULL);
static bool is_null_terminated(char *str, size_t size)
{
return strnlen(str, size) < size;
}
static void result_is_null_terminated(const struct bt_uuid *uuid)
{
char str[BT_UUID_STR_LEN];
memset(str, 1, sizeof(str));
bt_uuid_to_str(uuid, str, sizeof(str));
zassert_true(is_null_terminated(str, sizeof(str)), "Result is not null-terminated.");
}
static void result_str_is(const struct bt_uuid *uuid, const char *expected_str)
{
char str[BT_UUID_STR_LEN] = {};
bt_uuid_to_str(uuid, str, sizeof(str));
zassume_true(is_null_terminated(str, sizeof(str)), "Result is not a string.");
zassert_true((strcmp(str, expected_str) == 0),
"Unexpected result.\n Found: %s\nExpected: %s", str, expected_str);
}
ZTEST(bt_uuid_to_str, test_null_terminated_type_16)
{
result_is_null_terminated(BT_UUID_DECLARE_16(0));
}
ZTEST(bt_uuid_to_str, test_null_terminated_type_32)
{
result_is_null_terminated(BT_UUID_DECLARE_32(0));
}
ZTEST(bt_uuid_to_str, test_null_terminated_type_128)
{
result_is_null_terminated(BT_UUID_DECLARE_128(BT_UUID_128_ENCODE(0l, 0, 0, 0, 0ll)));
}
ZTEST(bt_uuid_to_str, test_padding_type_16)
{
result_str_is(BT_UUID_DECLARE_16(0), "0000");
}
ZTEST(bt_uuid_to_str, test_padding_type_32)
{
result_str_is(BT_UUID_DECLARE_32(0), "00000000");
}
ZTEST(bt_uuid_to_str, test_padding_type_128)
{
result_str_is(BT_UUID_DECLARE_128(BT_UUID_128_ENCODE(0l, 0, 0, 0, 0ll)),
"00000000-0000-0000-0000-000000000000");
}
ZTEST(bt_uuid_to_str, test_ordering_type_16)
{
result_str_is(BT_UUID_DECLARE_16(0xabcd), "abcd");
}
ZTEST(bt_uuid_to_str, test_ordering_type_32)
{
result_str_is(BT_UUID_DECLARE_32(0xabcdef12), "abcdef12");
}
ZTEST(bt_uuid_to_str, test_ordering_type_128)
{
result_str_is(BT_UUID_DECLARE_128(BT_UUID_128_ENCODE(
0xabcdef12, 0x3456, 0x9999, 0x9999, 0x999999999999)),
"abcdef12-3456-9999-9999-999999999999");
result_str_is(BT_UUID_DECLARE_128(BT_UUID_128_ENCODE(
0x99999999, 0x9999, 0xabcd, 0xef12, 0x999999999999)),
"99999999-9999-abcd-ef12-999999999999");
result_str_is(BT_UUID_DECLARE_128(BT_UUID_128_ENCODE(
0x99999999, 0x9999, 0x9999, 0x9999, 0xabcdef123456)),
"99999999-9999-9999-9999-abcdef123456");
}