-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathvariant_cmds_test.c
More file actions
61 lines (56 loc) · 1.36 KB
/
variant_cmds_test.c
File metadata and controls
61 lines (56 loc) · 1.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include "common.h"
static cmdp_action_t __process(cmdp_process_param_st *params);
static struct
{
char *letter;
} args;
static cmdp_command_st g_command = {
.sub_commands =
(cmdp_command_st *[]){
&(cmdp_command_st){
"letter",
"Show letter",
.options =
(cmdp_option_st[]){
{'c', "char", "Show char", CMDP_TYPE_STRING_PTR, &args.letter},
{0},
},
.variant_cmds = (char *[]){"a", "b", "c", NULL},
.fn_process = __process,
},
NULL,
},
};
static cmdp_action_t __process(cmdp_process_param_st *params)
{
if (strcmp("letter", params->call_name) == 0)
{
fprintf(params->out_stream, "letter: %s\n", args.letter);
}
else
{
fprintf(params->out_stream, "variant: %s\n", params->call_name);
}
return CMDP_ACT_OK;
}
UTEST(variant_cmds, letter_z)
{
START_CMD();
RUN_CMD(&g_command, "letter", "-c", "z");
EXPECT_CMD(0, "letter: z\n", "");
END_CMD();
}
UTEST(variant_cmds, a)
{
START_CMD();
RUN_CMD(&g_command, "a");
EXPECT_CMD(0, "variant: a\n", "");
END_CMD();
}
UTEST(variant_cmds, z)
{
START_CMD();
RUN_CMD(&g_command, "z");
EXPECT_CMD(1, "", "Unknown command z.\n");
END_CMD();
}