blob: 9d1fca483f2361b46491a5e4972dc8feaa1ca658 [file] [log] [blame]
julhal013ec4c322021-02-05 17:30:49 +00001/*
2 * Copyright (c) 2021, Arm Limited and Contributors. All rights reserved.
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
7#ifndef REMOTE_TEST_RUNNER_H
8#define REMOTE_TEST_RUNNER_H
9
10#include <service/test_runner/client/cpp/test_runner_client.h>
11#include <service/test_runner/common/test_runner.h>
12
13/*
14 * Provides a command line interface for running remote tests.
15 */
16class remote_test_runner
17{
18public:
19 remote_test_runner();
20 remote_test_runner(test_runner_client *client);
21 virtual ~remote_test_runner();
22
23 void set_client(test_runner_client *client);
24
25 int execute(int argc, char *argv[]);
26
27private:
28
29 void parse_test_spec_params(int argc, char *argv[], struct test_spec &spec) const;
30 std::string parse_option(const char *option_switch, int argc, char *argv[]) const;
31 bool option_selected(const char *option_switch, int argc, char *argv[]) const;
32
33 void output_summary(const struct test_summary &summary);
34 void output_list(const struct test_summary &summary, const std::vector<struct test_result> &results);
35 void output_results(const struct test_summary &summary, const std::vector<struct test_result> &results);
36
37 test_runner_client *m_client;
38};
39
40#endif /* REMOTE_TEST_RUNNER_H */