Make SAFE_* calls more informative when failing

The output has been "standardized" into the following format:
<file>:<line>: <func>(<params>) <error message>

E.g.:
test.c:130: chdir(mydir) failed

This will then be followed by the usual errno stuff if applicable.

Also includes a few fixes and coding style unification.

Signed-off-by: Mats Liljegren <mats.liljegren@enea.com>
Signed-off-by: Cyril Hrubis <chrubis@suse.cz>
diff --git a/lib/safe_macros.c b/lib/safe_macros.c
index 6f85c11..0d805e9 100644
--- a/lib/safe_macros.c
+++ b/lib/safe_macros.c
@@ -19,11 +19,13 @@
 	char *rval;
 
 	rval = basename(path);
-	if (rval == NULL)
-		tst_brkm(TBROK | TERRNO, cleanup_fn, "basename failed at %s:%d",
-			 file, lineno);
+	if (rval == NULL) {
+		tst_brkm(TBROK | TERRNO, cleanup_fn,
+			 "%s:%d: basename(%s) failed",
+			 file, lineno, path);
+	}
 
-	return (rval);
+	return rval;
 }
 
 int
@@ -33,11 +35,13 @@
 	int rval;
 
 	rval = chdir(path);
-	if (rval == -1)
-		tst_brkm(TBROK | TERRNO, cleanup_fn, "chdir failed at %s:%d",
-			 file, lineno);
+	if (rval == -1) {
+		tst_brkm(TBROK | TERRNO, cleanup_fn,
+			 "%s:%d: chdir(%s) failed",
+			 file, lineno, path);
+	}
 
-	return (rval);
+	return rval;
 }
 
 int
@@ -47,11 +51,13 @@
 	int rval;
 
 	rval = close(fildes);
-	if (rval == -1)
-		tst_brkm(TBROK | TERRNO, cleanup_fn, "close failed at %s:%d",
-			 file, lineno);
+	if (rval == -1) {
+		tst_brkm(TBROK | TERRNO, cleanup_fn,
+			 "%s:%d: close(%d) failed",
+			 file, lineno, fildes);
+	}
 
-	return (rval);
+	return rval;
 }
 
 int
@@ -61,11 +67,13 @@
 	int rval;
 
 	rval = creat(pathname, mode);
-	if (rval == -1)
-		tst_brkm(TBROK | TERRNO, cleanup_fn, "creat failed at %s:%d",
-			 file, lineno);
+	if (rval == -1) {
+		tst_brkm(TBROK | TERRNO, cleanup_fn,
+			 "%s:%d: creat(%s,0%o) failed",
+			 file, lineno, pathname, mode);
+	}
 
-	return (rval);
+	return rval;
 }
 
 char *safe_dirname(const char *file, const int lineno,
@@ -74,11 +82,13 @@
 	char *rval;
 
 	rval = dirname(path);
-	if (rval == NULL)
-		tst_brkm(TBROK | TERRNO, cleanup_fn, "dirname failed at %s:%d",
-			 file, lineno);
+	if (rval == NULL) {
+		tst_brkm(TBROK | TERRNO, cleanup_fn,
+			 "%s:%d: dirname(%s) failed",
+			 file, lineno, path);
+	}
 
-	return (rval);
+	return rval;
 }
 
 char *safe_getcwd(const char *file, const int lineno, void (*cleanup_fn) (void),
@@ -87,11 +97,13 @@
 	char *rval;
 
 	rval = getcwd(buf, size);
-	if (rval == NULL)
-		tst_brkm(TBROK | TERRNO, cleanup_fn, "getcwd failed at %s:%d",
-			 file, lineno);
+	if (rval == NULL) {
+		tst_brkm(TBROK | TERRNO, cleanup_fn,
+			 "%s:%d: getcwd(%p,%zu) failed",
+			 file, lineno, buf, size);
+	}
 
-	return (rval);
+	return rval;
 }
 
 struct passwd *safe_getpwnam(const char *file, const int lineno,
@@ -100,11 +112,13 @@
 	struct passwd *rval;
 
 	rval = getpwnam(name);
-	if (rval == NULL)
-		tst_brkm(TBROK | TERRNO, cleanup_fn, "getpwnam failed at %s:%d",
-			 file, lineno);
+	if (rval == NULL) {
+		tst_brkm(TBROK | TERRNO, cleanup_fn,
+			 "%s:%d: getpwnam(%s) failed",
+			 file, lineno, name);
+	}
 
-	return (rval);
+	return rval;
 }
 
 int
