[libvirt PATCH v2 55/56] src: remove virFilePrintf in favour of g_fprintf

Daniel P. Berrangé berrange at redhat.com
Tue Jan 28 13:11:36 UTC 2020


The virFilePrintf function was a wrapper for fprintf() to provide
Windows portability, since gnulib's fprintf() replacement was
license restricted. This is no longer needed now we have the
g_fprintf function available.

Signed-off-by: Daniel P. Berrangé <berrange at redhat.com>
---
 src/libvirt_private.syms |  1 -
 src/util/virfile.c       | 31 -----------------------------
 src/util/virfile.h       |  3 ---
 tests/commandhelper.c    |  3 +--
 tests/fdstreamtest.c     | 42 ++++++++++++++++++++--------------------
 tests/qemusecuritytest.c |  2 +-
 tests/shunloadtest.c     |  2 +-
 tests/ssh.c              |  3 +--
 tests/testutils.h        |  6 ------
 tests/testutilsqemu.c    |  4 ++--
 tests/virstringtest.c    | 34 ++++++++++++++++----------------
 11 files changed, 44 insertions(+), 87 deletions(-)

diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index 56981541c5..59e1399c79 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -2007,7 +2007,6 @@ virFileMoveMount;
 virFileNBDDeviceAssociate;
 virFileOpenAs;
 virFileOpenTty;
-virFilePrintf;
 virFileReadAll;
 virFileReadAllQuiet;
 virFileReadBufQuiet;
diff --git a/src/util/virfile.c b/src/util/virfile.c
index 2ab4ccb1d5..0633a1fa8d 100644
--- a/src/util/virfile.c
+++ b/src/util/virfile.c
@@ -3331,37 +3331,6 @@ virFileRemoveLastComponent(char *path)
         path[0] = '\0';
 }
 
-/**
- * virFilePrintf:
- *
- * A replacement for fprintf() which uses g_strdup_vprintf
- * to ensure that portable string format placeholders can
- * be used, since gnulib's fprintf() replacement is not
- * LGPLV2+ compatible
- */
-int virFilePrintf(FILE *fp, const char *msg, ...)
-{
-    va_list vargs;
-    g_autofree char *str = NULL;
-    int ret = -1;
-
-    va_start(vargs, msg);
-
-    str = g_strdup_vprintf(msg, vargs);
-    ret = strlen(str);
-
-    if (fwrite(str, 1, ret, fp) != ret) {
-        virReportSystemError(errno, "%s",
-                             _("Could not write to stream"));
-        ret = -1;
-    }
-
-    va_end(vargs);
-
-    return ret;
-}
-
-
 #ifdef __linux__
 
 # ifndef NFS_SUPER_MAGIC
diff --git a/src/util/virfile.h b/src/util/virfile.h
index c805d87b3f..0a520a7522 100644
--- a/src/util/virfile.h
+++ b/src/util/virfile.h
@@ -293,9 +293,6 @@ char *virFileFindMountPoint(const char *type);
     virBuildPathInternal(path, __VA_ARGS__, NULL)
 int virBuildPathInternal(char **path, ...) G_GNUC_NULL_TERMINATED;
 
-int virFilePrintf(FILE *fp, const char *msg, ...)
-    G_GNUC_PRINTF(2, 3);
-
 typedef struct _virHugeTLBFS virHugeTLBFS;
 typedef virHugeTLBFS *virHugeTLBFSPtr;
 struct _virHugeTLBFS {
diff --git a/tests/commandhelper.c b/tests/commandhelper.c
index b9677f2caa..3f040be8f2 100644
--- a/tests/commandhelper.c
+++ b/tests/commandhelper.c
@@ -24,8 +24,7 @@
 #include <fcntl.h>
 #include <sys/stat.h>
 
-#include "internal.h"
-#define NO_LIBVIRT
+#define VIR_NO_GLIB_STDIO /* This file intentionally does not link to libvirt/glib */
 #include "testutils.h"
 
 #ifndef WIN32
diff --git a/tests/fdstreamtest.c b/tests/fdstreamtest.c
index 03f5520fa6..7c784a49f1 100644
--- a/tests/fdstreamtest.c
+++ b/tests/fdstreamtest.c
@@ -103,16 +103,16 @@ static int testFDStreamReadCommon(const char *scratchdir, bool blocking)
                     g_usleep(20 * 1000);
                     goto reread;
                 }
