fix numerous inlining errors like:
In file included from vircgroupmock.c:24:0:
In function 'stat':
virmock.h:259:1: error: inlining failed in call to 'callStat.part.1':
call is unlikely and code size would grow [-Werror=inline]
callStat(int (*realStat)(const char *, struct stat *),
---
tests/Makefile.am | 8 +++++---
tests/virmock.c | 43 +++++++++++++++++++++++++++++++++++++++++++
tests/virmock.h | 16 ++--------------
3 files changed, 50 insertions(+), 17 deletions(-)
create mode 100644 tests/virmock.c
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 238f6da..1f73958 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -1071,7 +1071,8 @@ vircgrouptest_SOURCES = \
vircgrouptest_LDADD = $(LDADDS)
vircgroupmock_la_SOURCES = \
- vircgroupmock.c
+ vircgroupmock.c \
+ virmock.c
vircgroupmock_la_CFLAGS = $(AM_CFLAGS)
vircgroupmock_la_LDFLAGS = $(MOCKLIBS_LDFLAGS)
vircgroupmock_la_LIBADD = $(MOCKLIBS_LIBS)
@@ -1081,7 +1082,7 @@ vircryptotest_SOURCES = \
vircryptotest_LDADD = $(LDADDS)
virhostdevtest_SOURCES = \
- virhostdevtest.c testutils.h testutils.c
+ virhostdevtest.c testutils.h testutils.c virmock.c
virhostdevtest_LDADD = $(LDADDS)
virpcitest_SOURCES = \
@@ -1089,7 +1090,8 @@ virpcitest_SOURCES = \
virpcitest_LDADD = $(LDADDS)
virpcimock_la_SOURCES = \
- virpcimock.c
+ virpcimock.c \
+ virmock.c
virpcimock_la_CFLAGS = $(AM_CFLAGS)
virpcimock_la_LDFLAGS = $(MOCKLIBS_LDFLAGS)
virpcimock_la_LIBADD = $(MOCKLIBS_LIBS)
diff --git a/tests/virmock.c b/tests/virmock.c
new file mode 100644
index 0000000..98dd872
--- /dev/null
+++ b/tests/virmock.c
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2013 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see
+ * <
http://www.gnu.org/licenses/>.
+ *
+ */
+
+#include <config.h>
+
+#ifdef __linux__
+# include "virmock.h"
+
+int callStat(int (*realStat)(const char *, struct stat *),
+ int (*realXstat)(int, const char *, struct stat *),
+ int __ver, const char *__filename, struct stat *__stat_buf)
+{
+ if (!realXstat) {
+ if (__ver == _STAT_VER) {
+ return realStat(__filename, __stat_buf);
+ } else {
+ fprintf(stderr, "Not handled __xstat(ver=%d)", __ver);
+ abort();
+ }
+ }
+
+ return realXstat(__ver, __filename, __stat_buf);
+}
+
+#else
+/* Nothing to override on non-__linux__ platforms */
+#endif
diff --git a/tests/virmock.h b/tests/virmock.h
index 27c03ba..4b50976 100644
--- a/tests/virmock.h
+++ b/tests/virmock.h
@@ -255,22 +255,10 @@
static void (*real_##name)(void); \
void name(void)
-static inline int
+int
callStat(int (*realStat)(const char *, struct stat *),
int (*realXstat)(int, const char *, struct stat *),
- int __ver, const char *__filename, struct stat *__stat_buf)
-{
- if (!realXstat) {
- if (__ver == _STAT_VER) {
- return realStat(__filename, __stat_buf);
- } else {
- fprintf(stderr, "Not handled __xstat(ver=%d)", __ver);
- abort();
- }
- }
-
- return realXstat(__ver, __filename, __stat_buf);
-}
+ int __ver, const char *__filename, struct stat *__stat_buf);
# define VIR_MOCK_CALL_STAT(__ver, __filename, __stat_buf) \
callStat(real_stat, real___xstat, __ver, __filename, __stat_buf)
--
1.8.3.1