@@ -114,9 +128,11 @@
 	int rval;
 
 	rval = getrusage(who, usage);
-	if (rval == -1)
+	if (rval == -1) {
 		tst_brkm(TBROK | TERRNO, cleanup_fn,
-			 "getrusage failed at %s:%d", file, lineno);
+			 "%s:%d: getrusage(%d,%p) failed",
+			 file, lineno, who, usage);
+	}
 
 	return rval;
 }
@@ -127,23 +143,26 @@
 	void *rval;
 
 	rval = malloc(size);
-	if (rval == NULL)
-		tst_brkm(TBROK | TERRNO, cleanup_fn, "malloc failed at %s:%d",
-			 file, lineno);
+	if (rval == NULL) {
+		tst_brkm(TBROK | TERRNO, cleanup_fn,
+			 "%s:%d: malloc(%zu) failed",
+			 file, lineno, size);
+	}
 
-	return (rval);
+	return rval;
 }
 
-int
-safe_mkdir(const char *file, const int lineno, void (*cleanup_fn) (void),
-	   const char *pathname, mode_t mode)
+int safe_mkdir(const char *file, const int lineno, void (*cleanup_fn) (void),
+               const char *pathname, mode_t mode)
 {
 	int rval;
 
 	rval = mkdir(pathname, mode);
-	if (rval == -1)
-		tst_brkm(TBROK | TERRNO, cleanup_fn, "mkdir failed at %s:%d",
-			 file, lineno);
+	if (rval == -1) {
+		tst_brkm(TBROK | TERRNO, cleanup_fn,
+			 "%s:%d: mkdir(%s,0%o) failed",
+			 file, lineno, pathname, mode);
+	}
 
 	return (rval);
 }
@@ -155,30 +174,33 @@
 	void *rval;
 
 	rval = mmap(addr, length, prot, flags, fd, offset);
-	if (rval == MAP_FAILED)
-		tst_brkm(TBROK | TERRNO, cleanup_fn, "mmap failed at %s:%d",
-			 file, lineno);
+	if (rval == MAP_FAILED) {
+		tst_brkm(TBROK | TERRNO, cleanup_fn,
+			 "%s:%d: mmap(%p,%zu,%d,%d,%d,%ld) failed",
+			 file, lineno, addr, length, prot, flags, fd,
+			 (long) offset);
+	}
 
-	return (rval);
+	return rval;
 }
 
-int
-safe_munmap(const char *file, const int lineno, void (*cleanup_fn) (void),
-	    void *addr, size_t length)
+int safe_munmap(const char *file, const int lineno, void (*cleanup_fn) (void),
+                void *addr, size_t length)
 {
 	int rval;
 
 	rval = munmap(addr, length);
-	if (rval == -1)
-		tst_brkm(TBROK | TERRNO, cleanup_fn, "munmap failed at %s:%d",
-			 file, lineno);
+	if (rval == -1) {
+		tst_brkm(TBROK | TERRNO, cleanup_fn,
+			 "%s:%d: munmap(%p,%zu) failed",
+			 file, lineno, addr, length);
+	}
 
-	return (rval);
+	return rval;
 }
 
-int
-safe_open(const char *file, const int lineno, void (*cleanup_fn) (void),
-	  const char *pathname, int oflags, ...)
+int safe_open(const char *file, const int lineno, void (*cleanup_fn) (void),
+              const char *pathname, int oflags, ...)
 {
 	va_list ap;
 	int rval;
@@ -189,109 +211,118 @@
 	va_end(ap);
 
 	rval = open(pathname, oflags, mode);
-	if (rval == -1)
-		tst_brkm(TBROK | TERRNO, cleanup_fn, "open failed at %s:%d",
-			 file, lineno);
+	if (rval == -1) {
+		tst_brkm(TBROK | TERRNO, cleanup_fn,
+			 "%s:%d: open(%s,%d,0%o) failed",
+			 file, lineno, pathname, oflags, mode);
+	}
 
-	return (rval);
+	return rval;
 }
 
-int
-safe_pipe(const char *file, const int lineno, void (*cleanup_fn) (void),
-	  int fildes[2])
+int safe_pipe(const char *file, const int lineno, void (*cleanup_fn) (void),
+              int fildes[2])
 {
 	int rval;
 
 	rval = pipe(fildes);
-	if (rval == -1)
-		tst_brkm(TBROK | TERRNO, cleanup_fn, "pipe failed at %s:%d",
-			 file, lineno);
+	if (rval == -1) {
+		tst_brkm(TBROK | TERRNO, cleanup_fn,
+			 "%s:%d: pipe({%d,%d}) failed",
+			 file, lineno, fildes[0], fildes[1]);
+	}
 
-	return (rval);
+	return rval;
 }
 
