aboutsummaryrefslogtreecommitdiff
path: root/lldb/packages/Python/lldbsuite/test
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test')
-rw-r--r--lldb/packages/Python/lldbsuite/test/lldbplatformutil.py9
-rw-r--r--lldb/packages/Python/lldbsuite/test/make/Makefile.rules2
-rw-r--r--lldb/packages/Python/lldbsuite/test/make/dylib.h55
-rw-r--r--lldb/packages/Python/lldbsuite/test/make/test_common.h13
4 files changed, 70 insertions, 9 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/lldbplatformutil.py b/lldb/packages/Python/lldbsuite/test/lldbplatformutil.py
index 32c9c20..44659ca 100644
--- a/lldb/packages/Python/lldbsuite/test/lldbplatformutil.py
+++ b/lldb/packages/Python/lldbsuite/test/lldbplatformutil.py
@@ -166,19 +166,20 @@ def findMainThreadCheckerDylib():
class _PlatformContext(object):
"""Value object class which contains platform-specific options."""
- def __init__(self, shlib_environment_var, shlib_prefix, shlib_extension):
+ def __init__(self, shlib_environment_var, shlib_path_separator, shlib_prefix, shlib_extension):
self.shlib_environment_var = shlib_environment_var
+ self.shlib_path_separator = shlib_path_separator
self.shlib_prefix = shlib_prefix
self.shlib_extension = shlib_extension
def createPlatformContext():
if platformIsDarwin():
- return _PlatformContext('DYLD_LIBRARY_PATH', 'lib', 'dylib')
+ return _PlatformContext('DYLD_LIBRARY_PATH', ':', 'lib', 'dylib')
elif getPlatform() in ("freebsd", "linux", "netbsd"):
- return _PlatformContext('LD_LIBRARY_PATH', 'lib', 'so')
+ return _PlatformContext('LD_LIBRARY_PATH', ':', 'lib', 'so')
else:
- return None
+ return _PlatformContext('PATH', ';', '', 'dll')
def hasChattyStderr(test_case):
diff --git a/lldb/packages/Python/lldbsuite/test/make/Makefile.rules b/lldb/packages/Python/lldbsuite/test/make/Makefile.rules
index 4ae5456..ea0fa74 100644
--- a/lldb/packages/Python/lldbsuite/test/make/Makefile.rules
+++ b/lldb/packages/Python/lldbsuite/test/make/Makefile.rules
@@ -474,7 +474,7 @@ endif
# Additional system libraries
#----------------------------------------------------------------------
ifeq (1,$(USE_LIBDL))
- ifneq ($(OS),NetBSD)
+ ifeq (,$(filter $(OS), NetBSD Windows_NT))
LDFLAGS += -ldl
endif
endif
diff --git a/lldb/packages/Python/lldbsuite/test/make/dylib.h b/lldb/packages/Python/lldbsuite/test/make/dylib.h
new file mode 100644
index 0000000..50abcdb
--- /dev/null
+++ b/lldb/packages/Python/lldbsuite/test/make/dylib.h
@@ -0,0 +1,55 @@
+#ifndef LLDB_TEST_DYLIB_H
+#define LLDB_TEST_DYLIB_H
+
+#include <stdio.h>
+
+#ifdef _WIN32
+#include <Windows.h>
+
+#define dylib_get_symbol(handle, name) GetProcAddress((HMODULE)handle, name)
+#define dylib_close(handle) (!FreeLibrary((HMODULE)handle))
+#else
+#include <dlfcn.h>
+
+#define dylib_get_symbol(handle, name) dlsym(handle, name)
+#define dylib_close(handle) dlclose(handle)
+#endif
+
+
+inline void *dylib_open(const char *name) {
+ char dylib_prefix[] =
+#ifdef _WIN32
+ "";
+#else
+ "lib";
+#endif
+ char dylib_suffix[] =
+#ifdef _WIN32
+ ".dll";
+#elif defined(__APPLE__)
+ ".dylib";
+#else
+ ".so";
+#endif
+ char fullname[1024];
+ snprintf(fullname, sizeof(fullname), "%s%s%s", dylib_prefix, name, dylib_suffix);
+#ifdef _WIN32
+ return LoadLibraryA(fullname);
+#else
+ return dlopen(fullname, RTLD_NOW);
+#endif
+}
+
+inline const char *dylib_last_error() {
+#ifndef _WIN32
+ return dlerror();
+#else
+ DWORD err = GetLastError();
+ char *msg;
+ FormatMessageA(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
+ NULL, err, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (char *)&msg, 0, NULL);
+ return msg;
+#endif
+}
+
+#endif
diff --git a/lldb/packages/Python/lldbsuite/test/make/test_common.h b/lldb/packages/Python/lldbsuite/test/make/test_common.h
index 529d095..aa8960e 100644
--- a/lldb/packages/Python/lldbsuite/test/make/test_common.h
+++ b/lldb/packages/Python/lldbsuite/test/make/test_common.h
@@ -1,13 +1,18 @@
// This header is included in all the test programs (C and C++) and provides a
// hook for dealing with platform-specifics.
+
#if defined(_WIN32) || defined(_WIN64)
-#ifdef COMPILING_LLDB_TEST_DLL
-#define LLDB_TEST_API __declspec(dllexport)
+#define LLDB_DYLIB_EXPORT __declspec(dllexport)
+#define LLDB_DYLIB_IMPORT __declspec(dllimport)
#else
-#define LLDB_TEST_API __declspec(dllimport)
+#define LLDB_DYLIB_EXPORT
+#define LLDB_DYLIB_IMPORT
#endif
+
+#ifdef COMPILING_LLDB_TEST_DLL
+#define LLDB_TEST_API LLDB_DYLIB_EXPORT
#else
-#define LLDB_TEST_API
+#define LLDB_TEST_API LLDB_DYLIB_IMPORT
#endif
#if defined(_WIN32)