From 5dd0511b9f16cee19dd7ebd06d61982de5b04116 Mon Sep 17 00:00:00 2001 From: Noah Meyerhans Date: Fri, 12 Jun 2020 16:51:06 -0700 Subject: [PATCH] Updates the symbol to check for in the backtrace unit tests Updates the symbol to check for in the backtrace unit tests to something that appears in all the traces on the platforms we support. Also dump the actual backtrace for debugging buildd failures. Gbp-Pq: Name test-backtrace.patch --- src/lib/test-backtrace.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/lib/test-backtrace.c b/src/lib/test-backtrace.c index fdebe0f..78492c7 100644 --- a/src/lib/test-backtrace.c +++ b/src/lib/test-backtrace.c @@ -11,14 +11,15 @@ static void test_backtrace_append(void) /* Check that there's a usable function in the backtrace. Note that this function may be inlined, so don't check for test_backtrace_get() */ + i_debug("backtrace: '%s'", str_c(bt)); test_assert(strstr(str_c(bt), "test_backtrace") != NULL); /* make sure the backtrace_append is not */ test_assert(strstr(str_c(bt), " backtrace_append") == NULL); #elif (defined(HAVE_BACKTRACE_SYMBOLS) && defined(HAVE_EXECINFO_H)) || \ (defined(HAVE_WALKCONTEXT) && defined(HAVE_UCONTEXT_H)) test_assert(backtrace_append(bt) == 0); - /* it should have some kind of main in it */ - test_assert(strstr(str_c(bt), "main") != NULL); + i_debug("backtrace: '%s'", str_c(bt)); + test_assert(strstr(str_c(bt), "test_backtrace_append") != NULL || strstr(str_c(bt), "main") != NULL); #else /* should not work in this context */ test_assert(backtrace_append(bt) == -1); @@ -35,14 +36,15 @@ static void test_backtrace_get(void) /* Check that there's a usable function in the backtrace. Note that this function may be inlined, so don't check for test_backtrace_get() */ - test_assert(strstr(bt, "test_backtrace") != NULL); + i_debug("backtrace: '%s'", bt); + test_assert(strstr(bt, "test_backtrace") != NULL); /* make sure the backtrace_get is not */ test_assert(strstr(bt, " backtrace_get") == NULL); #elif (defined(HAVE_BACKTRACE_SYMBOLS) && defined(HAVE_EXECINFO_H)) || \ (defined(HAVE_WALKCONTEXT) && defined(HAVE_UCONTEXT_H)) test_assert(backtrace_get(&bt) == 0); - /* it should have some kind of main in it */ - test_assert(strstr(bt, "main") != NULL); + i_debug("backtrace: '%s'", bt); + test_assert(strstr(bt, "test_backtrace_get") != NULL || strstr(bt, "main") != NULL); #else /* should not work in this context */ test_assert(backtrace_get(&bt) == -1); -- 2.30.2