1#include <freerdp/client.h>
2#include <freerdp/client/cmdline.h>
3#include <freerdp/settings.h>
4#include <winpr/cmdline.h>
5#include <winpr/strlst.h>
7int TestClientCmdLineStatus(
int argc,
char* argv[])
15 { {
"testfreerdp",
"/list:kbd",
nullptr }, 0, FALSE },
16 { {
"testfreerdp",
"--list",
"kbd",
nullptr }, 0, FALSE },
17 { {
"testfreerdp",
"-list",
"kbd",
nullptr }, 0, FALSE },
18 { {
"testfreerdp",
"/list:monitor",
nullptr }, 0, TRUE },
19 { {
"testfreerdp",
"--list",
"monitor",
nullptr }, 0, TRUE },
20 { {
"testfreerdp",
"-list",
"monitor",
nullptr }, 0, TRUE },
21 { {
"testfreerdp",
"/log-level:ERROR",
"/list:monitor",
nullptr }, 0, TRUE },
22 { {
"testfreerdp",
"--log-level",
"ERROR",
"--list",
"monitor",
nullptr }, 0, TRUE },
23 { {
"testfreerdp",
"/list:invalid",
nullptr }, COMMAND_LINE_ERROR, FALSE },
24 { {
"testfreerdp",
"--list",
"invalid",
nullptr }, COMMAND_LINE_ERROR, FALSE },
31 for (
size_t i = 0; i < ARRAYSIZE(tests); i++)
34 char** args = string_list_copy(tests[i].args);
35 if (!settings || !args)
38 string_list_free(args);
42 const int count = string_list_length((
const char*
const*)args);
43 int status = freerdp_client_settings_parse_command_line(settings, count, args, FALSE);
44 if (status != COMMAND_LINE_STATUS_PRINT)
46 fprintf(stderr,
"Test %zu: expected print status, got %d\n", i, status);
52 freerdp_client_settings_command_line_status_print(settings, status, count, args);
53 if (status != tests[i].expected_status)
55 fprintf(stderr,
"Test %zu: expected status %d, got %d\n", i,
56 tests[i].expected_status, status);
61 fprintf(stderr,
"Test %zu: unexpected ListMonitors setting\n", i);
67 string_list_free(args);
FREERDP_API rdpSettings * freerdp_settings_new(DWORD flags)
creates a new setting struct
FREERDP_API void freerdp_settings_free(rdpSettings *settings)
Free a settings struct with all data in it.
WINPR_ATTR_NODISCARD FREERDP_API BOOL freerdp_settings_get_bool(const rdpSettings *settings, FreeRDP_Settings_Keys_Bool id)
Returns a boolean settings value.