]> xenbits.xensource.com Git - libvirt.git/commitdiff
tests: Build virpcimock on FreeBSD too
authorAndrea Bolognani <abologna@redhat.com>
Mon, 30 Apr 2018 14:04:39 +0000 (16:04 +0200)
committerAndrea Bolognani <abologna@redhat.com>
Thu, 3 May 2018 16:23:30 +0000 (18:23 +0200)
There are only a couple remaining issues preventing it from
working on FreeBSD. Let's fix them.

With the mocking in place, qemumemlocktest and qemuxml2xmltest
can finally succeed on FreeBSD.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
tests/virpcimock.c

index 7e4ac191d038e8d3f20452236edcd27f4aade063..3acf33b6f2fd05096fee6b85bc6ceec6acf2eb73 100644 (file)
@@ -20,7 +20,7 @@
 
 #include <config.h>
 
-#ifdef __linux__
+#if defined(__linux__) || defined(__FreeBSD__)
 # include "virmock.h"
 # include <stdio.h>
 # include <stdlib.h>
@@ -341,6 +341,7 @@ pci_device_new_from_stub(const struct pciDevice *data)
     char *configSrc;
     char tmp[256];
     struct stat sb;
+    bool configSrcExists = false;
 
     if (VIR_STRDUP_QUIET(id, data->id) < 0)
         ABORT_OOM();
@@ -368,10 +369,18 @@ pci_device_new_from_stub(const struct pciDevice *data)
     if (virFileMakePath(devpath) < 0)
         ABORT("Unable to create: %s", devpath);
 
+    if (real_stat && real_stat(configSrc, &sb) == 0)
+        configSrcExists = true;
+
+# ifdef HAVE___XSTAT
+    if (!configSrcExists &&
+        real___xstat && real___xstat(_STAT_VER, configSrc, &sb) == 0)
+        configSrcExists = true;
+# endif
+
     /* If there is a config file for the device within virpcitestdata dir,
      * symlink it. Otherwise create a dummy config file. */
-    if ((real_stat && real_stat(configSrc, &sb) == 0) ||
-        (real___xstat && real___xstat(_STAT_VER, configSrc, &sb) == 0)) {
+    if (configSrcExists) {
         /* On success, copy @configSrc into the destination (a copy,
          * rather than a symlink, is required since we write into the
          * file, and parallel VPATH builds must not stomp on the
@@ -891,6 +900,7 @@ access(const char *path, int mode)
     return ret;
 }
 
+# ifdef HAVE___LXSTAT
 int
 __lxstat(int ver, const char *path, struct stat *sb)
 {
@@ -909,6 +919,7 @@ __lxstat(int ver, const char *path, struct stat *sb)
     }
     return ret;
 }
+# endif /* HAVE___LXSTAT */
 
 int
 lstat(const char *path, struct stat *sb)
@@ -929,6 +940,7 @@ lstat(const char *path, struct stat *sb)
     return ret;
 }
 
+# ifdef HAVE___XSTAT
 int
 __xstat(int ver, const char *path, struct stat *sb)
 {
@@ -947,6 +959,7 @@ __xstat(int ver, const char *path, struct stat *sb)
     }
     return ret;
 }
+# endif /* HAVE___XSTAT */
 
 int
 stat(const char *path, struct stat *sb)
@@ -1050,5 +1063,5 @@ virFileCanonicalizePath(const char *path)
     return ret;
 }
 #else
-/* Nothing to override on non-__linux__ platforms */
+/* Nothing to override on this platform */
 #endif