-ssize_t
-safe_read(const char *file, const int lineno, void (*cleanup_fn) (void),
-	  char len_strict, int fildes, void *buf, size_t nbyte)
+ssize_t safe_read(const char *file, const int lineno, void (*cleanup_fn) (void),
+                  char len_strict, int fildes, void *buf, size_t nbyte)
 {
 	ssize_t rval;
 
 	rval = read(fildes, buf, nbyte);
-	if (rval == -1 || (len_strict && (size_t)rval != nbyte))
-		tst_brkm(TBROK | TERRNO, cleanup_fn, "read failed at %s:%d",
-			 file, lineno);
+	if (rval == -1 || (len_strict && (size_t)rval != nbyte)) {
+		tst_brkm(TBROK | TERRNO, cleanup_fn,
+			 "%s:%d: read(%d,%p,%zu) failed, returned %zd",
+			 file, lineno, fildes, buf, nbyte, rval);
+	}
 
-	return (rval);
+	return rval;
 }
 
-int
-safe_setegid(const char *file, const int lineno, void (*cleanup_fn) (void),
-	     gid_t egid)
+int safe_setegid(const char *file, const int lineno, void (*cleanup_fn) (void),
+                 gid_t egid)
 {
 	int rval;
 
 	rval = setegid(egid);
-	if (rval == -1)
-		tst_brkm(TBROK | TERRNO, cleanup_fn, "setegid failed at %s:%d",
-			 file, lineno);
+	if (rval == -1) {
+		tst_brkm(TBROK | TERRNO, cleanup_fn,
+			 "%s:%d: setegid(%u) failed",
+			 file, lineno, (unsigned) egid);
+	}
 
-	return (rval);
+	return rval;
 }
 
-int
-safe_seteuid(const char *file, const int lineno, void (*cleanup_fn) (void),
-	     uid_t euid)
+int safe_seteuid(const char *file, const int lineno, void (*cleanup_fn) (void),
+                 uid_t euid)
 {
 	int rval;
 
 	rval = seteuid(euid);
-	if (rval == -1)
-		tst_brkm(TBROK | TERRNO, cleanup_fn, "seteuid failed at %s:%d",
-			 file, lineno);
+	if (rval == -1) {
+		tst_brkm(TBROK | TERRNO, cleanup_fn,
+			 "%s:%d: seteuid(%u) failed",
+			 file, lineno, (unsigned) euid);
+	}
 
-	return (rval);
+	return rval;
 }
 
-int
-safe_setgid(const char *file, const int lineno, void (*cleanup_fn) (void),
-	    gid_t gid)
+int safe_setgid(const char *file, const int lineno, void (*cleanup_fn) (void),
+                gid_t gid)
 {
 	int rval;
 
 	rval = setgid(gid);
-	if (rval == -1)
-		tst_brkm(TBROK | TERRNO, cleanup_fn, "setgid failed at %s:%d",
-			 file, lineno);
+	if (rval == -1) {
+		tst_brkm(TBROK | TERRNO, cleanup_fn,
+			 "%s:%d: setgid(%u) failed",
+			 file, lineno, (unsigned) gid);
+	}
 
-	return (rval);
+	return rval;
 }
 
-int
-safe_setuid(const char *file, const int lineno, void (*cleanup_fn) (void),
-	    uid_t uid)
+int safe_setuid(const char *file, const int lineno, void (*cleanup_fn) (void),
+                uid_t uid)
 {
 	int rval;
 
 	rval = setuid(uid);
-	if (rval == -1)
-		tst_brkm(TBROK | TERRNO, cleanup_fn, "setuid failed at %s:%d",
-			 file, lineno);
+	if (rval == -1) {
+		tst_brkm(TBROK | TERRNO, cleanup_fn,
+			 "%s:%d: setuid(%u) failed",
+			 file, lineno, (unsigned) uid);
+	}
 
-	return (rval);
+	return rval;
 }
 
-int
-safe_unlink(const char *file, const int lineno, void (*cleanup_fn) (void),
-	    const char *pathname)
+int safe_unlink(const char *file, const int lineno, void (*cleanup_fn) (void),
+                const char *pathname)
 {
 	int rval;
 
 	rval = unlink(pathname);
-	if (rval == -1)
-		tst_brkm(TBROK | TERRNO, cleanup_fn, "unlink failed at %s:%d",
-			 file, lineno);
+	if (rval == -1) {
+		tst_brkm(TBROK | TERRNO, cleanup_fn,
+			 "%s:%d: unlink(%s) failed",
+			 file, lineno, pathname);
+	}
 
-	return (rval);
+	return rval;
 }
 
 
