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
|
#define LS_TEST_IMPLEMENTATION
#include "ls_test.h"
#include "ls_args.h"
TEST_CASE(basic_args) {
int help = 0;
int test = 0;
int no = 0;
ls_args args;
char* argv[] = { "./hello", "-h", "--test", NULL };
int argc = sizeof(argv) / sizeof(*argv) - 1;
ls_args_init(&args);
ls_arg_bool(&args, &help, "h", "help", "Provides help", 0);
ls_arg_bool(&args, &test, "t", "test", "A test argument", 0);
ls_arg_bool(&args, &no, "n", "nope", "An argument that isn't present", 0);
ASSERT(ls_args_parse(&args, argc, argv));
ASSERT_EQ(help, 1, "%d");
ASSERT_EQ(test, 1, "%d");
ASSERT_EQ(no, 0, "%d");
ls_args_free(&args);
return 0;
}
TEST_CASE(string_args) {
const char* input = NULL;
const char* output = NULL;
int verbose = 0;
ls_args args;
char* argv[] = { "./program", "--input", "file.txt", "-o", "output.txt", "-v", NULL };
int argc = sizeof(argv) / sizeof(*argv) - 1;
ls_args_init(&args);
ls_arg_string(&args, &input, "i", "input", "Input file path", 0);
ls_arg_string(&args, &output, "o", "output", "Output file path", 0);
ls_arg_bool(&args, &verbose, "v", "verbose", "Verbose output", 0);
ASSERT(ls_args_parse(&args, argc, argv));
ASSERT(strcmp(input, "file.txt") == 0);
ASSERT(strcmp(output, "output.txt") == 0);
ASSERT_EQ(verbose, 1, "%d");
ls_args_free(&args);
return 0;
}
TEST_MAIN
|