changeset 40226:5b87a9bf7240

uninorm tests: Free allocated memory. * tests/uninorm/test-u32-normalize-big.h (struct normalization_test_file): Remove 'const' from allocated member. (free_normalization_test_file): New declaration. * tests/uninorm/test-u32-normalize-big.c (test_other): Free allocated memory. (free_normalization_test_file): New function. * tests/uninorm/test-u32-nfc-big.c (main): Free allocated 'struct normalization_test_file' contents. * tests/uninorm/test-u32-nfd-big.c (main): Likewise. * tests/uninorm/test-u32-nfkc-big.c (main): Likewise. * tests/uninorm/test-u32-nfkd-big.c (main): Likewise.
author Bruno Haible <bruno@clisp.org>
date Sun, 10 Mar 2019 15:14:01 +0100
parents 1e0e3e621a8d
children 5207eb0dcd2a
files ChangeLog tests/uninorm/test-u32-nfc-big.c tests/uninorm/test-u32-nfd-big.c tests/uninorm/test-u32-nfkc-big.c tests/uninorm/test-u32-nfkd-big.c tests/uninorm/test-u32-normalize-big.c tests/uninorm/test-u32-normalize-big.h
diffstat 7 files changed, 54 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Sun Mar 10 14:18:37 2019 +0100
+++ b/ChangeLog	Sun Mar 10 15:14:01 2019 +0100
@@ -1,3 +1,18 @@
+2019-03-10  Bruno Haible  <bruno@clisp.org>
+
+	uninorm tests: Free allocated memory.
+	* tests/uninorm/test-u32-normalize-big.h
+	(struct normalization_test_file): Remove 'const' from allocated member.
+	(free_normalization_test_file): New declaration.
+	* tests/uninorm/test-u32-normalize-big.c (test_other): Free allocated
+	memory.
+	(free_normalization_test_file): New function.
+	* tests/uninorm/test-u32-nfc-big.c (main): Free allocated
+	'struct normalization_test_file' contents.
+	* tests/uninorm/test-u32-nfd-big.c (main): Likewise.
+	* tests/uninorm/test-u32-nfkc-big.c (main): Likewise.
+	* tests/uninorm/test-u32-nfkd-big.c (main): Likewise.
+
 2019-03-10  Bruno Haible  <bruno@clisp.org>
 
 	di-set: Fix memory leak.
--- a/tests/uninorm/test-u32-nfc-big.c	Sun Mar 10 14:18:37 2019 +0100
+++ b/tests/uninorm/test-u32-nfc-big.c	Sun Mar 10 15:14:01 2019 +0100
@@ -106,6 +106,8 @@
   test_specific (&file, check);
   test_other (&file, UNINORM_NFC);
 
+  free_normalization_test_file (&file);
+
   return 0;
 }
 
--- a/tests/uninorm/test-u32-nfd-big.c	Sun Mar 10 14:18:37 2019 +0100
+++ b/tests/uninorm/test-u32-nfd-big.c	Sun Mar 10 15:14:01 2019 +0100
@@ -106,6 +106,8 @@
   test_specific (&file, check);
   test_other (&file, UNINORM_NFD);
 
+  free_normalization_test_file (&file);
+
   return 0;
 }
 
--- a/tests/uninorm/test-u32-nfkc-big.c	Sun Mar 10 14:18:37 2019 +0100
+++ b/tests/uninorm/test-u32-nfkc-big.c	Sun Mar 10 15:14:01 2019 +0100
@@ -103,6 +103,8 @@
   test_specific (&file, check);
   test_other (&file, UNINORM_NFKC);
 
+  free_normalization_test_file (&file);
+
   return 0;
 }
 
--- a/tests/uninorm/test-u32-nfkd-big.c	Sun Mar 10 14:18:37 2019 +0100
+++ b/tests/uninorm/test-u32-nfkd-big.c	Sun Mar 10 15:14:01 2019 +0100
@@ -103,6 +103,8 @@
   test_specific (&file, check);
   test_other (&file, UNINORM_NFKD);
 
+  free_normalization_test_file (&file);
+
   return 0;
 }
 
--- a/tests/uninorm/test-u32-normalize-big.c	Sun Mar 10 14:18:37 2019 +0100
+++ b/tests/uninorm/test-u32-normalize-big.c	Sun Mar 10 15:14:01 2019 +0100
@@ -297,8 +297,34 @@
           input[0] = uc;
           result = u32_normalize (nf, input, 1, NULL, &length);
           ASSERT (result != NULL && length == 1 && result[0] == uc);
+
+          free (result);
         }
     }
 }
 
+void
+free_normalization_test_file (struct normalization_test_file *file)
+{
+  size_t part_index;
+
+  for (part_index = 0; part_index < 4; part_index++)
+    {
+      const struct normalization_test_part *p = &file->parts[part_index];
+      size_t line_index;
+
+      for (line_index = 0; line_index < p->lines_length; line_index++)
+        {
+          const struct normalization_test_line *l = &p->lines[line_index];
+          size_t sequence_index;
+
+          for (sequence_index = 0; sequence_index < 5; sequence_index++)
+            free (l->sequences[sequence_index]);
+        }
+      free (p->lines);
+    }
+  free (file->part1_c1_sorted);
+  free (file->filename);
+}
+
 #endif
--- a/tests/uninorm/test-u32-normalize-big.h	Sun Mar 10 14:18:37 2019 +0100
+++ b/tests/uninorm/test-u32-normalize-big.h	Sun Mar 10 15:14:01 2019 +0100
@@ -48,7 +48,7 @@
      sentinel value of 0x110000 at the end.  */
   ucs4_t *part1_c1_sorted;
   /* The filename of the NormalizationTest.txt file.  */
-  const char *filename;
+  char *filename;
 };
 
 /* Read the NormalizationTest.txt file and return its contents.  */
@@ -68,3 +68,7 @@
 /* Perform the second compliance test.  */
 extern void
        test_other (const struct normalization_test_file *file, uninorm_t nf);
+
+/* Free the representation of the NormalizationTest.txt file.  */
+extern void
+       free_normalization_test_file (struct normalization_test_file *file);