From f31c4dbb3f64e5b2cb3fd3e3d4124b937f1d83dc Mon Sep 17 00:00:00 2001 From: Pierrick Bouvier Date: Wed, 4 Dec 2024 20:39:55 -0800 Subject: [PATCH] ci fix: remove flaky tcg test (with sanitizers) follow-fork-mode Signed-off-by: Pierrick Bouvier --- tests/tcg/multiarch/Makefile.target | 17 +----- tests/tcg/multiarch/follow-fork-mode.c | 56 ------------------- .../gdbstub/follow-fork-mode-child.py | 40 ------------- .../gdbstub/follow-fork-mode-parent.py | 16 ------ 4 files changed, 1 insertion(+), 128 deletions(-) delete mode 100644 tests/tcg/multiarch/follow-fork-mode.c delete mode 100644 tests/tcg/multiarch/gdbstub/follow-fork-mode-child.py delete mode 100644 tests/tcg/multiarch/gdbstub/follow-fork-mode-parent.py diff --git a/tests/tcg/multiarch/Makefile.target b/tests/tcg/multiarch/Makefile.target index 18d3cf4ae00dd..e3f8bca015089 100644 --- a/tests/tcg/multiarch/Makefile.target +++ b/tests/tcg/multiarch/Makefile.target @@ -116,20 +116,6 @@ run-gdbstub-catch-syscalls: catch-syscalls --bin $< --test $(MULTIARCH_SRC)/gdbstub/catch-syscalls.py, \ hitting a syscall catchpoint) -run-gdbstub-follow-fork-mode-child: follow-fork-mode - $(call run-test, $@, $(GDB_SCRIPT) \ - --gdb $(GDB) \ - --qemu $(QEMU) --qargs "$(QEMU_OPTS)" \ - --bin $< --test $(MULTIARCH_SRC)/gdbstub/follow-fork-mode-child.py, \ - following children on fork) - -run-gdbstub-follow-fork-mode-parent: follow-fork-mode - $(call run-test, $@, $(GDB_SCRIPT) \ - --gdb $(GDB) \ - --qemu $(QEMU) --qargs "$(QEMU_OPTS)" \ - --bin $< --test $(MULTIARCH_SRC)/gdbstub/follow-fork-mode-parent.py, \ - following parents on fork) - else run-gdbstub-%: $(call skip-test, "gdbstub test $*", "need working gdb with $(patsubst -%,,$(TARGET_NAME)) support") @@ -137,8 +123,7 @@ endif EXTRA_RUNS += run-gdbstub-sha1 run-gdbstub-qxfer-auxv-read \ run-gdbstub-proc-mappings run-gdbstub-thread-breakpoint \ run-gdbstub-registers run-gdbstub-prot-none \ - run-gdbstub-catch-syscalls run-gdbstub-follow-fork-mode-child \ - run-gdbstub-follow-fork-mode-parent \ + run-gdbstub-catch-syscalls \ run-gdbstub-qxfer-siginfo-read # ARM Compatible Semi Hosting Tests diff --git a/tests/tcg/multiarch/follow-fork-mode.c b/tests/tcg/multiarch/follow-fork-mode.c deleted file mode 100644 index cb6b032b388d7..0000000000000 --- a/tests/tcg/multiarch/follow-fork-mode.c +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Test GDB's follow-fork-mode. - * - * fork() a chain of processes. - * Parents sends one byte to their children, and children return their - * position in the chain, in order to prove that they survived GDB's fork() - * handling. - * - * SPDX-License-Identifier: GPL-2.0-or-later - */ -#include -#include -#include -#include - -void break_after_fork(void) -{ -} - -int main(void) -{ - int depth = 42, err, i, fd[2], status; - pid_t child, pid; - ssize_t n; - char b; - - for (i = 0; i < depth; i++) { - err = pipe(fd); - assert(err == 0); - child = fork(); - break_after_fork(); - assert(child != -1); - if (child == 0) { - close(fd[1]); - - n = read(fd[0], &b, 1); - close(fd[0]); - assert(n == 1); - assert(b == (char)i); - } else { - close(fd[0]); - - b = (char)i; - n = write(fd[1], &b, 1); - close(fd[1]); - assert(n == 1); - - pid = waitpid(child, &status, 0); - assert(pid == child); - assert(WIFEXITED(status)); - return WEXITSTATUS(status) - 1; - } - } - - return depth; -} diff --git a/tests/tcg/multiarch/gdbstub/follow-fork-mode-child.py b/tests/tcg/multiarch/gdbstub/follow-fork-mode-child.py deleted file mode 100644 index 72a6e440c0826..0000000000000 --- a/tests/tcg/multiarch/gdbstub/follow-fork-mode-child.py +++ /dev/null @@ -1,40 +0,0 @@ -"""Test GDB's follow-fork-mode child. - -SPDX-License-Identifier: GPL-2.0-or-later -""" -from test_gdbstub import main, report - - -def run_test(): - """Run through the tests one by one""" - gdb.execute("set follow-fork-mode child") - # Check that the parent breakpoints are unset. - gdb.execute("break break_after_fork") - # Check that the parent syscall catchpoints are unset. - # Skip this check on the architectures that don't have them. - have_fork_syscall = False - for fork_syscall in ("fork", "clone", "clone2", "clone3"): - try: - gdb.execute("catch syscall {}".format(fork_syscall)) - except gdb.error: - pass - else: - have_fork_syscall = True - gdb.execute("continue") - for i in range(42): - if have_fork_syscall: - # syscall entry. - if i % 2 == 0: - # Check that the parent single-stepping is turned off. - gdb.execute("si") - else: - gdb.execute("continue") - # syscall exit. - gdb.execute("continue") - # break_after_fork() - gdb.execute("continue") - exitcode = int(gdb.parse_and_eval("$_exitcode")) - report(exitcode == 42, "{} == 42".format(exitcode)) - - -main(run_test) diff --git a/tests/tcg/multiarch/gdbstub/follow-fork-mode-parent.py b/tests/tcg/multiarch/gdbstub/follow-fork-mode-parent.py deleted file mode 100644 index 5c2fe72208897..0000000000000 --- a/tests/tcg/multiarch/gdbstub/follow-fork-mode-parent.py +++ /dev/null @@ -1,16 +0,0 @@ -"""Test GDB's follow-fork-mode parent. - -SPDX-License-Identifier: GPL-2.0-or-later -""" -from test_gdbstub import main, report - - -def run_test(): - """Run through the tests one by one""" - gdb.execute("set follow-fork-mode parent") - gdb.execute("continue") - exitcode = int(gdb.parse_and_eval("$_exitcode")) - report(exitcode == 0, "{} == 0".format(exitcode)) - - -main(run_test)