mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 08:13:54 -06:00

Add a small test to prevent regressions. Make sure that host_interrupt_signal is not visible to the guest. Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com> Message-Id: <20250117001542.8290-9-iii@linux.ibm.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20250207153112.3939799-18-alex.bennee@linaro.org>
41 lines
955 B
C
41 lines
955 B
C
/*
|
|
* Test attaching GDB to a running process.
|
|
*
|
|
* SPDX-License-Identifier: GPL-2.0-or-later
|
|
*/
|
|
#include <assert.h>
|
|
#include <signal.h>
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
|
|
static const char *phase = "start";
|
|
|
|
int main(void)
|
|
{
|
|
sigset_t set;
|
|
int sig;
|
|
|
|
assert(sigfillset(&set) == 0);
|
|
assert(sigprocmask(SIG_BLOCK, &set, NULL) == 0);
|
|
|
|
/* Let GDB know it can send SIGUSR1. */
|
|
phase = "sigwait";
|
|
if (getenv("LATE_ATTACH_PY")) {
|
|
assert(sigwait(&set, &sig) == 0);
|
|
if (sig != SIGUSR1) {
|
|
fprintf(stderr, "Unexpected signal %d\n", sig);
|
|
return EXIT_FAILURE;
|
|
}
|
|
}
|
|
|
|
/* Check that the guest does not see host_interrupt_signal. */
|
|
assert(sigpending(&set) == 0);
|
|
for (sig = 1; sig < NSIG; sig++) {
|
|
if (sigismember(&set, sig)) {
|
|
fprintf(stderr, "Unexpected signal %d\n", sig);
|
|
return EXIT_FAILURE;
|
|
}
|
|
}
|
|
|
|
return EXIT_SUCCESS;
|
|
}
|