From 0ae6f5cea54d95c0d1dedf04a0a2accfe2529fb2 Mon Sep 17 00:00:00 2001 From: Roman Bolshakov Date: Wed, 21 Aug 2019 19:13:22 +0300 Subject: [PATCH] tests: Avoid gnulib replacements in mocks gnulib headers change stat, lstat and open to replacement functions, even for function definitions. This effectively disables standard library overrides in virfilewrapper and virmockstathelpers since they are never reached. Rename the functions and provide a declartion that uses correct assembler name for the mocks. This fixes firmware lookup in domaincapstest on macOS. Signed-off-by: Roman Bolshakov --- tests/virfilewrapper.c | 5 +++++ tests/virmockstathelpers.c | 10 ++++++++++ 2 files changed, 15 insertions(+) diff --git a/tests/virfilewrapper.c b/tests/virfilewrapper.c index 067cb30657..160cd571e0 100644 --- a/tests/virfilewrapper.c +++ b/tests/virfilewrapper.c @@ -157,7 +157,12 @@ int access(const char *path, int mode) return real_access(newpath ? newpath : path, mode); } +# ifdef __APPLE__ +int _open(const char *path, int flags, ...) __asm("_open"); +int _open(const char *path, int flags, ...) +# else int open(const char *path, int flags, ...) +# endif { VIR_AUTOFREE(char *) newpath = NULL; va_list ap; diff --git a/tests/virmockstathelpers.c b/tests/virmockstathelpers.c index 485063be84..0e13ce60b7 100644 --- a/tests/virmockstathelpers.c +++ b/tests/virmockstathelpers.c @@ -192,7 +192,12 @@ static int virMockStatRedirect(const char *path, char **newpath); #endif #ifdef MOCK_STAT +# ifdef __APPLE__ +int _stat(const char *path, struct stat *sb) __asm("_stat$INODE64"); +int _stat(const char *path, struct stat *sb) +# else int stat(const char *path, struct stat *sb) +# endif { VIR_AUTOFREE(char *) newpath = NULL; @@ -262,8 +267,13 @@ __xstat64(int ver, const char *path, struct stat64 *sb) #endif #ifdef MOCK_LSTAT +# ifdef __APPLE__ +int _lstat(const char *path, struct stat *sb) __asm("_lstat$INODE64"); +int _lstat(const char *path, struct stat *sb) +# else int lstat(const char *path, struct stat *sb) +# endif { VIR_AUTOFREE(char *) newpath = NULL;