[PATCH] test: [v2] Validate server log reading more carefully in signal-logging test

Keith Packard keithp at keithp.com
Fri Apr 18 16:19:17 PDT 2014


Check return value from fgets and strchr instead of assuming they
worked.

[v2]

Don't do any necessary work inside the assert call.
Also make sure the return value was long enough.

Signed-off-by: Keith Packard <keithp at keithp.com>
---

Responding to IRC review comments from Jamey

 test/signal-logging.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/test/signal-logging.c b/test/signal-logging.c
index 88b37c1..a72675f 100644
--- a/test/signal-logging.c
+++ b/test/signal-logging.c
@@ -178,9 +178,14 @@ static void logging_format(void)
     LogInit(log_file_path, NULL);
     assert(f = fopen(log_file_path, "r"));
 
-#define read_log_msg(msg) \
-    fgets(read_buf, sizeof(read_buf), f); \
-    msg = strchr(read_buf, ']') + 2; /* advance past [time.stamp] */
+#define read_log_msg(msg) do {                                  \
+        msg = fgets(read_buf, sizeof(read_buf), f);             \
+        assert (msg != NULL);                                   \
+        msg = strchr(read_buf, ']');                            \
+        assert(msg != NULL);                                    \
+        assert(strlen(msg) > 2);                                \
+        msg = msg + 2; /* advance past [time.stamp] */          \
+    } while (0)
 
     /* boring test message */
     LogMessageVerbSigSafe(X_ERROR, -1, "test message\n");
-- 
1.9.2



More information about the xorg-devel mailing list