]> Kevux Git Server - fll/commitdiff
Progress: Remove unnecessary combining tests.
authorKevin Day <Kevin@kevux.org>
Thu, 24 Sep 2026 23:41:56 +0000 (18:41 -0500)
committerKevin Day <Kevin@kevux.org>
Thu, 24 Sep 2026 23:41:56 +0000 (18:41 -0500)
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.

level_1/fl_fss/tests/unit/c/test-fss-basic_list_object_read.c
level_1/fl_fss/tests/unit/c/test-fss-basic_list_object_read.h
level_1/fl_fss/tests/unit/c/test-fss.c

index a109b2daa0db2684fd4483c06225dc7ad675016d..8a195db3cd70aec20c185be476034d066cf0b965 100644 (file)
@@ -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
index 84b13d538fe04a6b1bf82e78e5e3851cb13be5d5..286895daa3a07cd1af7814c02436640e231e1625 100644 (file)
@@ -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
index 105b98330360132c7fa1f8274de310288728ed40..c2d31f4828bb93077739778c24f9260c681c787e 100644 (file)
@@ -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),