commit b7ad8bcaad093a5d043c63f30c196c52741830d2
Author: rl1987 <rl1987(a)sdf.lonestar.org>
Date: Wed Feb 13 15:50:09 2019 +0200
Use setrlimit instead of ulimit -c in backtrace tests
---
changes/bug29061 | 4 ++++
src/test/test_bt.sh | 2 --
src/test/test_bt_cl.c | 8 ++++++++
3 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/changes/bug29061 b/changes/bug29061
new file mode 100644
index 000000000..58fc4f22e
--- /dev/null
+++ b/changes/bug29061
@@ -0,0 +1,4 @@
+ o Minor bugfixes (testing):
+ - Call setrlimit() to disable core dumps in test_bt_cl.c instead of
+ using `ulimit -c` in test_bt.sh, which violates POSIX shell
+ compatibility. Fixes bug 29061; bugfix on 0.3.5.1-alpha.
diff --git a/src/test/test_bt.sh b/src/test/test_bt.sh
index df8bcb8ed..312905a4e 100755
--- a/src/test/test_bt.sh
+++ b/src/test/test_bt.sh
@@ -3,8 +3,6 @@
exitcode=0
-ulimit -c 0
-
export ASAN_OPTIONS="handle_segv=0:allow_user_segv_handler=1"
"${builddir:-.}/src/test/test-bt-cl" backtraces || exit $?
"${builddir:-.}/src/test/test-bt-cl" assert 2>&1 | "${PYTHON:-python}" "${abs_top_srcdir:-.}/src/test/bt_test.py" || exitcode="$?"
diff --git a/src/test/test_bt_cl.c b/src/test/test_bt_cl.c
index 0c15a02ee..08b08ba42 100644
--- a/src/test/test_bt_cl.c
+++ b/src/test/test_bt_cl.c
@@ -4,6 +4,9 @@
#include "orconfig.h"
#include <stdio.h>
#include <stdlib.h>
+#ifdef HAVE_SYS_RESOURCE_H
+#include <sys/resource.h>
+#endif
/* To prevent 'assert' from going away. */
#undef TOR_COVERAGE
@@ -88,6 +91,11 @@ main(int argc, char **argv)
return 1;
}
+#ifdef HAVE_SYS_RESOURCE_H
+ struct rlimit rlim = { .rlim_cur = 0, .rlim_max = 0 };
+ setrlimit(RLIMIT_CORE, &rlim);
+#endif
+
#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");