From 9190c37268fb43695aeaec2e64f3aa3f43ae6002 Mon Sep 17 00:00:00 2001 From: Andrea Bolognani Date: Thu, 3 May 2018 10:01:04 +0200 Subject: [PATCH] tests: Mock virFileCanonicalizePath() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We're going to need this later on. Signed-off-by: Andrea Bolognani Reviewed-by: Daniel P. Berrangé --- 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