summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lldb/CMakeLists.txt1
-rw-r--r--lldb/cmake/modules/LLDBConfig.cmake2
-rw-r--r--lldb/gtest/CMakeLists.txt21
-rw-r--r--lldb/gtest/include/gtest_common.h32
-rw-r--r--lldb/gtest/unittest/CMakeLists.txt3
-rw-r--r--lldb/gtest/unittest/Host/CMakeLists.txt5
-rw-r--r--lldb/gtest/unittest/Plugins/CMakeLists.txt1
-rw-r--r--lldb/gtest/unittest/Plugins/Process/CMakeLists.txt3
-rw-r--r--lldb/gtest/unittest/Plugins/Process/Linux/CMakeLists.txt4
-rw-r--r--lldb/gtest/unittest/Utility/CMakeLists.txt4
10 files changed, 75 insertions, 1 deletions
diff --git a/lldb/CMakeLists.txt b/lldb/CMakeLists.txt
index fa98bd3636f..4629f40f081 100644
--- a/lldb/CMakeLists.txt
+++ b/lldb/CMakeLists.txt
@@ -10,6 +10,7 @@ endif ()
add_subdirectory(source)
add_subdirectory(test)
add_subdirectory(tools)
+add_subdirectory(gtest)
if ( LLDB_ENABLE_PYTHON_SCRIPTS_SWIG_API_GENERATION AND NOT LLDB_DISABLE_PYTHON )
diff --git a/lldb/cmake/modules/LLDBConfig.cmake b/lldb/cmake/modules/LLDBConfig.cmake
index adfe8048fce..a678eb5c4e4 100644
--- a/lldb/cmake/modules/LLDBConfig.cmake
+++ b/lldb/cmake/modules/LLDBConfig.cmake
@@ -25,7 +25,7 @@ set(LLDB_ENABLE_PYTHON_SCRIPTS_SWIG_API_GENERATION ${LLDB_DEFAULT_ENABLE_PYTHON_
"Enables using new Python scripts for SWIG API generation .")
set(LLDB_SOURCE_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/source")
-set(LLDB_INCLUDE_ROOT "${LLDB_INCLUDE_ROOT}/include")
+set(LLDB_INCLUDE_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/include")
set(LLDB_DISABLE_PYTHON 0 CACHE BOOL "Disables the Python scripting integration.")
diff --git a/lldb/gtest/CMakeLists.txt b/lldb/gtest/CMakeLists.txt
new file mode 100644
index 00000000000..467dd128240
--- /dev/null
+++ b/lldb/gtest/CMakeLists.txt
@@ -0,0 +1,21 @@
+add_custom_target(LLDBUnitTests)
+set_target_properties(LLDBUnitTests PROPERTIES FOLDER "LLDB tests")
+
+include_directories(${LLDB_SOURCE_ROOT})
+
+set(LLDB_GTEST_COMMON_INCLUDE ${CMAKE_CURRENT_SOURCE_DIR}/include/gtest_common.h)
+if (MSVC)
+ list(APPEND LLVM_COMPILE_FLAGS /FI ${LLDB_GTEST_COMMON_INCLUDE})
+else ()
+ list(APPEND LLVM_COMPILE_FLAGS -include ${LLDB_GTEST_COMMON_INCLUDE})
+endif ()
+
+# add_lldb_unittest(test_dirname file1.cpp file2.cpp)
+#
+# Will compile the list of files together and link against the liblldb
+function(add_lldb_unittest test_name)
+ add_unittest(LLDBUnitTests ${test_name} ${ARGN})
+ target_link_libraries(${test_name} liblldb)
+endfunction()
+
+add_subdirectory(unittest)
diff --git a/lldb/gtest/include/gtest_common.h b/lldb/gtest/include/gtest_common.h
new file mode 100644
index 00000000000..228dfb0d328
--- /dev/null
+++ b/lldb/gtest/include/gtest_common.h
@@ -0,0 +1,32 @@
+//===-- gtest_common.h ------------------------------------------*- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#if defined(LLDB_GTEST_COMMON_H)
+#error "gtest_common.h should not be included manually."
+#else
+#define LLDB_GTEST_COMMON_H
+#endif
+
+// This header file is force included by all of LLDB's unittest compilation
+// units. Be very leary about putting anything in this file.
+
+#if defined(_MSC_VER) && (_HAS_EXCEPTIONS == 0)
+// MSVC's STL implementation tries to work well with /EHs-c- and
+// _HAS_EXCEPTIONS=0. But <thread> in particular doesn't work with it, because
+// it relies on <concrt.h> which tries to throw an exception without checking
+// for _HAS_EXCEPTIONS=0. This causes the linker to require a definition of
+// __uncaught_exception(), but the STL doesn't define this function when
+// _HAS_EXCEPTIONS=0. The workaround here is to just provide a stub
+// implementation to get it to link.
+inline bool
+__uncaught_exception()
+{
+ return true;
+}
+#endif
diff --git a/lldb/gtest/unittest/CMakeLists.txt b/lldb/gtest/unittest/CMakeLists.txt
new file mode 100644
index 00000000000..fd57dd92ec3
--- /dev/null
+++ b/lldb/gtest/unittest/CMakeLists.txt
@@ -0,0 +1,3 @@
+add_subdirectory(Host)
+add_subdirectory(Plugins)
+add_subdirectory(Utility)
diff --git a/lldb/gtest/unittest/Host/CMakeLists.txt b/lldb/gtest/unittest/Host/CMakeLists.txt
new file mode 100644
index 00000000000..227e48c1fd9
--- /dev/null
+++ b/lldb/gtest/unittest/Host/CMakeLists.txt
@@ -0,0 +1,5 @@
+add_lldb_unittest(HostTests
+ SocketAddressTest.cpp
+ SocketTest.cpp
+ SocketTestMock.cpp
+ )
diff --git a/lldb/gtest/unittest/Plugins/CMakeLists.txt b/lldb/gtest/unittest/Plugins/CMakeLists.txt
new file mode 100644
index 00000000000..422f203f227
--- /dev/null
+++ b/lldb/gtest/unittest/Plugins/CMakeLists.txt
@@ -0,0 +1 @@
+add_subdirectory(Process)
diff --git a/lldb/gtest/unittest/Plugins/Process/CMakeLists.txt b/lldb/gtest/unittest/Plugins/Process/CMakeLists.txt
new file mode 100644
index 00000000000..bf3426c02d0
--- /dev/null
+++ b/lldb/gtest/unittest/Plugins/Process/CMakeLists.txt
@@ -0,0 +1,3 @@
+if (CMAKE_SYSTEM_NAME MATCHES "Linux")
+ add_subdirectory(Linux)
+endif()
diff --git a/lldb/gtest/unittest/Plugins/Process/Linux/CMakeLists.txt b/lldb/gtest/unittest/Plugins/Process/Linux/CMakeLists.txt
new file mode 100644
index 00000000000..3d71f9a463a
--- /dev/null
+++ b/lldb/gtest/unittest/Plugins/Process/Linux/CMakeLists.txt
@@ -0,0 +1,4 @@
+add_lldb_unittest(ProcessLinuxTests
+ ThreadStateCoordinatorTest.cpp
+ ThreadStatecoordinatorMock.cpp
+ )
diff --git a/lldb/gtest/unittest/Utility/CMakeLists.txt b/lldb/gtest/unittest/Utility/CMakeLists.txt
new file mode 100644
index 00000000000..fea0f53fdd9
--- /dev/null
+++ b/lldb/gtest/unittest/Utility/CMakeLists.txt
@@ -0,0 +1,4 @@
+add_lldb_unittest(UtilityTests
+ StringExtractorTest.cpp
+ UriParserTest.cpp
+ )
OpenPOWER on IntegriCloud