summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@intel.com>2022-05-02 18:50:10 -0700
committerThiago Macieira <thiago.macieira@intel.com>2022-05-20 12:01:35 -0700
commit3e596da488b575adbb9a6e1c3c0cde90be7fd160 (patch)
tree8b4f137cadf1eefcecdce65ae78e3886bc48d55f
parent65ff731b62c2fa9ebc175471c55d49747f991b68 (diff)
FatalSignalHandler: simplify the SA_SIGINFO handling
The #if around the function declaration was ugly. Pick-to: 6.3 Change-Id: I5ff8e16fcdcb4ffd9ab6fffd16eb7540f5da080f Reviewed-by: Marc Mutz <marc.mutz@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
-rw-r--r--src/testlib/qtestcase.cpp19
1 files changed, 10 insertions, 9 deletions
diff --git a/src/testlib/qtestcase.cpp b/src/testlib/qtestcase.cpp
index b034ae9dd5..5a6aca344c 100644
--- a/src/testlib/qtestcase.cpp
+++ b/src/testlib/qtestcase.cpp
@@ -1845,9 +1845,9 @@ public:
memset(&act, 0, sizeof(act));
# ifdef SA_SIGINFO
act.sa_flags |= SA_SIGINFO;
- act.sa_sigaction = FatalSignalHandler::signal;
+ act.sa_sigaction = FatalSignalHandler::actionHandler;
# else
- act.sa_handler = FatalSignalHandler::signal;
+ act.sa_handler = FatalSignalHandler::regularHandler;
# endif
// Remove the handler after it is invoked.
@@ -1916,9 +1916,9 @@ public:
auto isOurs = [](const struct sigaction &old) {
# ifdef SA_SIGINFO
- return (old.sa_flags & SA_SIGINFO) && old.sa_sigaction == FatalSignalHandler::signal;
+ return (old.sa_flags & SA_SIGINFO) && old.sa_sigaction == FatalSignalHandler::actionHandler;
# else
- return old.sa_handler == FatalSignalHandler::signal;
+ return old.sa_handler == FatalSignalHandler::regularHandler;
# endif
};
struct sigaction action;
@@ -1937,11 +1937,7 @@ public:
private:
Q_DISABLE_COPY_MOVE(FatalSignalHandler)
-# ifdef SA_SIGINFO
- static void signal(int signum, siginfo_t * /* info */, void * /* ucontext */)
-# else
- static void signal(int signum)
-#endif
+ static void actionHandler(int signum, siginfo_t * /* info */, void * /* ucontext */)
{
const int msecsFunctionTime = qRound(QTestLog::msecsFunctionTime());
const int msecsTotalTime = qRound(QTestLog::msecsTotalTime());
@@ -1968,6 +1964,11 @@ private:
# endif
}
+ [[maybe_unused]] static void regularHandler(int signum)
+ {
+ actionHandler(signum, nullptr, nullptr);
+ }
+
sigset_t handledSignals;
static bool pauseOnCrash;
};