We're going to need this later on.
Signed-off-by: Andrea Bolognani <abologna(a)redhat.com>
---
tests/virpcimock.c | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
diff --git a/tests/virpcimock.c b/tests/virpcimock.c
index 176c64d654..3d3a4b4a19 100644
--- a/tests/virpcimock.c
+++ b/tests/virpcimock.c
@@ -43,6 +43,7 @@ static char *(*real_canonicalize_file_name)(const char *path);
static int (*real_open)(const char *path, int flags, ...);
static int (*real_close)(int fd);
static DIR * (*real_opendir)(const char *name);
+static char *(*real_virFileCanonicalizePath)(const char *path);
/* Don't make static, since it causes problems with clang
* when passed as an arg to virAsprintf()
@@ -814,6 +815,7 @@ init_syms(void)
VIR_MOCK_REAL_INIT(open);
VIR_MOCK_REAL_INIT(close);
VIR_MOCK_REAL_INIT(opendir);
+ VIR_MOCK_REAL_INIT(virFileCanonicalizePath);
}
static void
@@ -1046,6 +1048,28 @@ close(int fd)
return -1;
return real_close(fd);
}
+
+char *
+virFileCanonicalizePath(const char *path)
+{
+ char *ret;
+
+ init_syms();
+
+ if (STRPREFIX(path, SYSFS_PCI_PREFIX)) {
+ char *newpath;
+
+ if (getrealpath(&newpath, path) < 0)
+ return NULL;
+
+ ret = real_virFileCanonicalizePath(newpath);
+ VIR_FREE(newpath);
+ } else {
+ ret = real_virFileCanonicalizePath(path);
+ }
+
+ return ret;
+}
#else
/* Nothing to override on non-__linux__ platforms */
#endif
--
2.14.3