vis

a vi-like editor based on Plan 9's structural regular expressions

git clone https://9o.is/git/vis.git

commit 03e38cd971ca4f3a8ff0811562d7fe646bb5f0ec
parent 0f317f09b45b82e0c928d3ad0da73b992b3fff69
Author: Marc André Tanner <mat@brain-dump.org>
Date:   Wed, 21 Dec 2016 16:56:05 +0100

test/core: make core tests asan clean

Diffstat:
Mcore/Makefile | 2+-
Mcore/array.c | 14+++++++++++++-
Mcore/buffer.c | 5++++-
Mcore/text.c | 1+
4 files changed, 19 insertions(+), 3 deletions(-)

diff --git 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 @@ -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 @@ -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 @@ -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(); }