mirror of
https://github.com/ascii-boxes/boxes.git
synced 2025-03-06 10:11:13 +01:00
Add more unit tests for command line option parsing
This commit is contained in:
parent
7b828461ed
commit
11da751439
@ -227,6 +227,10 @@ static int alignment(opt_t *result, char *optarg)
|
|||||||
*/
|
*/
|
||||||
static int command_line_design(opt_t *result, char *optarg)
|
static int command_line_design(opt_t *result, char *optarg)
|
||||||
{
|
{
|
||||||
|
if (strlen(optarg) == 0) {
|
||||||
|
bx_fprintf(stderr, "%s: empty command line design definition\n", PROJECT);
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
result->cld = (char *) strdup(optarg);
|
result->cld = (char *) strdup(optarg);
|
||||||
if (result->cld == NULL) {
|
if (result->cld == NULL) {
|
||||||
perror(PROJECT);
|
perror(PROJECT);
|
||||||
|
@ -429,4 +429,40 @@ void test_inputfiles_actual_success(void **state)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void test_command_line_design_empty(void **state)
|
||||||
|
{
|
||||||
|
(void) state; /* unused */
|
||||||
|
|
||||||
|
opt_t *actual = act(2, "-c", "");
|
||||||
|
|
||||||
|
assert_null(actual); // invalid option, so we would need to exit with error
|
||||||
|
assert_int_equal(1, collect_err_size);
|
||||||
|
assert_string_equal("boxes: empty command line design definition\n", collect_err[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void test_help(void **state)
|
||||||
|
{
|
||||||
|
(void) state; /* unused */
|
||||||
|
|
||||||
|
opt_t *actual = act(1, "-h");
|
||||||
|
|
||||||
|
assert_non_null(actual);
|
||||||
|
assert_int_equal(1, actual->help);
|
||||||
|
assert_int_equal(0, actual->version_requested);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void test_version_requested(void **state)
|
||||||
|
{
|
||||||
|
(void) state; /* unused */
|
||||||
|
|
||||||
|
opt_t *actual = act(1, "-v");
|
||||||
|
|
||||||
|
assert_non_null(actual);
|
||||||
|
assert_int_equal(0, actual->help);
|
||||||
|
assert_int_equal(1, actual->version_requested);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*EOF*/ /* vim: set cindent sw=4: */
|
/*EOF*/ /* vim: set cindent sw=4: */
|
||||||
|
@ -63,6 +63,11 @@ void test_inputfiles_stdin(void **state);
|
|||||||
void test_inputfiles_input_nonexistent(void **state);
|
void test_inputfiles_input_nonexistent(void **state);
|
||||||
void test_inputfiles_actual_success(void **state);
|
void test_inputfiles_actual_success(void **state);
|
||||||
|
|
||||||
|
void test_command_line_design_empty(void **state);
|
||||||
|
|
||||||
|
void test_help(void **state);
|
||||||
|
void test_version_requested(void **state);
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -78,7 +78,10 @@ int main(void)
|
|||||||
cmocka_unit_test_setup(test_inputfiles_stdin_stdout, beforeTest),
|
cmocka_unit_test_setup(test_inputfiles_stdin_stdout, beforeTest),
|
||||||
cmocka_unit_test_setup(test_inputfiles_stdin, beforeTest),
|
cmocka_unit_test_setup(test_inputfiles_stdin, beforeTest),
|
||||||
cmocka_unit_test_setup(test_inputfiles_input_nonexistent, beforeTest),
|
cmocka_unit_test_setup(test_inputfiles_input_nonexistent, beforeTest),
|
||||||
cmocka_unit_test_setup(test_inputfiles_actual_success, beforeTest)
|
cmocka_unit_test_setup(test_inputfiles_actual_success, beforeTest),
|
||||||
|
cmocka_unit_test_setup(test_command_line_design_empty, beforeTest),
|
||||||
|
cmocka_unit_test_setup(test_help, beforeTest),
|
||||||
|
cmocka_unit_test_setup(test_version_requested, beforeTest)
|
||||||
};
|
};
|
||||||
|
|
||||||
const struct CMUnitTest regulex_tests[] = {
|
const struct CMUnitTest regulex_tests[] = {
|
||||||
|
Loading…
Reference in New Issue
Block a user