summaryrefslogtreecommitdiffstats
path: root/debian/patches/test-backtrace.patch
blob: e0a921b335ef03bf31cb57a8995049295a4b0d17 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
From: Noah Meyerhans <noahm@debian.org>
Date: Fri, 12 Jun 2020 16:51:06 -0700
Subject: 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.
---
 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);