va_start(ap, func);
while ((lib = va_arg(ap, const char *))) {
- if (!virFileIsExecutable(lib)) {
- perror(lib);
+ g_autofree char *abs_lib_path = g_strdup_printf("%s/%s", abs_builddir, lib);
+
+ if (!virFileIsExecutable(abs_lib_path)) {
+ perror(abs_lib_path);
va_end(ap);
return EXIT_FAILURE;
}
#ifdef __APPLE__
# define PRELOAD_VAR "DYLD_INSERT_LIBRARIES"
+# define LD_LIBRARY_PATH "DYLD_LIBRARY_PATH"
# define FORCE_FLAT_NAMESPACE \
g_setenv("DYLD_FORCE_FLAT_NAMESPACE", "1", TRUE);
# define MOCK_EXT ".dylib"
#else
# define PRELOAD_VAR "LD_PRELOAD"
+# define LD_LIBRARY_PATH "LD_LIBRARY_PATH"
# define FORCE_FLAT_NAMESPACE
# define MOCK_EXT ".so"
#endif
const char *preload = getenv(PRELOAD_VAR); \
if (preload == NULL || strstr(preload, libs) == NULL) { \
char *newenv; \
+ char *new_library_path; \
+ const char *cur_library_path = g_getenv(LD_LIBRARY_PATH); \
if (!preload) { \
newenv = (char *) libs; \
} else { \
newenv = g_strdup_printf("%s:%s", libs, preload); \
} \
+ if (!cur_library_path) { \
+ new_library_path = (char *) abs_builddir; \
+ } else { \
+ new_library_path = g_strdup_printf("%s:%s", abs_builddir, cur_library_path); \
+ } \
g_setenv(PRELOAD_VAR, newenv, TRUE); \
+ g_setenv(LD_LIBRARY_PATH, new_library_path, TRUE); \
FORCE_FLAT_NAMESPACE \
execv(argv[0], argv); \
} \
return virTestMain(argc, argv, func, __VA_ARGS__, NULL); \
}
-#define VIR_TEST_MOCK(mock) (abs_builddir "/lib" mock "mock" MOCK_EXT)
+#define VIR_TEST_MOCK(mock) ("lib" mock "mock" MOCK_EXT)
virCaps *virTestGenericCapsInit(void);
virCapsHostNUMA *virTestCapsBuildNUMATopology(int seq);