#include #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); }