Add HTTP based RPC support
To support test access to a DUT from a host PC, an RPC caller
is added that uses an HTTP PUT to carry RPC call requests,
handled by a REST API server running on the DUT. The
implementation uses libcurl which must be installed on the
host machine.
Signed-off-by: Julian Hall <julian.hall@arm.com>
Change-Id: I46a2720ce6281df0cb0de062e14e9090b4dcaaab
diff --git a/deployments/ts-fw-test/ts-fw-test.cmake b/deployments/ts-fw-test/ts-fw-test.cmake
new file mode 100644
index 0000000..c4ecd31
--- /dev/null
+++ b/deployments/ts-fw-test/ts-fw-test.cmake
@@ -0,0 +1,64 @@
+#-------------------------------------------------------------------------------
+# Copyright (c) 2023, Arm Limited and Contributors. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+#-------------------------------------------------------------------------------
+
+#-------------------------------------------------------------------------------
+# The base build file shared between deployments of 'ts-fw-test'. Used for
+# testing the fimware running on a separate DUT, exercised from test cases
+# that run on a host machine. This test configuration is suitable for test
+# scenarios that involve disruptive operations such as device restarts that
+# preclude
+#-------------------------------------------------------------------------------
+
+#-------------------------------------------------------------------------------
+# Components that are common across all deployments
+#
+#-------------------------------------------------------------------------------
+add_components(
+ TARGET "ts-fw-test"
+ BASE_DIR ${TS_ROOT}
+ COMPONENTS
+ "components/common/endian"
+ "components/common/trace"
+ "components/common/utils"
+ "components/common/uuid"
+ "components/rpc/common/interface"
+ "components/rpc/common/caller"
+ "components/rpc/http/caller"
+ "components/rpc/http/caller/test"
+ "components/service/common/client"
+ "components/service/common/include"
+ "components/service/locator"
+ "components/service/locator/interface"
+ "components/service/locator/remote/restapi"
+ "components/service/discovery/client"
+ "components/service/fwu/test/fwu_client/remote"
+ "components/service/fwu/test/fwu_dut"
+ "components/service/fwu/test/fwu_dut/proxy"
+ "components/service/fwu/test/fwu_dut_factory/remote"
+ "components/service/fwu/test/image_directory_checker"
+ "components/service/fwu/test/metadata_checker"
+ "components/service/fwu/test/metadata_fetcher/client"
+)
+
+#-------------------------------------------------------------------------------
+# Installed package dependencies
+#
+#-------------------------------------------------------------------------------
+
+# Native CURL headers and libraries needed
+find_package(CURL REQUIRED)
+target_include_directories(ts-fw-test PRIVATE ${CURL_INCLUDE_DIR})
+target_link_libraries(ts-fw-test ${CURL_LIBRARIES})
+
+#-------------------------------------------------------------------------------
+# Define install content.
+#
+#-------------------------------------------------------------------------------
+if (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
+ set(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/install CACHE PATH "location to install build output to." FORCE)
+endif()
+install(TARGETS ts-fw-test RUNTIME DESTINATION ${TS_ENV}/bin)