@@ -305,8 +336,8 @@
 
 	if (rval == -1) {
 		tst_brkm(TBROK | TERRNO, cleanup_fn,
-		         "link(%s, %s) failed at %s:%d",
-			 oldpath, newpath, file, lineno);
+		         "%s:%d: link(%s,%s) failed",
+			 file, lineno, oldpath, newpath);
 	}
 
 	return rval;
@@ -322,8 +353,8 @@
 
 	if (rval == (off_t) -1) {
 		tst_brkm(TBROK | TERRNO, cleanup_fn,
-		         "lseek(%i, %li, %i) failed at %s:%d",
-		         fd, (long)offset, whence, file, lineno);
+		         "%s:%d: lseek(%d,%ld,%d) failed",
+			 file, lineno, fd, (long)offset, whence);
 	}
 
 	return rval;
@@ -339,25 +370,26 @@
 
 	if (rval == -1) {
 		tst_brkm(TBROK | TERRNO, cleanup_fn,
-		         "link(%s, %s) failed at %s:%d",
-			 oldpath, newpath, file, lineno);
+		         "%s:%d: symlink(%s,%s) failed",
+			 file, lineno, oldpath, newpath);
 	}
 
 	return rval;
 }
 
-ssize_t
-safe_write(const char *file, const int lineno, void (cleanup_fn) (void),
-	   char len_strict, int fildes, const void *buf, size_t nbyte)
+ssize_t safe_write(const char *file, const int lineno, void (cleanup_fn) (void),
+                   char len_strict, int fildes, const void *buf, size_t nbyte)
 {
 	ssize_t rval;
 
 	rval = write(fildes, buf, nbyte);
-	if ((len_strict == 0 && rval == -1) || (size_t)rval != nbyte)
-		tst_brkm(TBROK | TERRNO, cleanup_fn, "write failed at %s:%d",
-			 file, lineno);
+	if ((len_strict == 0 && rval == -1) || (size_t)rval != nbyte) {
+		tst_brkm(TBROK | TERRNO, cleanup_fn,
+			 "%s:%d: write(%d,%p,%zu) failed",
+		         file, lineno, fildes, buf, rval);
+	}
 
-	return (rval);
+	return rval;
 }
 
 int safe_ftruncate(const char *file, const int lineno,
@@ -368,7 +400,8 @@
 	rval = ftruncate(fd, length);
 	if (rval == -1) {
 		tst_brkm(TBROK | TERRNO, cleanup_fn,
-			 "ftruncate failed at %s:%d", file, lineno);
+			 "%s:%d: ftruncate(%d,%ld) failed",
+			 file, lineno, fd, (long)length);
 	}
 
 	return rval;
@@ -381,8 +414,9 @@
 
 	rval = truncate(path, length);
 	if (rval == -1) {
-		tst_brkm(TBROK | TERRNO, cleanup_fn, "truncate failed at %s:%d",
-			 file, lineno);
+		tst_brkm(TBROK | TERRNO, cleanup_fn,
+			 "%s:%d: truncate(%s,%ld) failed",
+			 file, lineno, path, (long)length);
 	}
 
 	return rval;
@@ -396,17 +430,23 @@
 
 	errno = 0;
 	rval = strtol(str, &endptr, 10);
+
 	if ((errno == ERANGE && (rval == LONG_MAX || rval == LONG_MIN))
-	    || (errno != 0 && rval == 0))
+	    || (errno != 0 && rval == 0)) {
 		tst_brkm(TBROK | TERRNO, cleanup_fn,
-			 "strtol failed at %s:%d", file, lineno);
-	if (rval > max || rval < min)
+			 "%s:%d: strtol(%s) failed", file, lineno, str);
+	}
+
+	if (endptr == str || (*endptr != '\0' && *endptr != '\n')) {
 		tst_brkm(TBROK, cleanup_fn,
-			 "converted value out of range (%ld - %ld) at %s:%d",
-			 min, max, file, lineno);
-	if (endptr == str || (*endptr != '\0' && *endptr != '\n'))
+			 "%s:%d: strtol(%s): Invalid value", file, lineno, str);
+	}
+
+	if (rval > max || rval < min) {
 		tst_brkm(TBROK, cleanup_fn,
-			 "Invalid value: '%s' at %s:%d", str, file, lineno);
+			 "%s:%d: strtol(%s): %ld is out of range %ld - %ld",
+			 file, lineno, str, rval, min, max);
+	}
 
 	return rval;
 }
