From cca3d303023d53b5d0af96751f379b2d0e28cd18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Andr=C3=A9=20Tanner?= Date: Wed, 21 Dec 2016 16:56:05 +0100 Subject: test/core: make core tests asan clean --- core/Makefile | 2 +- core/array.c | 14 +++++++++++++- core/buffer.c | 5 ++++- core/text.c | 1 + 4 files changed, 19 insertions(+), 3 deletions(-) (limited to 'core') diff --git a/core/Makefile b/core/Makefile index 6a2d672..d3d0fdd 100644 --- a/core/Makefile +++ b/core/Makefile @@ -30,7 +30,7 @@ array: config.h array.c ../../array.c @${CC} ${CFLAGS} ${CFLAGS_STD} ${CFLAGS_EXTRA} ${filter %.c, $^} ${SRC} ${LDFLAGS} -o $@ debug: clean - $(MAKE) CFLAGS_EXTRA='${CFLAGS_DEBUG}' + $(MAKE) CFLAGS_EXTRA='${CFLAGS_EXTRA} ${CFLAGS_DEBUG}' coverage: clean $(MAKE) CFLAGS_EXTRA='--coverage' diff --git a/core/array.c b/core/array.c index ced8e26..e6c0265 100644 --- a/core/array.c +++ b/core/array.c @@ -48,6 +48,8 @@ static void test_small_objects(void) { array_clear(&arr); ok(array_length(&arr) == 0 && array_get(&arr, 0) == NULL && errno == EINVAL, "Clear"); + + array_release(&arr); } static void test_large_objects(void) { @@ -87,6 +89,8 @@ static void test_large_objects(void) { array_clear(&arr); ok(array_length(&arr) == 0 && array_get(&arr, 0) == NULL && errno == EINVAL, "Clear"); + + array_release(&arr); } static void test_pointers(void) { @@ -100,9 +104,11 @@ static void test_pointers(void) { for (size_t i = 0; i < len; i++) { items[i] = malloc(sizeof(Item)); - snprintf(items[i]->key, sizeof(items[i]->key), "key: %zu", i); items[i]->value = values[i]; + } + + for (size_t i = 0; i < len; i++) { Item *item; ok(array_add_ptr(&arr, items[i]) && array_length(&arr) == i+1, "Add item: %zu = %p", i, (void*)items[i]); @@ -124,6 +130,12 @@ static void test_pointers(void) { array_clear(&arr); ok(array_length(&arr) == 0 && array_get_ptr(&arr, 0) == NULL && errno == EINVAL, "Clear"); + + for (size_t i = 0; i < len; i++) { + ok(array_add_ptr(&arr, items[i]) && array_length(&arr) == i+1, + "Re-add item: %zu = %p", i, (void*)items[i]); + } + array_release_full(&arr); } int main(int argc, char *argv[]) { diff --git a/core/buffer.c b/core/buffer.c index 05bbb12..14ad667 100644 --- a/core/buffer.c +++ b/core/buffer.c @@ -69,12 +69,15 @@ int main(int argc, char *argv[]) { for (int i = 1; i <= 10; i++) append &= buffer_appendf(&buf, "%d", i); ok(append && compare0(&buf, "12345678910"), "Append formatted"); - buffer_clear(&buf); + append = true; for (int i = 1; i <= 10; i++) append &= buffer_appendf(&buf, ""); ok(append && compare0(&buf, ""), "Append formatted empty string"); + buffer_clear(&buf); + + buffer_release(&buf); return exit_status(); } diff --git a/core/text.c b/core/text.c index 7154b70..01aa322 100644 --- a/core/text.c +++ b/core/text.c @@ -132,6 +132,7 @@ int main(int argc, char *argv[]) { ok(text_mark_get(txt, mof) == EPOS, "Mark in the middle deleted"); text_undo(txt); ok(text_mark_get(txt, mof) == newpos, "Mark restored"); + text_free(txt); return exit_status(); } -- cgit v1.2.3