[tor-commits] [tor/maint-0.2.7] Skip tests if backtrace support not compiled-in

nickm at torproject.org nickm at torproject.org
Tue Sep 29 08:08:07 UTC 2015


commit 5c95762ec6c8e43fe7bc5582fd43585076214ba4
Author: Marcin Cieślak <saper at saper.info>
Date:   Thu Sep 24 22:32:51 2015 +0000

    Skip tests if backtrace support not compiled-in
    
    FreeBSD needs -lexecinfo to fully support
    backtrace reporting.
---
 src/test/test_bt.sh   |    1 +
 src/test/test_bt_cl.c |   11 ++++++++++-
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/src/test/test_bt.sh b/src/test/test_bt.sh
index 56e6cc4..f55f451 100755
--- a/src/test/test_bt.sh
+++ b/src/test/test_bt.sh
@@ -3,6 +3,7 @@
 
 exitcode=0
 
+"${builddir:-.}/src/test/test-bt-cl" backtraces || exit 77
 "${builddir:-.}/src/test/test-bt-cl" assert | "${PYTHON:-python}" "${abs_top_srcdir:-.}/src/test/bt_test.py" || exitcode=1
 "${builddir:-.}/src/test/test-bt-cl" crash  | "${PYTHON:-python}" "${abs_top_srcdir:-.}/src/test/bt_test.py" || exitcode=1
 
diff --git a/src/test/test_bt_cl.c b/src/test/test_bt_cl.c
index 01c621e..dabaee6 100644
--- a/src/test/test_bt_cl.c
+++ b/src/test/test_bt_cl.c
@@ -84,15 +84,24 @@ main(int argc, char **argv)
 
   if (argc < 2) {
     puts("I take an argument. It should be \"assert\" or \"crash\" or "
-         "\"none\"");
+         "\"backtraces\" or \"none\"");
     return 1;
   }
+
+#if !(defined(HAVE_EXECINFO_H) && defined(HAVE_BACKTRACE) && \
+   defined(HAVE_BACKTRACE_SYMBOLS_FD) && defined(HAVE_SIGACTION))
+    puts("Backtrace reporting is not supported on this platform");
+    return 77;
+#endif
+
   if (!strcmp(argv[1], "assert")) {
     crashtype = 1;
   } else if (!strcmp(argv[1], "crash")) {
     crashtype = 0;
   } else if (!strcmp(argv[1], "none")) {
     crashtype = -1;
+  } else if (!strcmp(argv[1], "backtraces")) {
+    return 0;
   } else {
     puts("Argument should be \"assert\" or \"crash\" or \"none\"");
     return 1;





More information about the tor-commits mailing list