summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib/io/qprocess/testProcessCrash/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/corelib/io/qprocess/testProcessCrash/main.cpp')
-rw-r--r--tests/auto/corelib/io/qprocess/testProcessCrash/main.cpp50
1 files changed, 7 insertions, 43 deletions
diff --git a/tests/auto/corelib/io/qprocess/testProcessCrash/main.cpp b/tests/auto/corelib/io/qprocess/testProcessCrash/main.cpp
index ddf0ef0ad7..a5f1eef88a 100644
--- a/tests/auto/corelib/io/qprocess/testProcessCrash/main.cpp
+++ b/tests/auto/corelib/io/qprocess/testProcessCrash/main.cpp
@@ -1,50 +1,14 @@
// Copyright (C) 2016 The Qt Company Ltd.
// Copyright (C) 2020 Intel Corporation.
-// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
-#if __has_include(<sys/resource.h>)
-# include <sys/resource.h>
-# if defined(RLIMIT_CORE)
-static bool disableCoreDumps()
-{
- // 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);
- }
- return true;
-}
-static bool disabledCoreDumps = disableCoreDumps();
-# endif // RLIMIT_CORE
-#endif // <sys/resource.h>
-
-void crashFallback(volatile int *ptr = nullptr)
-{
- *ptr = 0;
-}
-
-#if defined(_MSC_VER)
-# include <intrin.h>
-
-int main()
-{
-# if defined(_M_IX86) || defined(_M_X64)
- __ud2();
-# endif
-
- crashFallback();
-}
-#elif defined(__MINGW32__)
-int main()
-{
- asm("ud2");
- crashFallback();
-}
-#else
-# include <stdlib.h>
+#include "../crasher.h"
+using namespace tst_QProcessCrash;
int main()
{
- abort();
+ [[maybe_unused]] // NoCoreDumps may be an empty struct, not a RAII class
+ NoCoreDumps disableCoreDumps;
+ crash();
+ return 0;
}
-#endif