feat(spmc) Add TSP tests for EL3 SPMC to CI

TSP tests are designed to be exercised by the
FF-A Test Driver in the Normal World.
These have been designed to test basic functionality of the EL3 SPMC.

These tests currently ensure the following functionality:
  - Partition discovery.
  - Direct messaging.
  - Communication with a Logical SP.
  - Memory Sharing and Lending ABIs
  - Sharing of contiguous and non-contiguous memory regions.
  - Memory region descriptors spread of over multiple
    invocations.
  - Multiple endpoint memory transitions.

This test config builds TF-A with SPMC_AT_EL3
and uses prebuilt Linux Image with integrated
FF-A Test Driver in the Normal World.

Change-Id: Ib6ecca0f87b6696a647afd3bf5a253b5a88fd842
Signed-off-by: Shruti <shruti.gupta@arm.com>
diff --git a/expect/ffa_test_driver.exp b/expect/ffa_test_driver.exp
new file mode 100644
index 0000000..28fd6da
--- /dev/null
+++ b/expect/ffa_test_driver.exp
@@ -0,0 +1,49 @@
+#
+# Copyright (c) 2022, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+source [file join [file dirname [info script]] handle-arguments.inc]
+
+expect {
+        "buildroot login:" {
+                send "\n\nroot\n"
+                puts "<<Linux Booted>>"
+        }
+        timeout {
+                exit_uart -1
+        }
+}
+
+expect {
+        "#" {
+                send "ioctl 255\n"
+        }
+        timeout {
+                exit_uart -1
+        }
+}
+
+expect_string "Test: Echo Message to SP"
+expect_string "Test: Message Relay vis SP to EL3 LSP."
+expect_string "Test: Memory Send."
+expect_string "Test: Memory Send in Fragments."
+expect_string "Test: Memory Lend."
+expect_string "Test: Memory Lend in Fragments."
+expect_string "Test: Memory Send with Multiple Endpoints."
+expect_string "Test: Memory Lend with Multiple Endpoints."
+expect_string "Test: Ensure Duplicate Memory Send Requests are Rejected."
+expect_string "Test: Ensure Duplicate Memory Lend Requests are Rejected."
+
+expect {
+        "Total Failures: 0" {
+                puts "<<SUCCESS>>"
+        }
+        timeout {
+                exit_uart -1
+        }
+}
+
+exit_uart 0
+