lib: Add SAFE_WAIT() and SAFE_WAITPID()

Signed-off-by: Cyril Hrubis <chrubis@suse.cz>
diff --git a/lib/safe_macros.c b/lib/safe_macros.c
index 0d805e9..fbee716 100644
--- a/lib/safe_macros.c
+++ b/lib/safe_macros.c
@@ -2,6 +2,7 @@
 #include <sys/mman.h>
 #include <sys/resource.h>
 #include <sys/stat.h>
+#include <sys/wait.h>
 #include <errno.h>
 #include <fcntl.h>
 #include <libgen.h>
@@ -613,3 +614,33 @@
 
 	return rval;
 }
+
+pid_t safe_wait(const char *file, const int lineno, void (cleanup_fn)(void),
+                int *status)
+{
+	pid_t rval;
+
+	rval = wait(status);
+	if (rval == -1) {
+		tst_brkm(TBROK | TERRNO, cleanup_fn,
+			 "%s:%d: wait(%p) failed",
+			 file, lineno, status);
+	}
+
+	return rval;
+}
+
+pid_t safe_waitpid(const char *file, const int lineno, void (cleanup_fn)(void),
+                   pid_t pid, int *status, int opts)
+{
+	pid_t rval;
+
+	rval = waitpid(pid, status, opts);
+	if (rval == -1) {
+		tst_brkm(TBROK | TERRNO, cleanup_fn,
+			 "%s:%d: waitpid(%d,%p,%d) failed",
+			 file, lineno, pid, status, opts);
+	}
+
+	return rval;
+}