-                virFilePrintf(stderr, "Failed to read stream: %s\n",
-                              virGetLastErrorMessage());
+                fprintf(stderr, "Failed to read stream: %s\n",
+                        virGetLastErrorMessage());
                 goto cleanup;
             }
             if (got == 0) {
                 /* Expect EOF 1/2 through last pattern */
                 if (i == 9 && want == (PATTERN_LEN / 2))
                     break;
-                virFilePrintf(stderr, "Unexpected EOF block %zu want %zu\n",
-                              i, want);
+                fprintf(stderr, "Unexpected EOF block %zu want %zu\n",
+                        i, want);
                 goto cleanup;
             }
             offset += got;
@@ -120,25 +120,25 @@ static int testFDStreamReadCommon(const char *scratchdir, bool blocking)
         }
         if (i == 0) {
             if (memcmp(buf, pattern + (PATTERN_LEN / 2), PATTERN_LEN / 2) != 0) {
-                virFilePrintf(stderr, "Mismatched pattern data iteration %zu\n", i);
+                fprintf(stderr, "Mismatched pattern data iteration %zu\n", i);
                 goto cleanup;
             }
         } else if (i == 9) {
             if (memcmp(buf, pattern, PATTERN_LEN / 2) != 0) {
-                virFilePrintf(stderr, "Mismatched pattern data iteration %zu\n", i);
+                fprintf(stderr, "Mismatched pattern data iteration %zu\n", i);
                 goto cleanup;
             }
         } else {
             if (memcmp(buf, pattern, PATTERN_LEN) != 0) {
-                virFilePrintf(stderr, "Mismatched pattern data iteration %zu\n", i);
+                fprintf(stderr, "Mismatched pattern data iteration %zu\n", i);
                 goto cleanup;
             }
         }
     }
 
     if (st->driver->streamFinish(st) != 0) {
-        virFilePrintf(stderr, "Failed to finish stream: %s\n",
-                      virGetLastErrorMessage());
+        fprintf(stderr, "Failed to finish stream: %s\n",
+                virGetLastErrorMessage());
         goto cleanup;
     }
 
@@ -226,8 +226,8 @@ static int testFDStreamWriteCommon(const char *scratchdir, bool blocking)
                 if (i == 9 &&
                     want == (PATTERN_LEN / 2))
                     break;
-                virFilePrintf(stderr, "Failed to write stream: %s\n",
-                              virGetLastErrorMessage());
+                fprintf(stderr, "Failed to write stream: %s\n",
+                        virGetLastErrorMessage());
                 goto cleanup;
             }
             offset += got;
@@ -236,8 +236,8 @@ static int testFDStreamWriteCommon(const char *scratchdir, bool blocking)
     }
 
     if (st->driver->streamFinish(st) != 0) {
-        virFilePrintf(stderr, "Failed to finish stream: %s\n",
-                      virGetLastErrorMessage());
+        fprintf(stderr, "Failed to finish stream: %s\n",
+                virGetLastErrorMessage());
         goto cleanup;
    }
 
@@ -252,9 +252,9 @@ static int testFDStreamWriteCommon(const char *scratchdir, bool blocking)
             want = PATTERN_LEN;
 
         if ((got = saferead(fd, buf, want)) != want) {
-            virFilePrintf(stderr,
-                          "Short read from data, i=%zu got=%zu want=%zu\n",
-                          i, got, want);
+            fprintf(stderr,
+                    "Short read from data, i=%zu got=%zu want=%zu\n",
+                    i, got, want);
             goto cleanup;
         }
 
