Module Name:    src
Committed By:   ozaki-r
Date:           Tue May 19 04:14:04 UTC 2015

Modified Files:
        src/tests/net/mcast: t_mcast.c

Log Message:
Handle child's exit status precisely


To generate a diff of this commit:
cvs rdiff -u -r1.14 -r1.15 src/tests/net/mcast/t_mcast.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/tests/net/mcast/t_mcast.c
diff -u src/tests/net/mcast/t_mcast.c:1.14 src/tests/net/mcast/t_mcast.c:1.15
--- src/tests/net/mcast/t_mcast.c:1.14	Tue May 19 03:19:27 2015
+++ src/tests/net/mcast/t_mcast.c	Tue May 19 04:14:04 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: t_mcast.c,v 1.14 2015/05/19 03:19:27 ozaki-r Exp $	*/
+/*	$NetBSD: t_mcast.c,v 1.15 2015/05/19 04:14:04 ozaki-r Exp $	*/
 
 /*-
  * Copyright (c) 2014 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 #include <sys/cdefs.h>
 #ifdef __RCSID
-__RCSID("$NetBSD: t_mcast.c,v 1.14 2015/05/19 03:19:27 ozaki-r Exp $");
+__RCSID("$NetBSD: t_mcast.c,v 1.15 2015/05/19 04:14:04 ozaki-r Exp $");
 #else
 extern const char *__progname;
 #define getprogname() __progname
@@ -316,9 +316,25 @@ run(const char *host, const char *port, 
 				    strerror(errno));
 			goto again;
 		default:
-			if (status != 0)
-				ERRX(EXIT_FAILURE, "pid exited with %d",
+			if (WIFSIGNALED(status)) {
+				if (WTERMSIG(status) == SIGTERM)
+					ERRX(EXIT_FAILURE,
+					    "receiver got terminated due to " \
+					    "deadline (%d usec)", 100);
+				else
+					ERRX(EXIT_FAILURE,
+					    "receiver got signaled (%s)",
+					    strsignal(WTERMSIG(status)));
+			} else if (WIFEXITED(status)) {
+				if (WEXITSTATUS(status) != 0)
+					ERRX(EXIT_FAILURE,
+					    "receiver exited with status %d",
+					    WEXITSTATUS(status));
+			} else {
+				ERRX(EXIT_FAILURE,
+				    "receiver exited with unexpected status %d",
 				    status);
+			}
 			break;
 		}
 		return;

Reply via email to