From f6557ca6537bc4d37fb4be215184a632533ba4e7 Mon Sep 17 00:00:00 2001 From: David Gibson Date: Sat, 24 Dec 2016 21:40:00 +1100 Subject: [PATCH] coroutine: Remove on-stack buffers from testcases In preparation for enabling valgrind tests, remove instances where we allocate a coroutine's stack from a buffer itself on the stack. Not all that surprisingly, valgrind gets very, very confused by having one "thread"'s stack embedded within another's. Signed-off-by: David Gibson --- ccan/coroutine/test/api-1.c | 3 ++- ccan/coroutine/test/api-3.c | 11 ++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/ccan/coroutine/test/api-1.c b/ccan/coroutine/test/api-1.c index fbf66df6..ea59dc02 100644 --- a/ccan/coroutine/test/api-1.c +++ b/ccan/coroutine/test/api-1.c @@ -30,9 +30,10 @@ static void test_trivial(struct coroutine_stack *stack) } +static char buf[COROUTINE_MIN_STKSZ + COROUTINE_STK_OVERHEAD]; + int main(void) { - char buf[COROUTINE_MIN_STKSZ + COROUTINE_STK_OVERHEAD]; struct coroutine_stack *stack; /* This is how many tests you plan to run */ diff --git a/ccan/coroutine/test/api-3.c b/ccan/coroutine/test/api-3.c index 12912654..4b90b463 100644 --- a/ccan/coroutine/test/api-3.c +++ b/ccan/coroutine/test/api-3.c @@ -64,16 +64,19 @@ static void test_metadata(struct coroutine_stack *stack) int main(void) { - char buf[BUFSIZE]; + char *buf; struct coroutine_stack *stack; /* This is how many tests you plan to run */ - plan_tests(9); + plan_tests(10); /* Fix seed so we get consistent, though pseudo-random results */ srandom(0); - stack = coroutine_stack_init(buf, sizeof(buf), sizeof(struct metadata)); + buf = malloc(BUFSIZE); + ok1(buf != NULL); + + stack = coroutine_stack_init(buf, BUFSIZE, sizeof(struct metadata)); ok1(stack != NULL); ok1(coroutine_stack_check(stack, NULL) == stack); ok1(coroutine_stack_size(stack) @@ -83,6 +86,8 @@ int main(void) coroutine_stack_release(stack, sizeof(struct metadata)); + free(buf); + /* This exits depending on whether all tests passed */ return exit_status(); } -- 2.39.2