@@ -262,22 +262,22 @@ static int testFDStreamWriteCommon(const char *scratchdir, bool blocking)
             size_t j;
             for (j = 0; j < (PATTERN_LEN / 2); j++) {
                 if (buf[j] != 0) {
-                    virFilePrintf(stderr, "Mismatched pattern data iteration %zu\n", i);
+                    fprintf(stderr, "Mismatched pattern data iteration %zu\n", i);
                     goto cleanup;
                 }
             }
             if (memcmp(buf + (PATTERN_LEN / 2), pattern, PATTERN_LEN / 2) != 0) {
-                virFilePrintf(stderr, "Mismatched pattern data iteration %zu\n", i);
+                fprintf(stderr, "Mismatched pattern data iteration %zu\n", i);
                 goto cleanup;
             }
         } else if (i == 9) {
             if (memcmp(buf, pattern, PATTERN_LEN / 2) != 0) {
-                virFilePrintf(stderr, "Mismatched pattern data iteration %zu\n", i);
+                fprintf(stderr, "Mismatched pattern data iteration %zu\n", i);
                 goto cleanup;
             }
         } else {
             if (memcmp(buf, pattern, PATTERN_LEN) != 0) {
-                virFilePrintf(stderr, "Mismatched pattern data iteration %zu\n", i);
+                fprintf(stderr, "Mismatched pattern data iteration %zu\n", i);
                 goto cleanup;
             }
         }
@@ -320,7 +320,7 @@ mymain(void)
     int ret = 0;
 
     if (!g_mkdtemp(scratchdir)) {
-        virFilePrintf(stderr, "Cannot create fdstreamdir");
+        fprintf(stderr, "Cannot create fdstreamdir");
         abort();
     }
 
diff --git a/tests/qemusecuritytest.c b/tests/qemusecuritytest.c
index 4b5bfabeba..a1ef9d8802 100644
--- a/tests/qemusecuritytest.c
+++ b/tests/qemusecuritytest.c
@@ -146,7 +146,7 @@ mymain(void)
                                                             VIR_SECURITY_MANAGER_PRIVILEGED |
                                                             VIR_SECURITY_MANAGER_DYNAMIC_OWNERSHIP,
                                                             NULL))) {
-        virFilePrintf(stderr, "Cannot initialize DAC security driver");
+        fprintf(stderr, "Cannot initialize DAC security driver");
         ret = -1;
         goto cleanup;
     }
diff --git a/tests/shunloadtest.c b/tests/shunloadtest.c
index 65c627ed17..b377c07294 100644
--- a/tests/shunloadtest.c
+++ b/tests/shunloadtest.c
@@ -40,7 +40,7 @@
 
 #include <config.h>
 
-#define NO_LIBVIRT /* This file intentionally does not link to libvirt */
+#define VIR_NO_GLIB_STDIO /* This file intentionally does not link to libvirt/glib */
 #include "testutils.h"
 
 #ifdef linux
diff --git a/tests/ssh.c b/tests/ssh.c
index 58148fef77..415dfbdb25 100644
--- a/tests/ssh.c
+++ b/tests/ssh.c
@@ -18,8 +18,7 @@
 
 #include <config.h>
 
-#include "internal.h"
-#define NO_LIBVIRT /* This file intentionally does not link to libvirt */
+#define VIR_NO_GLIB_STDIO /* This file intentionally does not link to libvirt/glib */
 #include "testutils.h"
 
 #ifndef WIN32
diff --git a/tests/testutils.h b/tests/testutils.h
index ad62dfb647..c1b365ab0d 100644
--- a/tests/testutils.h
+++ b/tests/testutils.h
@@ -30,12 +30,6 @@
 #define EXIT_AM_SKIP 77 /* tell Automake we're skipping a test */
 #define EXIT_AM_HARDFAIL 99 /* tell Automake that the framework is broken */
 
-/* Work around lack of gnulib support for fprintf %z */
-#ifndef NO_LIBVIRT
-# undef fprintf
-# define fprintf virFilePrintf
-#endif
-
 /* Makefile.am provides these two definitions */
 #if !defined(abs_srcdir) || !defined(abs_builddir)
 # error Fix Makefile.am
diff --git a/tests/testutilsqemu.c b/tests/testutilsqemu.c
index c25aa1f705..c17e284930 100644
--- a/tests/testutilsqemu.c
+++ b/tests/testutilsqemu.c
@@ -405,14 +405,14 @@ int qemuTestDriverInit(virQEMUDriver *driver)
     driver->config->channelTargetDir = g_strdup("/tmp/channel");
 
     if (!g_mkdtemp(statedir)) {
-        virFilePrintf(stderr, "Cannot create fake stateDir");
+        fprintf(stderr, "Cannot create fake stateDir");
         goto error;
     }
 
     driver->config->stateDir = g_strdup(statedir);
 
     if (!g_mkdtemp(configdir)) {
-        virFilePrintf(stderr, "Cannot create fake configDir");
+        fprintf(stderr, "Cannot create fake configDir");
         goto error;
     }
 
