162 lines
2.8 KiB
C
162 lines
2.8 KiB
C
#include <criterion/criterion.h>
|
|
|
|
#include "cli.h"
|
|
|
|
Test(cli, parse_ext_short)
|
|
{
|
|
t_args args;
|
|
char *argv[] = {"c-md", "-e", "c"};
|
|
int8_t ret;
|
|
|
|
ret = cli_parse(&args, 3, argv);
|
|
|
|
cr_assert_eq(ret, 0);
|
|
cr_assert_not_null(args.ext);
|
|
cr_assert_str_eq(args.ext, "c");
|
|
cr_assert_eq(args.show_help, 0);
|
|
}
|
|
|
|
Test(cli, parse_ext_long)
|
|
{
|
|
t_args args;
|
|
char *argv[] = {"c-md", "--ext", "python"};
|
|
int8_t ret;
|
|
|
|
ret = cli_parse(&args, 3, argv);
|
|
|
|
cr_assert_eq(ret, 0);
|
|
cr_assert_not_null(args.ext);
|
|
cr_assert_str_eq(args.ext, "python");
|
|
}
|
|
|
|
/*
|
|
** TESTS: cli/cli.c - Input option
|
|
*/
|
|
|
|
Test(cli, parse_input_short)
|
|
{
|
|
t_args args;
|
|
char *argv[] = {"c-md", "-i", "input.md"};
|
|
int8_t ret;
|
|
|
|
ret = cli_parse(&args, 3, argv);
|
|
|
|
cr_assert_eq(ret, 0);
|
|
cr_assert_not_null(args.input);
|
|
cr_assert_str_eq(args.input, "input.md");
|
|
}
|
|
|
|
Test(cli, parse_input_long)
|
|
{
|
|
t_args args;
|
|
char *argv[] = {"c-md", "--input", "input.md"};
|
|
int8_t ret;
|
|
|
|
ret = cli_parse(&args, 3, argv);
|
|
|
|
cr_assert_eq(ret, 0);
|
|
cr_assert_not_null(args.input);
|
|
cr_assert_str_eq(args.input, "input.md");
|
|
}
|
|
|
|
/*
|
|
** TESTS: cli/cli.c - Output option
|
|
*/
|
|
|
|
Test(cli, parse_output)
|
|
{
|
|
t_args args;
|
|
char *argv[] = {"c-md", "-o", "output.c"};
|
|
int8_t ret;
|
|
|
|
ret = cli_parse(&args, 3, argv);
|
|
|
|
cr_assert_eq(ret, 0);
|
|
cr_assert_not_null(args.output);
|
|
cr_assert_str_eq(args.output, "output.c");
|
|
}
|
|
|
|
/*
|
|
** TESTS: cli/cli.c - Map option
|
|
*/
|
|
|
|
Test(cli, parse_map_short)
|
|
{
|
|
t_args args;
|
|
char *argv[] = {"c-md", "-m", "output.map"};
|
|
int8_t ret;
|
|
|
|
ret = cli_parse(&args, 3, argv);
|
|
|
|
cr_assert_eq(ret, 0);
|
|
cr_assert_not_null(args.map_path);
|
|
cr_assert_str_eq(args.map_path, "output.map");
|
|
}
|
|
|
|
Test(cli, parse_map_long)
|
|
{
|
|
t_args args;
|
|
char *argv[] = {"c-md", "--map", "output.map"};
|
|
int8_t ret;
|
|
|
|
ret = cli_parse(&args, 3, argv);
|
|
|
|
cr_assert_eq(ret, 0);
|
|
cr_assert_not_null(args.map_path);
|
|
cr_assert_str_eq(args.map_path, "output.map");
|
|
}
|
|
|
|
/*
|
|
** TESTS: cli/cli.c - Multiple arguments
|
|
*/
|
|
|
|
Test(cli, parse_multiple_args)
|
|
{
|
|
t_args args;
|
|
char *argv[] = {
|
|
"c-md", "-e", "c", "-i", "input.c.md",
|
|
"-o", "output.c", "-m", "output.map"
|
|
};
|
|
int8_t ret;
|
|
|
|
ret = cli_parse(&args, 9, argv);
|
|
|
|
cr_assert_eq(ret, 0);
|
|
cr_assert_str_eq(args.ext, "c");
|
|
cr_assert_str_eq(args.input, "input.c.md");
|
|
cr_assert_str_eq(args.output, "output.c");
|
|
cr_assert_str_eq(args.map_path, "output.map");
|
|
cr_assert_eq(args.show_help, 0);
|
|
}
|
|
|
|
/*
|
|
** TESTS: cli/cli.c - Edge cases
|
|
*/
|
|
|
|
Test(cli, parse_no_args)
|
|
{
|
|
t_args args;
|
|
char *argv[] = {"c-md"};
|
|
int8_t ret;
|
|
|
|
ret = cli_parse(&args, 1, argv);
|
|
|
|
cr_assert_eq(ret, 0);
|
|
cr_assert_null(args.ext);
|
|
cr_assert_null(args.input);
|
|
cr_assert_null(args.output);
|
|
cr_assert_null(args.map_path);
|
|
cr_assert_eq(args.show_help, 0);
|
|
}
|
|
|
|
//TODO: mute stderr
|
|
Test(cli, parse_invalid_arg)
|
|
{
|
|
t_args args;
|
|
char *argv[] = {"c-md", "-x"};
|
|
int8_t ret;
|
|
|
|
ret = cli_parse(&args, 2, argv);
|
|
|
|
cr_assert_neq(ret, 0);
|
|
}
|