diff --git a/components/common/endian/test/component.cmake b/components/common/endian/test/component.cmake
new file mode 100644
index 0000000..c909666
--- /dev/null
+++ b/components/common/endian/test/component.cmake
@@ -0,0 +1,13 @@
+#-------------------------------------------------------------------------------
+# Copyright (c) 2021, Arm Limited and Contributors. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+#-------------------------------------------------------------------------------
+if (NOT DEFINED TGT)
+	message(FATAL_ERROR "mandatory parameter TGT is not defined.")
+endif()
+
+target_sources(${TGT} PRIVATE
+	"${CMAKE_CURRENT_LIST_DIR}/endian_test.cpp"
+	)
diff --git a/components/common/endian/test/endian_test.cpp b/components/common/endian/test/endian_test.cpp
new file mode 100644
index 0000000..dabf276
--- /dev/null
+++ b/components/common/endian/test/endian_test.cpp
@@ -0,0 +1,66 @@
+/*
+ * Copyright (c) 2021, Arm Limited and Contributors. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#include <cstring>
+#include <common/endian/le.h>
+#include <CppUTest/TestHarness.h>
+
+TEST_GROUP(EndianTests)
+{
+
+};
+
+TEST(EndianTests, le8)
+{
+    const uint8_t test_vector[] = {0x00, 0x01, 0x02, 0x03, 0x04};
+    uint8_t store_result[sizeof(test_vector)];
+
+    memcpy(store_result, test_vector, sizeof(test_vector));
+
+    UNSIGNED_LONGS_EQUAL(0x03, load_u8_le(test_vector, 3));
+
+    store_u8_le(store_result, 2, 0x02);
+    MEMCMP_EQUAL(test_vector, store_result, sizeof(test_vector));
+}
+
+TEST(EndianTests, le16)
+{
+    const uint8_t test_vector[] = {0x00, 0x01, 0x02, 0x03, 0x04};
+    uint8_t store_result[sizeof(test_vector)];
+
+    memcpy(store_result, test_vector, sizeof(test_vector));
+
+    UNSIGNED_LONGS_EQUAL(0x0201, load_u16_le(test_vector, 1));
+
+    store_u16_le(store_result, 1, 0x0201);
+    MEMCMP_EQUAL(test_vector, store_result, sizeof(test_vector));
+}
+
+TEST(EndianTests, le32)
+{
+    const uint8_t test_vector[] = {0x00, 0x01, 0x02, 0x03, 0x04};
+    uint8_t store_result[sizeof(test_vector)];
+
+    memcpy(store_result, test_vector, sizeof(test_vector));
+
+    UNSIGNED_LONGS_EQUAL(0x04030201, load_u32_le(test_vector, 1));
+
+    store_u32_le(store_result, 1, 0x04030201);
+    MEMCMP_EQUAL(test_vector, store_result, sizeof(test_vector));
+}
+
+TEST(EndianTests, le64)
+{
+    const uint8_t test_vector[] = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08};
+    uint8_t store_result[sizeof(test_vector)];
+
+    memcpy(store_result, test_vector, sizeof(test_vector));
+
+    UNSIGNED_LONGS_EQUAL(0x0807060504030201, load_u64_le(test_vector, 1));
+
+    store_u64_le(store_result, 1, 0x0807060504030201);
+    MEMCMP_EQUAL(test_vector, store_result, sizeof(test_vector));
+}
