MLECO-3149: Add CTest driven FVP runs for non-native targets.

Additional CMake configuration parameters required:

* `BUILD_FVP_TESTS`: Selects whether these tests are built, OFF by default.
* `FVP_PATH`: Path to the FVP that MUST be provided for the configuration to succeed.

Change-Id: I741379cd0a6078a3e2c3163e6b253b2f5dc25c58
Signed-off-by: Sarah Blades <sarah.blades@arm.com>
diff --git a/scripts/cmake/platforms/mps3/build_configuration.cmake b/scripts/cmake/platforms/mps3/build_configuration.cmake
index 7bed48d..f8d4cf1 100644
--- a/scripts/cmake/platforms/mps3/build_configuration.cmake
+++ b/scripts/cmake/platforms/mps3/build_configuration.cmake
@@ -86,4 +86,26 @@
             POST_BUILD
             COMMAND ${CMAKE_COMMAND} -E copy ${MPS3_FPGA_CONFIG} ${SECTORS_DIR})
 
+    # Add tests for application on FVP if FVP path specified
+    if (BUILD_FVP_TESTS)
+
+        # Build for all use cases if USE_SINGLE_INPUT as no telnet interaction required
+        # otherwise only build for inference runner
+        if ((USE_SINGLE_INPUT) OR (${use_case} STREQUAL "inference_runner"))
+            set(AXF_PATH "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${PARSED_TARGET_NAME}.axf")
+            set(TEST_TARGET_NAME "${use_case}_fvp_test")
+
+            message(STATUS "Adding FVP test for ${use_case}")
+
+            add_test(
+                NAME "${TEST_TARGET_NAME}"
+                COMMAND ${FVP_PATH} -a ${AXF_PATH}
+                    -C mps3_board.telnetterminal0.start_telnet=0
+                    -C mps3_board.uart0.out_file='-'
+                    -C mps3_board.uart0.shutdown_on_eot=1
+                    -C mps3_board.visualisation.disable-visualisation=1
+                    --stat)
+        endif()
+    endif ()
+
 endfunction()