Browse Source

Skip tests if backtrace support not compiled-in

FreeBSD needs -lexecinfo to fully support
backtrace reporting.
Marcin Cieślak 8 years ago
parent
commit
5c95762ec6
2 changed files with 11 additions and 1 deletions
  1. 1 0
      src/test/test_bt.sh
  2. 10 1
      src/test/test_bt_cl.c

+ 1 - 0
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
 

+ 10 - 1
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;