summaryrefslogtreecommitdiffstats
path: root/src/testlib
diff options
context:
space:
mode:
authorTor Arne Vestbø <tor.arne.vestbo@qt.io>2016-12-08 14:07:25 +0100
committerTor Arne Vestbø <tor.arne.vestbo@qt.io>2016-12-08 23:50:44 +0000
commitaec85a53df3dbe3047c6db0f6eb39cb161cd3e6b (patch)
treea78bc769a15ffe8dced93a60ba15be002cb034d0 /src/testlib
parent50cb2687b2864acf66586fab9dd56716ebda4e9d (diff)
Disable core dumps for selftests that are meant to be crashing
Task-number: QTBUG-55155 Change-Id: I26a1461f35f916f3980fcb18cdddf3502e22fc90 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Diffstat (limited to 'src/testlib')
-rw-r--r--src/testlib/qtestcase.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/testlib/qtestcase.cpp b/src/testlib/qtestcase.cpp
index f2a962408e..7b76f1f970 100644
--- a/src/testlib/qtestcase.cpp
+++ b/src/testlib/qtestcase.cpp
@@ -99,6 +99,7 @@
#include <errno.h>
#include <signal.h>
#include <time.h>
+#include <sys/resource.h>
#endif
#if defined(Q_OS_MACX)
@@ -143,6 +144,22 @@ static bool debuggerPresent()
#endif
}
+static void disableCoreDump()
+{
+ bool ok = false;
+ const int disableCoreDump = qEnvironmentVariableIntValue("QTEST_DISABLE_CORE_DUMP", &ok);
+ if (ok && disableCoreDump == 1) {
+#if defined(Q_OS_UNIX)
+ struct rlimit limit;
+ limit.rlim_cur = 0;
+ limit.rlim_max = 0;
+ if (setrlimit(RLIMIT_CORE, &limit) != 0)
+ qWarning("Failed to disable core dumps: %d", errno);
+#endif
+ }
+}
+Q_CONSTRUCTOR_FUNCTION(disableCoreDump);
+
static void stackTrace()
{
bool ok = false;