mirror of
https://github.com/libvirt/libvirt.git
synced 2026-10-02 12:20:06 -05:00
tests: Fix mocking of open()
In some cases (well, majority), open() is either rewritten to open64(), either by plain '#define open open64') or at assembly level (using __REDIRECT macro). See <fcntl.h> for more info. This didn't really matter to us, because we do not chain load two mocks that would need to reimplement open() at the same time. But this is soon going to change. The problem is, that VIR_MOCK_REAL_INIT(open) glances over aforementioned rewrite and initializes real_open pointer to open() from the standard C library. But it needs to point to open() (well, open64()) from the next mock on the list. Therefore, init real_open to open64(). But of course, this is all glibc specific and for example musl does the oposite (#define open64 open). Signed-off-by: Michal Privoznik <mprivozn@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
1 parent
21e7bcc14f
commit
300965f4f1
7 files changed
+28
No files matched your search
@@ -46,7 +46,11 @@ init_syms(void)
|
||||
if (real_open)
|
||||
return;
|
||||
|
||||
# if defined(__GLIBC__) && defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64
|
||||
VIR_MOCK_REAL_INIT_ALIASED(open, "open64");
|
||||
# else
|
||||
VIR_MOCK_REAL_INIT(open);
|
||||
# endif
|
||||
# if WITH___OPEN_2
|
||||
VIR_MOCK_REAL_INIT(__open_2);
|
||||
# endif
|
||||
|
||||
@@ -115,7 +115,11 @@ init_syms(void)
|
||||
return;
|
||||
|
||||
VIR_MOCK_REAL_INIT(chown);
|
||||
#if defined(__GLIBC__) && defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64
|
||||
VIR_MOCK_REAL_INIT_ALIASED(open, "open64");
|
||||
#else
|
||||
VIR_MOCK_REAL_INIT(open);
|
||||
#endif
|
||||
#if WITH___OPEN_2
|
||||
VIR_MOCK_REAL_INIT(__open_2);
|
||||
#endif
|
||||
|
||||
@@ -304,7 +304,11 @@ static void init_syms(void)
|
||||
VIR_MOCK_REAL_INIT(fopen);
|
||||
VIR_MOCK_REAL_INIT(access);
|
||||
VIR_MOCK_REAL_INIT(mkdir);
|
||||
# if defined(__GLIBC__) && defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64
|
||||
VIR_MOCK_REAL_INIT_ALIASED(open, "open64");
|
||||
# else
|
||||
VIR_MOCK_REAL_INIT(open);
|
||||
# endif
|
||||
# if WITH___OPEN_2
|
||||
VIR_MOCK_REAL_INIT(__open_2);
|
||||
# endif
|
||||
|
||||
@@ -56,7 +56,11 @@ static void init_syms(void)
|
||||
VIR_MOCK_REAL_INIT(fopen);
|
||||
VIR_MOCK_REAL_INIT(access);
|
||||
VIR_MOCK_REAL_INIT(mkdir);
|
||||
# if defined(__GLIBC__) && defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64
|
||||
VIR_MOCK_REAL_INIT_ALIASED(open, "open64");
|
||||
# else
|
||||
VIR_MOCK_REAL_INIT(open);
|
||||
# endif
|
||||
# if WITH___OPEN_2
|
||||
VIR_MOCK_REAL_INIT(__open_2);
|
||||
# endif
|
||||
|
||||
@@ -945,7 +945,11 @@ init_syms(void)
|
||||
return;
|
||||
|
||||
VIR_MOCK_REAL_INIT(access);
|
||||
# if defined(__GLIBC__) && defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64
|
||||
VIR_MOCK_REAL_INIT_ALIASED(open, "open64");
|
||||
# else
|
||||
VIR_MOCK_REAL_INIT(open);
|
||||
# endif
|
||||
# if WITH___OPEN_2
|
||||
VIR_MOCK_REAL_INIT(__open_2);
|
||||
# endif /* WITH___OPEN_2 */
|
||||
|
||||
@@ -46,7 +46,11 @@ static void init_syms(void)
|
||||
if (real_open)
|
||||
return;
|
||||
|
||||
#if defined(__GLIBC__) && defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64
|
||||
VIR_MOCK_REAL_INIT_ALIASED(open, "open64");
|
||||
#else
|
||||
VIR_MOCK_REAL_INIT(open);
|
||||
#endif
|
||||
#if WITH___OPEN_2
|
||||
VIR_MOCK_REAL_INIT(__open_2);
|
||||
#endif
|
||||
|
||||
@@ -40,7 +40,11 @@ static void init_syms(void)
|
||||
if (real_open)
|
||||
return;
|
||||
|
||||
#if defined(__GLIBC__) && defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64
|
||||
VIR_MOCK_REAL_INIT_ALIASED(open, "open64");
|
||||
#else
|
||||
VIR_MOCK_REAL_INIT(open);
|
||||
#endif
|
||||
#if WITH___OPEN_2
|
||||
VIR_MOCK_REAL_INIT(__open_2);
|
||||
#endif
|
||||
|
||||
Reference in new issue
Block a user