| /* 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"); |
| } |