@@ -98,52 +98,74 @@ TEST_F(coredump, socket)
9898 close (ipc_sockets [0 ]);
9999
100100 fd_server = create_and_listen_unix_socket ("/tmp/coredump.socket" );
101- if (fd_server < 0 )
101+ if (fd_server < 0 ) {
102+ fprintf (stderr , "socket test: create_and_listen_unix_socket failed: %m\n" );
102103 goto out ;
104+ }
103105
104- if (write_nointr (ipc_sockets [1 ], "1" , 1 ) < 0 )
106+ if (write_nointr (ipc_sockets [1 ], "1" , 1 ) < 0 ) {
107+ fprintf (stderr , "socket test: write_nointr to ipc socket failed: %m\n" );
105108 goto out ;
109+ }
106110
107111 close (ipc_sockets [1 ]);
108112
109113 fd_coredump = accept4 (fd_server , NULL , NULL , SOCK_CLOEXEC );
110- if (fd_coredump < 0 )
114+ if (fd_coredump < 0 ) {
115+ fprintf (stderr , "socket test: accept4 failed: %m\n" );
111116 goto out ;
117+ }
112118
113119 fd_peer_pidfd = get_peer_pidfd (fd_coredump );
114- if (fd_peer_pidfd < 0 )
120+ if (fd_peer_pidfd < 0 ) {
121+ fprintf (stderr , "socket test: get_peer_pidfd failed\n" );
115122 goto out ;
123+ }
116124
117- if (!get_pidfd_info (fd_peer_pidfd , & info ))
125+ if (!get_pidfd_info (fd_peer_pidfd , & info )) {
126+ fprintf (stderr , "socket test: get_pidfd_info failed\n" );
118127 goto out ;
128+ }
119129
120- if (!(info .mask & PIDFD_INFO_COREDUMP ))
130+ if (!(info .mask & PIDFD_INFO_COREDUMP )) {
131+ fprintf (stderr , "socket test: PIDFD_INFO_COREDUMP not set in mask\n" );
121132 goto out ;
133+ }
122134
123- if (!(info .coredump_mask & PIDFD_COREDUMPED ))
135+ if (!(info .coredump_mask & PIDFD_COREDUMPED )) {
136+ fprintf (stderr , "socket test: PIDFD_COREDUMPED not set in coredump_mask\n" );
124137 goto out ;
138+ }
125139
126140 fd_core_file = creat ("/tmp/coredump.file" , 0644 );
127- if (fd_core_file < 0 )
141+ if (fd_core_file < 0 ) {
142+ fprintf (stderr , "socket test: creat coredump file failed: %m\n" );
128143 goto out ;
144+ }
129145
130146 for (;;) {
131147 char buffer [4096 ];
132148 ssize_t bytes_read , bytes_write ;
133149
134150 bytes_read = read (fd_coredump , buffer , sizeof (buffer ));
135- if (bytes_read < 0 )
151+ if (bytes_read < 0 ) {
152+ fprintf (stderr , "socket test: read from coredump socket failed: %m\n" );
136153 goto out ;
154+ }
137155
138156 if (bytes_read == 0 )
139157 break ;
140158
141159 bytes_write = write (fd_core_file , buffer , bytes_read );
142- if (bytes_read != bytes_write )
160+ if (bytes_read != bytes_write ) {
161+ fprintf (stderr , "socket test: write to core file failed (read=%zd, write=%zd): %m\n" ,
162+ bytes_read , bytes_write );
143163 goto out ;
164+ }
144165 }
145166
146167 exit_code = EXIT_SUCCESS ;
168+ fprintf (stderr , "socket test: completed successfully\n" );
147169out :
148170 if (fd_core_file >= 0 )
149171 close (fd_core_file );
@@ -208,32 +230,47 @@ TEST_F(coredump, socket_detect_userspace_client)
208230 close (ipc_sockets [0 ]);
209231
210232 fd_server = create_and_listen_unix_socket ("/tmp/coredump.socket" );
211- if (fd_server < 0 )
233+ if (fd_server < 0 ) {
234+ fprintf (stderr , "socket_detect_userspace_client: create_and_listen_unix_socket failed: %m\n" );
212235 goto out ;
236+ }
213237
214- if (write_nointr (ipc_sockets [1 ], "1" , 1 ) < 0 )
238+ if (write_nointr (ipc_sockets [1 ], "1" , 1 ) < 0 ) {
239+ fprintf (stderr , "socket_detect_userspace_client: write_nointr to ipc socket failed: %m\n" );
215240 goto out ;
241+ }
216242
217243 close (ipc_sockets [1 ]);
218244
219245 fd_coredump = accept4 (fd_server , NULL , NULL , SOCK_CLOEXEC );
220- if (fd_coredump < 0 )
246+ if (fd_coredump < 0 ) {
247+ fprintf (stderr , "socket_detect_userspace_client: accept4 failed: %m\n" );
221248 goto out ;
249+ }
222250
223251 fd_peer_pidfd = get_peer_pidfd (fd_coredump );
224- if (fd_peer_pidfd < 0 )
252+ if (fd_peer_pidfd < 0 ) {
253+ fprintf (stderr , "socket_detect_userspace_client: get_peer_pidfd failed\n" );
225254 goto out ;
255+ }
226256
227- if (!get_pidfd_info (fd_peer_pidfd , & info ))
257+ if (!get_pidfd_info (fd_peer_pidfd , & info )) {
258+ fprintf (stderr , "socket_detect_userspace_client: get_pidfd_info failed\n" );
228259 goto out ;
260+ }
229261
230- if (!(info .mask & PIDFD_INFO_COREDUMP ))
262+ if (!(info .mask & PIDFD_INFO_COREDUMP )) {
263+ fprintf (stderr , "socket_detect_userspace_client: PIDFD_INFO_COREDUMP not set in mask\n" );
231264 goto out ;
265+ }
232266
233- if (info .coredump_mask & PIDFD_COREDUMPED )
267+ if (info .coredump_mask & PIDFD_COREDUMPED ) {
268+ fprintf (stderr , "socket_detect_userspace_client: PIDFD_COREDUMPED incorrectly set (should be userspace client)\n" );
234269 goto out ;
270+ }
235271
236272 exit_code = EXIT_SUCCESS ;
273+ fprintf (stderr , "socket_detect_userspace_client: completed successfully\n" );
237274out :
238275 if (fd_peer_pidfd >= 0 )
239276 close (fd_peer_pidfd );
@@ -263,15 +300,20 @@ TEST_F(coredump, socket_detect_userspace_client)
263300 sizeof ("/tmp/coredump.socket" );
264301
265302 fd_socket = socket (AF_UNIX , SOCK_STREAM , 0 );
266- if (fd_socket < 0 )
303+ if (fd_socket < 0 ) {
304+ fprintf (stderr , "socket_detect_userspace_client (client): socket failed: %m\n" );
267305 _exit (EXIT_FAILURE );
306+ }
268307
269308 ret = connect (fd_socket , (const struct sockaddr * )& coredump_sk , coredump_sk_len );
270- if (ret < 0 )
309+ if (ret < 0 ) {
310+ fprintf (stderr , "socket_detect_userspace_client (client): connect failed: %m\n" );
271311 _exit (EXIT_FAILURE );
312+ }
272313
273314 close (fd_socket );
274315 pause ();
316+ fprintf (stderr , "socket_detect_userspace_client (client): completed successfully\n" );
275317 _exit (EXIT_SUCCESS );
276318 }
277319
@@ -342,17 +384,24 @@ TEST_F(coredump, socket_no_listener)
342384 close (ipc_sockets [0 ]);
343385
344386 fd_server = socket (AF_UNIX , SOCK_STREAM | SOCK_CLOEXEC , 0 );
345- if (fd_server < 0 )
387+ if (fd_server < 0 ) {
388+ fprintf (stderr , "socket_no_listener: socket failed: %m\n" );
346389 goto out ;
390+ }
347391
348392 ret = bind (fd_server , (const struct sockaddr * )& coredump_sk , coredump_sk_len );
349- if (ret < 0 )
393+ if (ret < 0 ) {
394+ fprintf (stderr , "socket_no_listener: bind failed: %m\n" );
350395 goto out ;
396+ }
351397
352- if (write_nointr (ipc_sockets [1 ], "1" , 1 ) < 0 )
398+ if (write_nointr (ipc_sockets [1 ], "1" , 1 ) < 0 ) {
399+ fprintf (stderr , "socket_no_listener: write_nointr to ipc socket failed: %m\n" );
353400 goto out ;
401+ }
354402
355403 exit_code = EXIT_SUCCESS ;
404+ fprintf (stderr , "socket_no_listener: completed successfully\n" );
356405out :
357406 if (fd_server >= 0 )
358407 close (fd_server );
0 commit comments