Bluetooth: Add unit tests for bt_addr_le_eq
Add some basic unit tests for bt_addr_le_eq.
Signed-off-by: Aleksander Wasaznik <aleksander.wasaznik@nordicsemi.no>
diff --git a/tests/bluetooth/addr/CMakeLists.txt b/tests/bluetooth/addr/CMakeLists.txt
new file mode 100644
index 0000000..491ccc6
--- /dev/null
+++ b/tests/bluetooth/addr/CMakeLists.txt
@@ -0,0 +1,9 @@
+# SPDX-License-Identifier: Apache-2.0
+
+cmake_minimum_required(VERSION 3.20.0)
+find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})
+project(app)
+
+target_sources(app PRIVATE
+ src/test_bt_addr_le_eq.c
+)
diff --git a/tests/bluetooth/addr/prj.conf b/tests/bluetooth/addr/prj.conf
new file mode 100644
index 0000000..84088e6
--- /dev/null
+++ b/tests/bluetooth/addr/prj.conf
@@ -0,0 +1,7 @@
+CONFIG_TEST=y
+CONFIG_ZTEST=y
+CONFIG_ZTEST_NEW_API=y
+
+CONFIG_BT=y
+CONFIG_BT_CTLR=n
+CONFIG_BT_NO_DRIVER=y
diff --git a/tests/bluetooth/addr/src/test_bt_addr_le_eq.c b/tests/bluetooth/addr/src/test_bt_addr_le_eq.c
new file mode 100644
index 0000000..b56e5fc
--- /dev/null
+++ b/tests/bluetooth/addr/src/test_bt_addr_le_eq.c
@@ -0,0 +1,77 @@
+/* Copyright (c) 2022 Nordic Semiconductor ASA
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+#include <zephyr/bluetooth/addr.h>
+#include <zephyr/ztest.h>
+
+ZTEST_SUITE(bt_addr_le_eq, NULL, NULL, NULL, NULL, NULL);
+
+ZTEST(bt_addr_le_eq, test_all_zero)
+{
+ bt_addr_le_t a = {.type = 0, .a = {{0, 0, 0, 0, 0, 0}}};
+ bt_addr_le_t b = a;
+
+ zassert_true(bt_addr_le_eq(&a, &b));
+}
+
+ZTEST(bt_addr_le_eq, test_type_not_zero)
+{
+ bt_addr_le_t a = {.type = 1, .a = {{1, 2, 3, 4, 5, 6}}};
+ bt_addr_le_t b = a;
+
+ zassert_true(bt_addr_le_eq(&a, &b));
+}
+
+ZTEST(bt_addr_le_eq, test_type_matters)
+{
+ bt_addr_le_t a = {.type = 0, .a = {{1, 2, 3, 4, 5, 6}}};
+ bt_addr_le_t b = a;
+
+ zassume_true(bt_addr_le_eq(&a, &b));
+ a.type = 1;
+ zassert_false(bt_addr_le_eq(&a, &b));
+}
+
+ZTEST(bt_addr_le_eq, test_address_matters_start)
+{
+ bt_addr_le_t a = {.type = 0, .a = {{1, 2, 3, 4, 5, 6}}};
+ bt_addr_le_t b = a;
+
+ zassume_true(bt_addr_le_eq(&a, &b));
+ a.a.val[0] = 0;
+ zassert_false(bt_addr_le_eq(&a, &b));
+}
+
+ZTEST(bt_addr_le_eq, test_address_matters_end)
+{
+ bt_addr_le_t a = {.type = 0, .a = {{1, 2, 3, 4, 5, 6}}};
+ bt_addr_le_t b = a;
+
+ zassume_true(bt_addr_le_eq(&a, &b));
+ a.a.val[5] = 0;
+ zassert_false(bt_addr_le_eq(&a, &b));
+}
+
+ZTEST(bt_addr_le_eq, test_only_type_and_address_matters)
+{
+ bt_addr_le_t a;
+ bt_addr_le_t b;
+
+ /* Make anything that is not the type and address unequal bytes. */
+ memset(&a, 0xaa, sizeof(a));
+ memset(&b, 0xbb, sizeof(b));
+ a.type = 1;
+ b.type = 1;
+ memset(a.a.val, 1, sizeof(a.a.val));
+ memset(b.a.val, 1, sizeof(b.a.val));
+
+ zassert_true(bt_addr_le_eq(&a, &b));
+}
+
+ZTEST(bt_addr_le_eq, test_same_object)
+{
+ bt_addr_le_t a = {.type = 0, .a = {{1, 2, 3, 4, 5, 6}}};
+
+ zassert_true(bt_addr_le_eq(&a, &a));
+}
diff --git a/tests/bluetooth/addr/testcase.yaml b/tests/bluetooth/addr/testcase.yaml
new file mode 100644
index 0000000..ac7b7cd
--- /dev/null
+++ b/tests/bluetooth/addr/testcase.yaml
@@ -0,0 +1,4 @@
+tests:
+ bluetooth.addr:
+ platform_allow: native_posix native_posix_64 qemu_x86 qemu_cortex_m3
+ tags: bluetooth addr