extern "C" {
#endif
-void test__f_console_parameter_process__no_arguments(void **state) {
+void test__f_console_parameter_process__no_arguments_no_program(void **state) {
const f_string_t argv[] = {
- "program",
0,
};
- const f_console_arguments_t arguments = macro_f_console_arguments_t_initialize(1, argv);
+ // Test both a valid and an invalid argc.
+ for (uint8_t argc = 0; argc < 2; ++argc) {
- f_console_parameter_t parameter[] = {
- macro_f_console_parameter_t_initialize("f", 0, 0, 1, f_console_type_normal_e),
- macro_f_console_parameter_t_initialize("s", "second", 0, 1, f_console_type_normal_e),
- macro_f_console_parameter_t_initialize("t", "third", 0, 1, f_console_type_normal_e),
- macro_f_console_parameter_t_initialize("F", 0, 0, 0, f_console_type_inverse_e),
- macro_f_console_parameter_t_initialize(0, "fifth", 0, 1, f_console_type_inverse_e),
- macro_f_console_parameter_t_initialize(0, "sixth", 0, 1, f_console_type_normal_e),
- macro_f_console_parameter_t_initialize(0, "seventh", 0, 2, f_console_type_normal_e),
- macro_f_console_parameter_t_initialize("N", "not_found", 0, 0, f_console_type_normal_e),
- macro_f_console_parameter_t_initialize(0, 0, "other", 0, f_console_type_other_e),
- };
+ const f_console_arguments_t arguments = macro_f_console_arguments_t_initialize(argc, argv, 0);
- f_console_parameters_t parameters = macro_f_console_parameters_t_initialize(parameter, 9);
+ f_console_parameter_t parameter[] = {
+ macro_f_console_parameter_t_initialize("f", 0, 0, 1, f_console_type_normal_e),
+ macro_f_console_parameter_t_initialize("s", "second", 0, 1, f_console_type_normal_e),
+ macro_f_console_parameter_t_initialize("t", "third", 0, 1, f_console_type_normal_e),
+ macro_f_console_parameter_t_initialize("F", 0, 0, 0, f_console_type_inverse_e),
+ macro_f_console_parameter_t_initialize(0, "fifth", 0, 1, f_console_type_inverse_e),
+ macro_f_console_parameter_t_initialize(0, "sixth", 0, 1, f_console_type_normal_e),
+ macro_f_console_parameter_t_initialize(0, "seventh", 0, 2, f_console_type_normal_e),
+ macro_f_console_parameter_t_initialize("N", "not_found", 0, 0, f_console_type_normal_e),
+ macro_f_console_parameter_t_initialize(0, 0, "other", 0, f_console_type_other_e),
+ };
- {
- const f_status_t status = f_console_parameter_process(arguments, ¶meters);
+ f_console_parameters_t parameters = macro_f_console_parameters_t_initialize(parameter, 9);
- assert_int_equal(status, F_none);
+ {
+ const f_status_t status = f_console_parameter_process(arguments, ¶meters);
+
+ assert_int_equal(status, F_data_not);
+
+ assert_int_equal(parameter[0].result, f_console_result_none_e);
+ assert_int_equal(parameter[0].locations.used, 0);
+ assert_int_equal(parameter[0].values.used, 0);
+ assert_int_equal(parameter[0].location, 0);
+ assert_int_equal(parameter[0].location_sub, 0);
+
+ assert_int_equal(parameter[1].result, f_console_result_none_e);
+ assert_int_equal(parameter[1].locations.used, 0);
+ assert_int_equal(parameter[1].values.used, 0);
+ assert_int_equal(parameter[1].location, 0);
+ assert_int_equal(parameter[1].location_sub, 0);
+
+ assert_int_equal(parameter[2].result, f_console_result_none_e);
+ assert_int_equal(parameter[2].locations.used, 0);
+ assert_int_equal(parameter[2].values.used, 0);
+ assert_int_equal(parameter[2].location, 0);
+ assert_int_equal(parameter[2].location_sub, 0);
+
+ assert_int_equal(parameter[3].result, f_console_result_none_e);
+ assert_int_equal(parameter[3].locations.used, 0);
+ assert_int_equal(parameter[3].values.used, 0);
+ assert_int_equal(parameter[3].location, 0);
+ assert_int_equal(parameter[3].location_sub, 0);
+
+ assert_int_equal(parameter[4].result, f_console_result_none_e);
+ assert_int_equal(parameter[4].locations.used, 0);
+ assert_int_equal(parameter[4].values.used, 0);
+ assert_int_equal(parameter[4].location, 0);
+ assert_int_equal(parameter[4].location_sub, 0);
+
+ assert_int_equal(parameter[5].result, f_console_result_none_e);
+ assert_int_equal(parameter[5].locations.used, 0);
+ assert_int_equal(parameter[5].values.used, 0);
+ assert_int_equal(parameter[5].location, 0);
+ assert_int_equal(parameter[5].location_sub, 0);
+
+ assert_int_equal(parameter[6].result, f_console_result_none_e);
+ assert_int_equal(parameter[6].locations.used, 0);
+ assert_int_equal(parameter[6].values.used, 0);
+ assert_int_equal(parameter[6].location, 0);
+ assert_int_equal(parameter[6].location_sub, 0);
+
+ assert_int_equal(parameter[7].result, f_console_result_none_e);
+ assert_int_equal(parameter[7].locations.used, 0);
+ assert_int_equal(parameter[7].values.used, 0);
+ assert_int_equal(parameter[7].location, 0);
+ assert_int_equal(parameter[7].location_sub, 0);
+
+ assert_int_equal(parameter[8].result, f_console_result_none_e);
+ assert_int_equal(parameter[8].locations.used, 0);
+ assert_int_equal(parameter[8].values.used, 0);
+ assert_int_equal(parameter[8].location, 0);
+ assert_int_equal(parameter[8].location_sub, 0);
+
+ assert_int_equal(parameters.remaining.used, 0);
+ }
- assert_int_equal(parameter[0].result, f_console_result_none_e);
- assert_int_equal(parameter[0].locations.used, 0);
- assert_int_equal(parameter[0].values.used, 0);
- assert_int_equal(parameter[0].location, 0);
- assert_int_equal(parameter[0].location_sub, 0);
+ f_console_parameters_delete(¶meters);
+ } // for
+}
- assert_int_equal(parameter[1].result, f_console_result_none_e);
- assert_int_equal(parameter[1].locations.used, 0);
- assert_int_equal(parameter[1].values.used, 0);
- assert_int_equal(parameter[1].location, 0);
- assert_int_equal(parameter[1].location_sub, 0);
+void test__f_console_parameter_process__no_arguments(void **state) {
- assert_int_equal(parameter[2].result, f_console_result_none_e);
- assert_int_equal(parameter[2].locations.used, 0);
- assert_int_equal(parameter[2].values.used, 0);
- assert_int_equal(parameter[2].location, 0);
- assert_int_equal(parameter[2].location_sub, 0);
+ const f_string_t argv[] = {
+ "program",
+ 0,
+ };
- assert_int_equal(parameter[3].result, f_console_result_none_e);
- assert_int_equal(parameter[3].locations.used, 0);
- assert_int_equal(parameter[3].values.used, 0);
- assert_int_equal(parameter[3].location, 0);
- assert_int_equal(parameter[3].location_sub, 0);
+ // Test both valid and invalid argc.
+ for (uint8_t argc = 0; argc < 3; ++argc) {
- assert_int_equal(parameter[4].result, f_console_result_none_e);
- assert_int_equal(parameter[4].locations.used, 0);
- assert_int_equal(parameter[4].values.used, 0);
- assert_int_equal(parameter[4].location, 0);
- assert_int_equal(parameter[4].location_sub, 0);
+ const f_console_arguments_t arguments = macro_f_console_arguments_t_initialize(argc, argv, 0);
- assert_int_equal(parameter[5].result, f_console_result_none_e);
- assert_int_equal(parameter[5].locations.used, 0);
- assert_int_equal(parameter[5].values.used, 0);
- assert_int_equal(parameter[5].location, 0);
- assert_int_equal(parameter[5].location_sub, 0);
+ f_console_parameter_t parameter[] = {
+ macro_f_console_parameter_t_initialize("f", 0, 0, 1, f_console_type_normal_e),
+ macro_f_console_parameter_t_initialize("s", "second", 0, 1, f_console_type_normal_e),
+ macro_f_console_parameter_t_initialize("t", "third", 0, 1, f_console_type_normal_e),
+ macro_f_console_parameter_t_initialize("F", 0, 0, 0, f_console_type_inverse_e),
+ macro_f_console_parameter_t_initialize(0, "fifth", 0, 1, f_console_type_inverse_e),
+ macro_f_console_parameter_t_initialize(0, "sixth", 0, 1, f_console_type_normal_e),
+ macro_f_console_parameter_t_initialize(0, "seventh", 0, 2, f_console_type_normal_e),
+ macro_f_console_parameter_t_initialize("N", "not_found", 0, 0, f_console_type_normal_e),
+ macro_f_console_parameter_t_initialize(0, 0, "other", 0, f_console_type_other_e),
+ };
- assert_int_equal(parameter[6].result, f_console_result_none_e);
- assert_int_equal(parameter[6].locations.used, 0);
- assert_int_equal(parameter[6].values.used, 0);
- assert_int_equal(parameter[6].location, 0);
- assert_int_equal(parameter[6].location_sub, 0);
+ f_console_parameters_t parameters = macro_f_console_parameters_t_initialize(parameter, 9);
- assert_int_equal(parameter[7].result, f_console_result_none_e);
- assert_int_equal(parameter[7].locations.used, 0);
- assert_int_equal(parameter[7].values.used, 0);
- assert_int_equal(parameter[7].location, 0);
- assert_int_equal(parameter[7].location_sub, 0);
+ {
+ const f_status_t status = f_console_parameter_process(arguments, ¶meters);
+
+ assert_int_equal(status, argc ? F_none : F_data_not);
+
+ assert_int_equal(parameter[0].result, f_console_result_none_e);
+ assert_int_equal(parameter[0].locations.used, 0);
+ assert_int_equal(parameter[0].values.used, 0);
+ assert_int_equal(parameter[0].location, 0);
+ assert_int_equal(parameter[0].location_sub, 0);
+
+ assert_int_equal(parameter[1].result, f_console_result_none_e);
+ assert_int_equal(parameter[1].locations.used, 0);
+ assert_int_equal(parameter[1].values.used, 0);
+ assert_int_equal(parameter[1].location, 0);
+ assert_int_equal(parameter[1].location_sub, 0);
+
+ assert_int_equal(parameter[2].result, f_console_result_none_e);
+ assert_int_equal(parameter[2].locations.used, 0);
+ assert_int_equal(parameter[2].values.used, 0);
+ assert_int_equal(parameter[2].location, 0);
+ assert_int_equal(parameter[2].location_sub, 0);
+
+ assert_int_equal(parameter[3].result, f_console_result_none_e);
+ assert_int_equal(parameter[3].locations.used, 0);
+ assert_int_equal(parameter[3].values.used, 0);
+ assert_int_equal(parameter[3].location, 0);
+ assert_int_equal(parameter[3].location_sub, 0);
+
+ assert_int_equal(parameter[4].result, f_console_result_none_e);
+ assert_int_equal(parameter[4].locations.used, 0);
+ assert_int_equal(parameter[4].values.used, 0);
+ assert_int_equal(parameter[4].location, 0);
+ assert_int_equal(parameter[4].location_sub, 0);
+
+ assert_int_equal(parameter[5].result, f_console_result_none_e);
+ assert_int_equal(parameter[5].locations.used, 0);
+ assert_int_equal(parameter[5].values.used, 0);
+ assert_int_equal(parameter[5].location, 0);
+ assert_int_equal(parameter[5].location_sub, 0);
+
+ assert_int_equal(parameter[6].result, f_console_result_none_e);
+ assert_int_equal(parameter[6].locations.used, 0);
+ assert_int_equal(parameter[6].values.used, 0);
+ assert_int_equal(parameter[6].location, 0);
+ assert_int_equal(parameter[6].location_sub, 0);
+
+ assert_int_equal(parameter[7].result, f_console_result_none_e);
+ assert_int_equal(parameter[7].locations.used, 0);
+ assert_int_equal(parameter[7].values.used, 0);
+ assert_int_equal(parameter[7].location, 0);
+ assert_int_equal(parameter[7].location_sub, 0);
+
+ assert_int_equal(parameter[8].result, f_console_result_none_e);
+ assert_int_equal(parameter[8].locations.used, 0);
+ assert_int_equal(parameter[8].values.used, 0);
+ assert_int_equal(parameter[8].location, 0);
+ assert_int_equal(parameter[8].location_sub, 0);
+
+ assert_int_equal(parameters.remaining.used, 0);
+ }
- assert_int_equal(parameter[8].result, f_console_result_none_e);
- assert_int_equal(parameter[8].locations.used, 0);
- assert_int_equal(parameter[8].values.used, 0);
- assert_int_equal(parameter[8].location, 0);
- assert_int_equal(parameter[8].location_sub, 0);
+ f_console_parameters_delete(¶meters);
+ } // for
+}
- assert_int_equal(parameters.remaining.used, 0);
- }
+void test__f_console_parameter_process__null_arguments(void **state) {
- f_console_parameters_delete(¶meters);
+ const f_string_t *argv = 0;
+
+ // Test both a valid and an invalid argc.
+ for (uint8_t argc = 0; argc < 2; ++argc) {
+ const f_console_arguments_t arguments = macro_f_console_arguments_t_initialize(argc, argv, 0);
+
+ f_console_parameter_t parameter[] = {
+ macro_f_console_parameter_t_initialize("f", 0, 0, 1, f_console_type_normal_e),
+ macro_f_console_parameter_t_initialize("s", "second", 0, 1, f_console_type_normal_e),
+ macro_f_console_parameter_t_initialize("t", "third", 0, 1, f_console_type_normal_e),
+ macro_f_console_parameter_t_initialize("F", 0, 0, 0, f_console_type_inverse_e),
+ macro_f_console_parameter_t_initialize(0, "fifth", 0, 1, f_console_type_inverse_e),
+ macro_f_console_parameter_t_initialize(0, "sixth", 0, 1, f_console_type_normal_e),
+ macro_f_console_parameter_t_initialize(0, "seventh", 0, 2, f_console_type_normal_e),
+ macro_f_console_parameter_t_initialize("N", "not_found", 0, 0, f_console_type_normal_e),
+ macro_f_console_parameter_t_initialize(0, 0, "other", 0, f_console_type_other_e),
+ };
+
+ f_console_parameters_t parameters = macro_f_console_parameters_t_initialize(parameter, 9);
+
+ {
+ const f_status_t status = f_console_parameter_process(arguments, ¶meters);
+
+ assert_int_equal(status, F_data_not);
+
+ assert_int_equal(parameter[0].result, f_console_result_none_e);
+ assert_int_equal(parameter[0].locations.used, 0);
+ assert_int_equal(parameter[0].values.used, 0);
+ assert_int_equal(parameter[0].location, 0);
+ assert_int_equal(parameter[0].location_sub, 0);
+
+ assert_int_equal(parameter[1].result, f_console_result_none_e);
+ assert_int_equal(parameter[1].locations.used, 0);
+ assert_int_equal(parameter[1].values.used, 0);
+ assert_int_equal(parameter[1].location, 0);
+ assert_int_equal(parameter[1].location_sub, 0);
+
+ assert_int_equal(parameter[2].result, f_console_result_none_e);
+ assert_int_equal(parameter[2].locations.used, 0);
+ assert_int_equal(parameter[2].values.used, 0);
+ assert_int_equal(parameter[2].location, 0);
+ assert_int_equal(parameter[2].location_sub, 0);
+
+ assert_int_equal(parameter[3].result, f_console_result_none_e);
+ assert_int_equal(parameter[3].locations.used, 0);
+ assert_int_equal(parameter[3].values.used, 0);
+ assert_int_equal(parameter[3].location, 0);
+ assert_int_equal(parameter[3].location_sub, 0);
+
+ assert_int_equal(parameter[4].result, f_console_result_none_e);
+ assert_int_equal(parameter[4].locations.used, 0);
+ assert_int_equal(parameter[4].values.used, 0);
+ assert_int_equal(parameter[4].location, 0);
+ assert_int_equal(parameter[4].location_sub, 0);
+
+ assert_int_equal(parameter[5].result, f_console_result_none_e);
+ assert_int_equal(parameter[5].locations.used, 0);
+ assert_int_equal(parameter[5].values.used, 0);
+ assert_int_equal(parameter[5].location, 0);
+ assert_int_equal(parameter[5].location_sub, 0);
+
+ assert_int_equal(parameter[6].result, f_console_result_none_e);
+ assert_int_equal(parameter[6].locations.used, 0);
+ assert_int_equal(parameter[6].values.used, 0);
+ assert_int_equal(parameter[6].location, 0);
+ assert_int_equal(parameter[6].location_sub, 0);
+
+ assert_int_equal(parameter[7].result, f_console_result_none_e);
+ assert_int_equal(parameter[7].locations.used, 0);
+ assert_int_equal(parameter[7].values.used, 0);
+ assert_int_equal(parameter[7].location, 0);
+ assert_int_equal(parameter[7].location_sub, 0);
+
+ assert_int_equal(parameter[8].result, f_console_result_none_e);
+ assert_int_equal(parameter[8].locations.used, 0);
+ assert_int_equal(parameter[8].values.used, 0);
+ assert_int_equal(parameter[8].location, 0);
+ assert_int_equal(parameter[8].location_sub, 0);
+
+ assert_int_equal(parameters.remaining.used, 0);
+ }
+
+ f_console_parameters_delete(¶meters);
+ } // for
}
void test__f_console_parameter_process__only_remaining(void **state) {
0,
};
- const f_console_arguments_t arguments = macro_f_console_arguments_t_initialize(7, argv);
+ const f_console_arguments_t arguments = macro_f_console_arguments_t_initialize(7, argv, 0);
f_console_parameter_t parameter[] = {
macro_f_console_parameter_t_initialize("f", 0, 0, 1, f_console_type_normal_e),
0,
};
- const f_console_arguments_t arguments = macro_f_console_arguments_t_initialize(18, argv);
+ const f_console_arguments_t arguments = macro_f_console_arguments_t_initialize(18, argv, 0);
f_console_parameter_t parameter[] = {
macro_f_console_parameter_t_initialize("f", 0, 0, 1, f_console_type_normal_e),