# HG changeset patch # User Bruno Haible # Date 1552227241 -3600 # Node ID 5b87a9bf72401d19ed663f12dbda77aad98511b7 # Parent 1e0e3e621a8d1413669782a18de59996a6e4c67c 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. diff -r 1e0e3e621a8d -r 5b87a9bf7240 ChangeLog --- 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 + + 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 di-set: Fix memory leak. diff -r 1e0e3e621a8d -r 5b87a9bf7240 tests/uninorm/test-u32-nfc-big.c --- 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; } diff -r 1e0e3e621a8d -r 5b87a9bf7240 tests/uninorm/test-u32-nfd-big.c --- 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; } diff -r 1e0e3e621a8d -r 5b87a9bf7240 tests/uninorm/test-u32-nfkc-big.c --- 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; } diff -r 1e0e3e621a8d -r 5b87a9bf7240 tests/uninorm/test-u32-nfkd-big.c --- 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; } diff -r 1e0e3e621a8d -r 5b87a9bf7240 tests/uninorm/test-u32-normalize-big.c --- 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 diff -r 1e0e3e621a8d -r 5b87a9bf7240 tests/uninorm/test-u32-normalize-big.h --- 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);