]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
selftests/coredump: Fix "socket_detect_userspace_client" test failure
authorNam Cao <namcao@linutronix.de>
Fri, 20 Jun 2025 11:02:52 +0000 (13:02 +0200)
committerChristian Brauner <brauner@kernel.org>
Mon, 23 Jun 2025 10:41:13 +0000 (12:41 +0200)
The coredump.socket_detect_userspace_client test occasionally fails:
    #  RUN           coredump.socket_detect_userspace_client ...
    # stackdump_test.c:500:socket_detect_userspace_client:Expected 0 (0) != WIFEXITED(status) (0)
    # socket_detect_userspace_client: Test terminated by assertion
    #          FAIL  coredump.socket_detect_userspace_client
    not ok 3 coredump.socket_detect_userspace_client

because there is no guarantee that client's write() happens before server's
close(). The client gets terminated SIGPIPE, and thus the test fails.

Add a read() to server to make sure server's close() doesn't happen before
client's write().

Fixes: 7b6724fe9a6b ("selftests/coredump: add tests for AF_UNIX coredumps")
Signed-off-by: Nam Cao <namcao@linutronix.de>
Link: https://lore.kernel.org/20250620110252.1640391-1-namcao@linutronix.de
Signed-off-by: Christian Brauner <brauner@kernel.org>
tools/testing/selftests/coredump/stackdump_test.c

index 9984413be9f06180e0a980b5d37d0db97d5c69e5..68f8e479ac3682d02011dc54089f1f37919b8eb8 100644 (file)
@@ -461,10 +461,15 @@ TEST_F(coredump, socket_detect_userspace_client)
                        _exit(EXIT_FAILURE);
                }
 
+               ret = read(fd_coredump, &c, 1);
+
                close(fd_coredump);
                close(fd_server);
                close(fd_peer_pidfd);
                close(fd_core_file);
+
+               if (ret < 1)
+                       _exit(EXIT_FAILURE);
                _exit(EXIT_SUCCESS);
        }
        self->pid_coredump_server = pid_coredump_server;