[libvirt] [PATCH 4/5] tests: Slightly tweak virlogtest

Erik Skultety eskultet at redhat.com
Wed Mar 16 11:05:36 UTC 2016


Add a generic DO_TEST_FULL macro, some PASS/FAIL macros to better visually
distinguish tests that should fail and tests that should pass
---
 tests/virlogtest.c | 35 ++++++++++++++++++++---------------
 1 file changed, 20 insertions(+), 15 deletions(-)

diff --git a/tests/virlogtest.c b/tests/virlogtest.c
index dfe0f75..9e0ebb5 100644
--- a/tests/virlogtest.c
+++ b/tests/virlogtest.c
@@ -23,20 +23,20 @@
 
 #include "virlog.h"
 
-struct testLogMatchData {
+struct testLogData {
     const char *str;
-    bool res;
+    bool pass;
 };
 
 static int
 testLogMatch(const void *opaque)
 {
-    const struct testLogMatchData *data = opaque;
+    const struct testLogData *data = opaque;
 
     bool got = virLogProbablyLogMessage(data->str);
-    if (got != data->res) {
-        fprintf(stderr, "Expected '%d' but got '%d' for '%s'\n",
-                data->res, got, data->str);
+    if (got != data->pass) {
+        VIR_TEST_DEBUG("Expected '%d' but got '%d' for '%s'\n",
+                       data->pass, got, data->str);
         return -1;
     }
     return 0;
@@ -48,18 +48,23 @@ mymain(void)
 {
     int ret = 0;
 
-#define TEST_LOG_MATCH(str, res)                                        \
-    do {                                                                \
-        struct testLogMatchData data = {                                \
-            str, res                                                    \
-        };                                                              \
-        if (virtTestRun("testLogMatch " # str, testLogMatch, &data) < 0) \
-            ret = -1;                                                   \
+#define DO_TEST_FULL(name, test, str, pass)                                 \
+    do {                                                                    \
+        struct testLogData data = {                                         \
+            str, pass                                                       \
+        };                                                                  \
+        if (virtTestRun(name, test, &data) < 0)                             \
+            ret = -1;                                                       \
     } while (0)
 
-    TEST_LOG_MATCH("2013-10-11 15:43:43.866+0000: 28302: info : libvirt version: 1.1.3", true);
+#define TEST_LOG_MATCH_FAIL(str)                                            \
+    DO_TEST_FULL("testLogMatch " # str, testLogMatch, str, false)
+#define TEST_LOG_MATCH(str)                                                 \
+    DO_TEST_FULL("testLogMatch " # str, testLogMatch, str, true)
 
-    TEST_LOG_MATCH("libvirt:  error : cannot execute binary /usr/libexec/libvirt_lxc: No such file or directory", false);
+    TEST_LOG_MATCH("2013-10-11 15:43:43.866+0000: 28302: info : libvirt version: 1.1.3");
+
+    TEST_LOG_MATCH_FAIL("libvirt:  error : cannot execute binary /usr/libexec/libvirt_lxc: No such file or directory");
 
     return ret;
 }
-- 
2.4.3




More information about the libvir-list mailing list