selftests/silent_fatal: disable core dumps and MSVC debug dialogs
Otherwise the test may hang forever waiting for the user to click a button or just too long waiting for the core dumper. Pick-to: 6.8 Change-Id: Id570aab34608aed86b86fffd8d196c84296e0389 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
This commit is contained in:
parent
3bed6f4e86
commit
898abae6ad
@ -5,6 +5,29 @@
|
|||||||
#include <QTest>
|
#include <QTest>
|
||||||
#include <private/qtestlog_p.h>
|
#include <private/qtestlog_p.h>
|
||||||
|
|
||||||
|
#if defined(Q_OS_WIN) && defined(Q_CC_MSVC)
|
||||||
|
# include <crtdbg.h>
|
||||||
|
#endif
|
||||||
|
#ifdef Q_OS_UNIX
|
||||||
|
# include <sys/resource.h>
|
||||||
|
# include <unistd.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
void disableCoreDumps()
|
||||||
|
{
|
||||||
|
#if defined(Q_OS_WIN) && defined(Q_CC_MSVC)
|
||||||
|
// Windows: Suppress crash notification dialog.
|
||||||
|
_CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_DEBUG);
|
||||||
|
#elif defined(RLIMIT_CORE)
|
||||||
|
// Unix: set our core dump limit to zero to request no dialogs.
|
||||||
|
if (struct rlimit rlim; getrlimit(RLIMIT_CORE, &rlim) == 0) {
|
||||||
|
rlim.rlim_cur = 0;
|
||||||
|
setrlimit(RLIMIT_CORE, &rlim);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
Q_CONSTRUCTOR_FUNCTION(disableCoreDumps)
|
||||||
|
|
||||||
class tst_SilentFatal : public QObject
|
class tst_SilentFatal : public QObject
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
Loading…
x
Reference in New Issue
Block a user