Add test_runner service

This is a new service with client and provider that can be
used for running tests in a secure processing environment
and retrieving the results.  The test_runner provider allows
for arbitrary test farmework backends.  The goal is to
have a cpputest backend.  In this commit, a mock backend
is included for testing the service itself.  The service
has its own access protocol defined under the protocols
top-level directory.

Signed-off-by: Julian Hall <julian.hall@arm.com>
Change-Id: If4e965c110763bd805abbdcb87e7e03cd76248b2
diff --git a/protocols/service/test_runner/packed-c/test_spec.h b/protocols/service/test_runner/packed-c/test_spec.h
new file mode 100644
index 0000000..c31b367
--- /dev/null
+++ b/protocols/service/test_runner/packed-c/test_spec.h
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2021, Arm Limited and Contributors. All rights reserved.
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#ifndef TS_TEST_RUNNER_TEST_SPEC
+#define TS_TEST_RUNNER_TEST_SPEC
+
+/**
+ * Variable length parameters used to specify a test or
+ * group of tests.  A missing parameter is interpreted
+ * as a wildcard.
+ */
+enum
+{
+    /* Specifies the name of a particular test to run.
+     * The parameter should consist of an ascii string
+     * without a zero terminator.
+     */
+    TS_TEST_RUNNER_TEST_SPEC_TAG_NAME = 1,
+
+    /* Specifies a group of tests to run.
+     * The parameter should consist of an ascii string
+     * without a zero terminator.
+     */
+    TS_TEST_RUNNER_TEST_SPEC_TAG_GROUP = 2
+};
+
+#endif /* TS_TEST_RUNNER_TEST_SPEC */