diff --git a/cmake/UnitTest.cmake b/cmake/UnitTest.cmake
new file mode 100644
index 0000000..d2255df
--- /dev/null
+++ b/cmake/UnitTest.cmake
@@ -0,0 +1,66 @@
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+include_guard(DIRECTORY)
+
+# Global dependencies:
+#   Variables
+#     CPICKER_COMMAND: command of the c-picker
+#     CPICKER_CACHE_PATH: root directory of the c-picker generate files
+#     UNIT_TEST_COMMON_SOURCES: common source files for every test build
+#   Modules
+#     CTest module should be included in the root CMakeLists.txt before calling this function
+
+function(add_unit_test_suite)
+	set(_OPTIONS_ARGS args1)
+	set(_ONE_VALUE_ARGS TEST_NAME)
+	set(_MULTI_VALUE_ARGS TEST_SOURCES TEST_INCLUDES TEST_DEFINES)
+	cmake_parse_arguments(_MY_PARAMS "${_OPTIONS_ARGS}" "${_ONE_VALUE_ARGS}" "${_MULTI_VALUE_ARGS}" ${ARGN})
+	# TODO: check_args(add_unit_test_suite args1 args2 args3)
+
+	set(TEST_NAME ${_MY_PARAMS_TEST_NAME})
+	set(TEST_INCLUDES ${_MY_PARAMS_TEST_INCLUDES})
+	set(TEST_DEFINES ${_MY_PARAMS_TEST_DEFINES})
+
+	add_executable(${TEST_NAME} ${UNIT_TEST_COMMON_SOURCES})
+
+	foreach(TEST_SOURCE ${_MY_PARAMS_TEST_SOURCES})
+		get_filename_component(TEST_SOURCE_EXTENSION ${TEST_SOURCE} EXT)
+
+		if (${TEST_SOURCE_EXTENSION} STREQUAL ".yml")
+			# Building output file name: tests/a/b/test.yml -> ${CPICKER_CACHE_PATH}/a/b/test.c
+			get_filename_component(TEST_SOURCE_DIR ${TEST_SOURCE} DIRECTORY)
+			file(RELATIVE_PATH CPICKER_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/tests ${TEST_SOURCE_DIR})
+			get_filename_component(TEST_SOURCE_NAME ${TEST_SOURCE} NAME_WE)
+			set(CPICKER_OUTPUT ${CPICKER_CACHE_PATH}/${TEST_NAME}/${CPICKER_SOURCE_DIR}/${TEST_SOURCE_NAME}.c)
+
+			# Creating output directory
+			get_filename_component(OUTPUT_DIRECTORY ${CPICKER_OUTPUT} DIRECTORY)
+			file(MAKE_DIRECTORY ${OUTPUT_DIRECTORY})
+
+			# Fetching referenced source files as the dependencies of the generated file
+			execute_process(
+				COMMAND ${CPICKER_COMMAND} --config ${TEST_SOURCE} --root ${TF_A_PATH} --print-dependencies
+				OUTPUT_VARIABLE CPICKER_DEPENDENCIES
+			)
+
+			# Adding custom command for invoking c-picker
+			add_custom_command(
+				OUTPUT ${CPICKER_OUTPUT}
+				COMMAND ${CPICKER_COMMAND} --config ${TEST_SOURCE} --root ${TF_A_PATH} > ${CPICKER_OUTPUT}
+				DEPENDS ${TEST_SOURCE} ${CPICKER_DEPENDENCIES}
+				COMMENT "Generating c-picker output ${CPICKER_OUTPUT}"
+			)
+			set(TEST_SOURCE ${CPICKER_OUTPUT})
+		endif()
+
+		target_sources(${TEST_NAME} PRIVATE ${TEST_SOURCE})
+	endforeach()
+
+	target_include_directories(${TEST_NAME} PRIVATE ${TEST_INCLUDES})
+	target_compile_definitions(${TEST_NAME} PRIVATE ${TEST_DEFINES})
+	add_test(${TEST_NAME} ${TEST_NAME})
+endfunction()
