commit 7b169fe717398678476f6a2057518a1b7a003a76
parent 8e08a8c8a3be4e932afc198403e7bd2008f0fd60
Author: Vincent Forest <vincent.forest@meso-star.com>
Date: Wed, 11 Feb 2026 12:01:25 +0100
More tests on the [de]serialization API
Check the behavior of functions when the file name is given as an input
argument. Also check when the file is not defined correctly.
Diffstat:
1 file changed, 17 insertions(+), 2 deletions(-)
diff --git a/src/test_shtr_lines.c b/src/test_shtr_lines.c
@@ -344,6 +344,7 @@ test_serialization(struct shtr* shtr)
struct shtr_line_list* list1 = NULL;
struct shtr_line_list* list2 = NULL;
+ const char* filename = "line_list.shtr";
FILE* fp = NULL;
CHK(fp = tmpfile());
@@ -354,7 +355,7 @@ test_serialization(struct shtr* shtr)
CHK(shtr_line_list_load(shtr, &load_args, &list1) == RES_OK);
CHK(fclose(fp) == 0);
- CHK(fp = tmpfile());
+ CHK(fp = fopen(filename, "w+"));
write_args.file = fp;
CHK(shtr_line_list_write(NULL, &write_args) == RES_BAD_ARG);
CHK(shtr_line_list_write(list1, NULL) == RES_BAD_ARG);
@@ -369,9 +370,23 @@ test_serialization(struct shtr* shtr)
CHK(fclose(fp) == 0);
check_line_list_equality(list1, list2);
+ CHK(shtr_line_list_ref_put(list2) == RES_OK);
- CHK(shtr_line_list_ref_put(list1) == RES_OK);
+ write_args.file = NULL;
+ CHK(shtr_line_list_write(list1, &write_args) == RES_BAD_ARG);
+ write_args.filename = filename;
+ CHK(shtr_line_list_write(list1, &write_args) == RES_OK);
+
+ read_args.file = NULL;
+ CHK(shtr_line_list_read(shtr, &read_args, &list2) == RES_BAD_ARG);
+ read_args.filename = "nop";
+ CHK(shtr_line_list_read(shtr, &read_args, &list2) == RES_IO_ERR);
+ read_args.filename = filename;
+ CHK(shtr_line_list_read(shtr, &read_args, &list2) == RES_OK);
+
+ check_line_list_equality(list1, list2);
CHK(shtr_line_list_ref_put(list2) == RES_OK);
+ CHK(shtr_line_list_ref_put(list1) == RES_OK);
}
static void