libkernaux/tests/test_cmdline.c

97 lines
2.2 KiB
C
Raw Normal View History

2020-12-01 19:55:16 +00:00
#include <kernaux/cmdline.h>
2020-12-01 20:22:38 +00:00
#include <assert.h>
2020-12-01 20:29:45 +00:00
#include <string.h>
2020-12-01 20:22:38 +00:00
static const unsigned int ARGV_COUNT_MAX = 1024;
static const unsigned int ARG_SIZE_MAX = 4096;
2020-12-01 19:55:16 +00:00
int main()
{
2020-12-01 20:22:38 +00:00
char error_msg[KERNAUX_CMDLINE_ERROR_MSG_SIZE_MAX];
2020-12-01 20:29:45 +00:00
unsigned int argc = 1234;
2020-12-01 20:22:38 +00:00
char *argv[ARGV_COUNT_MAX];
char buffer[ARGV_COUNT_MAX * ARG_SIZE_MAX];
2020-12-01 20:32:35 +00:00
//==========================================================================
2020-12-01 20:22:38 +00:00
assert(kernaux_cmdline_parse(
"",
error_msg,
&argc,
argv,
buffer,
ARGV_COUNT_MAX,
ARG_SIZE_MAX
));
2020-12-01 20:29:45 +00:00
assert(strcmp(error_msg, "") == 0);
assert(argc == 0);
2020-12-01 20:32:35 +00:00
for (unsigned int index = argc; index < ARGV_COUNT_MAX; ++index) {
assert(argv[index] == KERNAUX_NULL);
}
//==========================================================================
assert(kernaux_cmdline_parse(
" ",
error_msg,
&argc,
argv,
buffer,
ARGV_COUNT_MAX,
ARG_SIZE_MAX
));
assert(strcmp(error_msg, "") == 0);
assert(argc == 0);
for (unsigned int index = argc; index < ARGV_COUNT_MAX; ++index) {
assert(argv[index] == KERNAUX_NULL);
}
//==========================================================================
assert(kernaux_cmdline_parse(
"foo",
error_msg,
&argc,
argv,
buffer,
ARGV_COUNT_MAX,
ARG_SIZE_MAX
));
assert(strcmp(error_msg, "") == 0);
assert(argc == 1);
assert(strcmp(argv[0], "foo") == 0);
for (unsigned int index = argc; index < ARGV_COUNT_MAX; ++index) {
assert(argv[index] == KERNAUX_NULL);
}
//==========================================================================
assert(kernaux_cmdline_parse(
"foo bar",
error_msg,
&argc,
argv,
buffer,
ARGV_COUNT_MAX,
ARG_SIZE_MAX
));
assert(strcmp(error_msg, "") == 0);
assert(argc == 2);
assert(strcmp(argv[0], "foo") == 0);
assert(strcmp(argv[1], "bar") == 0);
for (unsigned int index = argc; index < ARGV_COUNT_MAX; ++index) {
2020-12-01 20:29:45 +00:00
assert(argv[index] == KERNAUX_NULL);
}
2020-12-01 19:55:16 +00:00
return 0;
}