diff --git a/tests/virstringtest.c b/tests/virstringtest.c
index 88f50185e5..c87e1b9bec 100644
--- a/tests/virstringtest.c
+++ b/tests/virstringtest.c
@@ -58,16 +58,16 @@ static int testStreq(const void *args)
     strneq_rv = STRNEQ_NULLABLE(data->a, data->b);
 
     if (streq_rv != equal) {
-        virFilePrintf(stderr,
-                      "STREQ not working correctly. Expected %d got %d",
-                      (int) equal, (int) streq_rv);
+        fprintf(stderr,
+                "STREQ not working correctly. Expected %d got %d",
+                (int) equal, (int) streq_rv);
         return -1;
     }
 
     if (strneq_rv == equal) {
-        virFilePrintf(stderr,
-                      "STRNEQ not working correctly. Expected %d got %d",
-                      (int) equal, (int) strneq_rv);
+        fprintf(stderr,
+                "STRNEQ not working correctly. Expected %d got %d",
+                (int) equal, (int) strneq_rv);
         return -1;
     }
 
@@ -108,7 +108,7 @@ static int testSplit(const void *args)
     tmp2 = data->tokens;
     while (*tmp1 && *tmp2) {
         if (STRNEQ(*tmp1, *tmp2)) {
-            virFilePrintf(stderr, "Mismatch '%s' vs '%s'\n", *tmp1, *tmp2);
+            fprintf(stderr, "Mismatch '%s' vs '%s'\n", *tmp1, *tmp2);
             goto cleanup;
         }
         tmp1++;
@@ -116,19 +116,19 @@ static int testSplit(const void *args)
         exptokens++;
     }
     if (*tmp1) {
-        virFilePrintf(stderr, "Too many pieces returned\n");
+        fprintf(stderr, "Too many pieces returned\n");
         goto cleanup;
     }
     if (*tmp2) {
-        virFilePrintf(stderr, "Too few pieces returned\n");
+        fprintf(stderr, "Too few pieces returned\n");
         goto cleanup;
     }
 
     if (ntokens != exptokens) {
-        virFilePrintf(stderr,
-                      "Returned token count (%zu) doesn't match "
-                      "expected count (%zu)",
-                      ntokens, exptokens);
+        fprintf(stderr,
+                "Returned token count (%zu) doesn't match "
+                "expected count (%zu)",
+                ntokens, exptokens);
         goto cleanup;
     }
 
@@ -151,7 +151,7 @@ static int testJoin(const void *args)
         return -1;
     }
     if (STRNEQ(got, data->string)) {
-        virFilePrintf(stderr, "Mismatch '%s' vs '%s'\n", got, data->string);
+        fprintf(stderr, "Mismatch '%s' vs '%s'\n", got, data->string);
         goto cleanup;
     }
 
@@ -186,7 +186,7 @@ static int testAdd(const void *args)
     }
 
     if (STRNEQ(got, data->string)) {
-        virFilePrintf(stderr, "Mismatch '%s' vs '%s'\n", got, data->string);
+        fprintf(stderr, "Mismatch '%s' vs '%s'\n", got, data->string);
         goto cleanup;
     }
 
@@ -215,13 +215,13 @@ static int testRemove(const void *args)
     for (i = 0; data->tokens[i]; i++) {
         virStringListRemove(&list, data->tokens[i]);
         if (virStringListHasString((const char **) list, data->tokens[i])) {
-            virFilePrintf(stderr, "Not removed %s", data->tokens[i]);
+            fprintf(stderr, "Not removed %s", data->tokens[i]);
             goto cleanup;
         }
     }
 
     if (list && list[0]) {
-        virFilePrintf(stderr, "Not removed all tokens: %s", list[0]);
+        fprintf(stderr, "Not removed all tokens: %s", list[0]);
         goto cleanup;
     }
 
-- 
2.24.1




More information about the libvir-list mailing list