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