@@ -420,17 +460,23 @@
 
 	errno = 0;
 	rval = strtoul(str, &endptr, 10);
+
 	if ((errno == ERANGE && rval == ULONG_MAX)
-	    || (errno != 0 && rval == 0))
+	    || (errno != 0 && rval == 0)) {
 		tst_brkm(TBROK | TERRNO, cleanup_fn,
-			 "strtol failed at %s:%d", file, lineno);
-	if (rval > max || rval < min)
+			 "%s:%d: strtoul(%s) failed", file, lineno, str);
+	}
+
+	if (rval > max || rval < min) {
 		tst_brkm(TBROK, cleanup_fn,
-			 "converted value out of range (%lu - %lu at %s:%d",
-			 min, max, file, lineno);
-	if (endptr == str || (*endptr != '\0' && *endptr != '\n'))
+			 "%s:%d: strtoul(%s): %lu is out of range %lu - %lu",
+			 file, lineno, str, rval, min, max);
+	}
+
+	if (endptr == str || (*endptr != '\0' && *endptr != '\n')) {
 		tst_brkm(TBROK, cleanup_fn,
 			 "Invalid value: '%s' at %s:%d", str, file, lineno);
+	}
 
 	return rval;
 }
@@ -444,13 +490,16 @@
 	rval = sysconf(name);
 
 	if (rval == -1) {
-		if (errno == EINVAL)
+		if (errno) {
 			tst_brkm(TBROK | TERRNO, cleanup_fn,
-				 "sysconf failed at %s:%d", file, lineno);
-		else
-			tst_resm(TINFO, "queried option is not available"
-				 " or thers is no definite limit at %s:%d",
-				 file, lineno);
+				 "%s:%d: sysconf(%d) failed",
+				 file, lineno, name);
+		} else {
+			tst_resm(TINFO, "%s:%d: sysconf(%d): "
+				 "queried option is not available"
+				 " or there is no definite limit",
+				 file, lineno, name);
+		}
 	}
 
 	return rval;
@@ -465,7 +514,7 @@
 
 	if (rval == -1) {
 		tst_brkm(TBROK | TERRNO, cleanup_fn,
-			 "stat failed at %s:%d", file, lineno);
+			 "%s:%d: stat(%s,%p) failed", file, lineno, path, buf);
 	}
 
 	return rval;
@@ -480,7 +529,7 @@
 
 	if (rval == -1) {
 		tst_brkm(TBROK | TERRNO, cleanup_fn,
-			 "fstat failed at %s:%d", file, lineno);
+			 "%s:%d: fstat(%d,%p) failed", file, lineno, fd, buf);
 	}
 
 	return rval;
@@ -495,7 +544,7 @@
 
 	if (rval == -1) {
 		tst_brkm(TBROK | TERRNO, cleanup_fn,
-			 "lstat failed at %s:%d", file, lineno);
+			 "%s:%d: lstat(%s,%p) failed", file, lineno, path, buf);
 	}
 
 	return rval;
@@ -510,7 +559,8 @@
 
 	if (rval == -1) {
 		tst_brkm(TBROK | TERRNO, cleanup_fn,
-			 "getrlimit failed at %s:%d", file, lineno);
+			 "%s:%d: getrlimit(%d,%p) failed",
+			 file, lineno, resource, rlim);
 	}
 
 	return rval;
@@ -525,7 +575,8 @@
 
 	if (rval == -1) {
 		tst_brkm(TBROK | TERRNO, cleanup_fn,
-			 "setrlimit failed at %s:%d", file, lineno);
+			 "%s:%d: setrlimit(%d,%p) failed",
+			 file, lineno, resource, rlim);
 	}
 
 	return rval;
@@ -540,7 +591,8 @@
 
 	if (rval == -1) {
 		tst_brkm(TBROK | TERRNO, cleanup_fn,
-			 "chmod failed at %s:%d", file, lineno);
+			 "%s:%d: chmod(%s,0%o) failed",
+			 file, lineno, path, mode);
 	}
 
 	return rval;
@@ -555,7 +607,8 @@
 
 	if (rval == -1) {
 		tst_brkm(TBROK | TERRNO, cleanup_fn,
-			 "fchmod failed at %s:%d", file, lineno);
+			 "%s:%d: fchmod(%d,0%o) failed",
+			 file, lineno, fd, mode);
 	}
 
 	return rval;