From 301f36c4def0f6782c936b62b5860dbc296d29f8 Mon Sep 17 00:00:00 2001 From: Kevin Day Date: Thu, 24 Sep 2026 18:41:56 -0500 Subject: [PATCH] Progress: Remove unnecessary combining tests. These tests are now handled using the same unit test. The object reads and content reads directly depend on each other. Rather than trying to ignore this, use both so that the states can be better tested and the unit test code is simpler to write. This turns out to be better at catching problems. --- .../unit/c/test-fss-basic_list_object_read.c | 148 ------------------ .../unit/c/test-fss-basic_list_object_read.h | 7 - level_1/fl_fss/tests/unit/c/test-fss.c | 6 +- 3 files changed, 3 insertions(+), 158 deletions(-) diff --git a/level_1/fl_fss/tests/unit/c/test-fss-basic_list_object_read.c b/level_1/fl_fss/tests/unit/c/test-fss-basic_list_object_read.c index a109b2daa..8a195db3c 100644 --- a/level_1/fl_fss/tests/unit/c/test-fss-basic_list_object_read.c +++ b/level_1/fl_fss/tests/unit/c/test-fss-basic_list_object_read.c @@ -232,154 +232,6 @@ void test__fl_fss_basic_list_object_read__works(void **void_state) { } } -void test__fl_fss_basic_list_object_read__works_using_combining(void **void_state) { - - { - FILE *file_strings = data__file_open__named("strings", "basic_list", "combining_read"); - FILE *file_objects = data__file_open__named("objects", "basic_list", "combining_read"); - - assert_non_null(file_strings); - assert_non_null(file_objects); - - size_t max = 0; - char *line_string = 0; - char *line_object = 0; - ssize_t result = 0; - - f_string_static_t buffer_string = f_string_static_t_initialize; - - f_state_t state = f_state_t_initialize; - f_range_t range = f_range_t_initialize; - f_range_t found = f_range_t_initialize; - f_number_unsigneds_t delimits = f_number_unsigneds_t_initialize; - f_string_dynamic_t result_string = f_string_dynamic_t_initialize; - f_string_dynamic_t delimit_string = f_string_dynamic_t_initialize; - - for (f_number_unsigned_t line = 1; ; ++line) { - - max = 255; - - result = getline(&line_string, &max, file_strings); - if (result == -1) break; - - buffer_string.string = line_string; - buffer_string.used = (f_number_unsigned_t) result; - buffer_string.size = buffer_string.used; - - state.status = F_none; - range.start = 0; - range.stop = buffer_string.used - 1; - found.start = 1; - found.stop = 0; - - fl_fss_basic_list_object_read(buffer_string, &range, &found, &delimits, &state); - - if (!(state.status == F_fss_found_object || state.status == F_fss_found_object_not)) { - printf("[ -------> ] --- [00] Failure with fl_fss_basic_list_object_read(), with line %lu '%s', status=%u, expected %u or %u.\n", line, line_string, state.status, F_fss_found_object, F_fss_found_object_not); - } - - assert_true(state.status == F_fss_found_object || state.status == F_fss_found_object_not); - - if (state.status == F_fss_found_object) { - max = 255; - - result = getline(&line_object, &max, file_objects); - - if (!result) { - printf("[ -------> ] --- [01] Failure with getline(), with line %lu '%s', line_object = '%s', result=%zu.\n", line, line_string, line_object, result); - } - - assert_return_code(result, 0); - - // The newline is copied by getline(), and so remove that newline before comparing. - line_object[result - 1] = 0; - - if (found.start <= found.stop) { - { - const f_status_t status = f_string_dynamic_append(buffer_string, &delimit_string); - - if (status != F_okay) { - printf("[ -------> ] --- [02] Failure with f_string_dynamic_append(), with line %lu '%s', line_object = '%s', status=%u, expected %u.\n", line, line_string, line_object, status, F_okay); - } - - assert_int_equal(status, F_okay); - } - - state.status = F_none; - - f_fss_apply_delimit(delimits, &delimit_string, &state); - - if (state.status != F_okay) { - printf("[ -------> ] --- [03] Failure with f_fss_apply_delimit(), with line %lu '%s', line_object = '%s', status=%u, expected %u.\n", line, line_string, line_object, state.status, F_okay); - } - - assert_int_equal(state.status, F_okay); - - { - const f_status_t status = f_string_dynamic_partial_append_nulless(delimit_string, found, &result_string); - - if (!(status == F_okay || status == F_data_not_eos)) { - printf("[ -------> ] --- [04] Failure with f_string_dynamic_partial_append_nulless(), with line %lu '%s', line_object = '%s', status=%u, expected %u or %u.\n", line, line_string, line_object, status, F_okay, F_data_not_eos); - } - - assert_true(status == F_okay || status == F_data_not_eos); - } - - { - const f_status_t status = f_string_dynamic_terminate_after(&result_string); - - if (status != F_okay) { - printf("[ -------> ] --- [05] Failure with f_string_dynamic_terminate_after(), with line %lu '%s', line_object = '%s', status=%u, expected %u.\n", line, line_string, line_object, status, F_okay); - } - - assert_int_equal(status, F_okay); - } - - if (strncmp(result_string.string, line_object, result_string.used)) { - printf("[ -------> ] --- [06] Failure with line %lu, line_object = '%s', strings do not match.\n", line, line_object); - } - - assert_string_equal(result_string.string, line_object); - } - else { - if (line_object[0]) { - printf("[ -------> ] --- [07] Failure with fl_fss_basic_list_object_read(), with line %lu '%s', line_object[0]=%c.\n", line, line_string, line_object[0]); - } - - assert_int_equal(line_object[0], 0); - } - } - - if (line_string) free(line_string); - if (line_object) free(line_object); - if (result_string.string) free(result_string.string); - if (delimit_string.string) free(delimit_string.string); - if (delimits.array) free(delimits.array); - - line_string = 0; - line_object = 0; - result_string.string = 0; - result_string.used = 0; - result_string.size = 0; - delimit_string.string = 0; - delimit_string.used = 0; - delimit_string.size = 0; - delimits.array = 0; - delimits.used = 0; - delimits.size = 0; - } // for - - if (file_strings) fclose(file_strings); - if (file_objects) fclose(file_objects); - - if (delimits.array) free(delimits.array); - if (line_string) free(line_string); - if (line_object) free(line_object); - if (result_string.string) free(result_string.string); - if (delimit_string.string) free(delimit_string.string); - } -} - #ifdef __cplusplus } // extern "C" #endif diff --git a/level_1/fl_fss/tests/unit/c/test-fss-basic_list_object_read.h b/level_1/fl_fss/tests/unit/c/test-fss-basic_list_object_read.h index 84b13d538..286895daa 100644 --- a/level_1/fl_fss/tests/unit/c/test-fss-basic_list_object_read.h +++ b/level_1/fl_fss/tests/unit/c/test-fss-basic_list_object_read.h @@ -31,11 +31,4 @@ extern void test__fl_fss_basic_list_object_read__returns_data_not(void **state); */ extern void test__fl_fss_basic_list_object_read__works(void **state); -/** - * Test that the function works when using combining characters. - * - * @see fl_fss_basic_list_object_read() - */ -extern void test__fl_fss_basic_list_object_read__works_using_combining(void **state); - #endif // _TEST__FL_fss_basic_list_object_read_list_h diff --git a/level_1/fl_fss/tests/unit/c/test-fss.c b/level_1/fl_fss/tests/unit/c/test-fss.c index 105b98330..c2d31f482 100644 --- a/level_1/fl_fss/tests/unit/c/test-fss.c +++ b/level_1/fl_fss/tests/unit/c/test-fss.c @@ -37,7 +37,7 @@ int main(void) { cmocka_unit_test(test__fl_fss_basic_list_content_read__works), cmocka_unit_test(test__fl_fss_basic_list_content_read__works_using_combining), cmocka_unit_test(test__fl_fss_basic_list_object_read__works), - cmocka_unit_test(test__fl_fss_basic_list_object_read__works_using_combining), + // fl_fss_basic_list_object_read() combining check is handled by test__fl_fss_basic_list_content_read__works_using_combining(). cmocka_unit_test(test__fl_fss_embedded_list_content_read__returns_data_not), cmocka_unit_test(test__fl_fss_embedded_list_content_write__returns_data_not), @@ -47,7 +47,7 @@ int main(void) { cmocka_unit_test(test__fl_fss_embedded_list_content_read__works), //cmocka_unit_test(test__fl_fss_embedded_list_content_read__works_using_combining), cmocka_unit_test(test__fl_fss_embedded_list_object_read__works), - //cmocka_unit_test(test__fl_fss_embedded_list_object_read__works_using_combining), + // fl_fss_embedded_list_object_read() combining check is handled by test__fl_fss_embedded_list_content_read__works_using_combining(). cmocka_unit_test(test__fl_fss_extended_content_read__returns_data_not), cmocka_unit_test(test__fl_fss_extended_content_write__returns_data_not), @@ -67,7 +67,7 @@ int main(void) { cmocka_unit_test(test__fl_fss_extended_list_content_read__works), //cmocka_unit_test(test__fl_fss_extended_list_content_read__works_using_combining), cmocka_unit_test(test__fl_fss_extended_list_object_read__works), - //cmocka_unit_test(test__fl_fss_extended_list_object_read__works_using_combining), + // fl_fss_extended_list_object_read() combining check is handled by test__fl_fss_extended_list_content_read__works_using_combining(). cmocka_unit_test(test__fl_fss_payload_header_map__returns_data_not), cmocka_unit_test(test__fl_fss_payload_header_map__abstruse_dynamic__works_join), -- 2.52.0