diff --git a/components/app/remote-test-runner/remote_test_runner.cpp b/components/app/remote-test-runner/remote_test_runner.cpp
index b819779..66d81f6 100644
--- a/components/app/remote-test-runner/remote_test_runner.cpp
+++ b/components/app/remote-test-runner/remote_test_runner.cpp
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2021, Arm Limited and Contributors. All rights reserved.
+ * Copyright (c) 2021-2022, Arm Limited and Contributors. All rights reserved.
  *
  * SPDX-License-Identifier: BSD-3-Clause
  */
@@ -46,19 +46,21 @@
     struct test_summary summary;
     std::vector<struct test_result> results;
 
-    if (list_only) {
+    memset(&summary, 0, sizeof(summary));
 
-        test_status = m_client->list_tests(spec, summary, results);
-        output_list(summary, results);
+    test_status = (list_only) ?
+        m_client->list_tests(spec, summary, results) :
+        m_client->run_tests(spec, summary, results);
+
+    if (test_status == TS_TEST_RUNNER_STATUS_SUCCESS) {
+
+        if (list_only)
+            output_list(summary, results);
+        else
+            output_results(summary, results);
     }
     else {
 
-        test_status = m_client->run_tests(spec, summary, results);
-        output_results(summary, results);
-    }
-
-    if (test_status != TS_TEST_RUNNER_STATUS_SUCCESS) {
-
         printf("Tests failed to run with error: %d\n", test_status);
     }
 
@@ -119,7 +121,12 @@
 void remote_test_runner::output_list(const struct test_summary &summary,
                                     const std::vector<struct test_result> &results)
 {
+    for (int i = 0; i < results.size(); ++i) {
 
+        printf("TEST(%s, %s)\n", results[i].group, results[i].name);
+    }
+
+    output_summary(summary);
 }
 
 void remote_test_runner::output_results(const struct test_summary &summary,
diff --git a/components/service/test_runner/client/cpp/test_runner_client.cpp b/components/service/test_runner/client/cpp/test_runner_client.cpp
index 0353329..27ace7b 100644
--- a/components/service/test_runner/client/cpp/test_runner_client.cpp
+++ b/components/service/test_runner/client/cpp/test_runner_client.cpp
@@ -94,7 +94,7 @@
 
             test_status = opstatus;
 
-            if (opstatus == TS_TEST_RUNNER_STATUS_SUCCESS) {
+            if (test_status == TS_TEST_RUNNER_STATUS_SUCCESS) {
 
                 test_status = deserialize_results(resp_buf, resp_len, summary, results);
             }
