render / rpms / libvirt

Forked from rpms/libvirt 7 months ago
Clone
Daniel P. Berrangé c2f3be
From c46299170bd318bc1ffc95da1774515634fd03d9 Mon Sep 17 00:00:00 2001
Daniel P. Berrangé c2f3be
From: Roman Bolshakov <r.bolshakov@yadro.com>
Daniel P. Berrangé c2f3be
Date: Sun, 18 Oct 2020 18:30:57 +0300
Daniel P. Berrangé c2f3be
Subject: [PATCH 2/3] tests: Re-introduce stat/lstat mocks on macOS
Daniel P. Berrangé c2f3be
Daniel P. Berrangé c2f3be
Commit d6b17edd5163 ("tests: Lookup extended stat/lstat in mocks")
Daniel P. Berrangé c2f3be
adds support for mocking of stat() and lstat() on macOS.
Daniel P. Berrangé c2f3be
Daniel P. Berrangé c2f3be
The change was broken because virmockstathelpers.c only follows glibc
Daniel P. Berrangé c2f3be
logic and MOCK_STAT and MOCK_LSTAT are not getting defined on macOS.
Daniel P. Berrangé c2f3be
Daniel P. Berrangé c2f3be
Signed-off-by: Roman Bolshakov <r.bolshakov@yadro.com>
Daniel P. Berrangé c2f3be
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Daniel P. Berrangé c2f3be
---
Daniel P. Berrangé c2f3be
 tests/virmockstathelpers.c | 16 ++++++++++++----
Daniel P. Berrangé c2f3be
 1 file changed, 12 insertions(+), 4 deletions(-)
Daniel P. Berrangé c2f3be
Daniel P. Berrangé c2f3be
diff --git a/tests/virmockstathelpers.c b/tests/virmockstathelpers.c
Daniel P. Berrangé c2f3be
index 90b9ceedb6..5a71de24e9 100644
Daniel P. Berrangé c2f3be
--- a/tests/virmockstathelpers.c
Daniel P. Berrangé c2f3be
+++ b/tests/virmockstathelpers.c
Daniel P. Berrangé c2f3be
@@ -55,6 +55,10 @@
Daniel P. Berrangé c2f3be
  * Unfortunately, because we are trying to mock replace the C library,
Daniel P. Berrangé c2f3be
  * we need to know about this internal impl detail.
Daniel P. Berrangé c2f3be
  *
Daniel P. Berrangé c2f3be
+ * On macOS stat() and lstat() are resolved to _stat$INODE64 and
Daniel P. Berrangé c2f3be
+ * _lstat$INODE64, respectively. stat(2) man page also declares that
Daniel P. Berrangé c2f3be
+ * stat64(), lstat64() and fstat64() are deprecated.
Daniel P. Berrangé c2f3be
+ *
Daniel P. Berrangé c2f3be
  * With all this in mind the list of functions we have to mock will depend
Daniel P. Berrangé c2f3be
  * on several factors
Daniel P. Berrangé c2f3be
  *
Daniel P. Berrangé c2f3be
@@ -68,8 +72,10 @@
Daniel P. Berrangé c2f3be
 
Daniel P. Berrangé c2f3be
 
Daniel P. Berrangé c2f3be
 
Daniel P. Berrangé c2f3be
-#if defined(WITH_STAT) && !defined(WITH___XSTAT) && !defined(WITH_STAT64)
Daniel P. Berrangé c2f3be
-# define MOCK_STAT
Daniel P. Berrangé c2f3be
+#if defined(WITH_STAT)
Daniel P. Berrangé c2f3be
+# if !defined(WITH___XSTAT) && !defined(WITH_STAT64) || defined(__APPLE__)
Daniel P. Berrangé c2f3be
+#  define MOCK_STAT
Daniel P. Berrangé c2f3be
+# endif
Daniel P. Berrangé c2f3be
 #endif
Daniel P. Berrangé c2f3be
 #if defined(WITH_STAT64) && !defined(WITH___XSTAT64)
Daniel P. Berrangé c2f3be
 # define MOCK_STAT64
Daniel P. Berrangé c2f3be
@@ -80,8 +86,10 @@
Daniel P. Berrangé c2f3be
 #if defined(WITH___XSTAT64)
Daniel P. Berrangé c2f3be
 # define MOCK___XSTAT64
Daniel P. Berrangé c2f3be
 #endif
Daniel P. Berrangé c2f3be
-#if defined(WITH_LSTAT) && !defined(WITH___LXSTAT) && !defined(WITH_LSTAT64)
Daniel P. Berrangé c2f3be
-# define MOCK_LSTAT
Daniel P. Berrangé c2f3be
+#if defined(WITH_LSTAT)
Daniel P. Berrangé c2f3be
+# if !defined(WITH___LXSTAT) && !defined(WITH_LSTAT64) || defined(__APPLE__)
Daniel P. Berrangé c2f3be
+#  define MOCK_LSTAT
Daniel P. Berrangé c2f3be
+# endif
Daniel P. Berrangé c2f3be
 #endif
Daniel P. Berrangé c2f3be
 #if defined(WITH_LSTAT64) && !defined(WITH___LXSTAT64)
Daniel P. Berrangé c2f3be
 # define MOCK_LSTAT64
Daniel P. Berrangé c2f3be
-- 
Daniel P. Berrangé c2f3be
2.28.0
Daniel P. Berrangé c2f3be