diff options
-rw-r--r-- | lldb/CMakeLists.txt | 1 | ||||
-rw-r--r-- | lldb/cmake/modules/LLDBConfig.cmake | 2 | ||||
-rw-r--r-- | lldb/gtest/CMakeLists.txt | 21 | ||||
-rw-r--r-- | lldb/gtest/include/gtest_common.h | 32 | ||||
-rw-r--r-- | lldb/gtest/unittest/CMakeLists.txt | 3 | ||||
-rw-r--r-- | lldb/gtest/unittest/Host/CMakeLists.txt | 5 | ||||
-rw-r--r-- | lldb/gtest/unittest/Plugins/CMakeLists.txt | 1 | ||||
-rw-r--r-- | lldb/gtest/unittest/Plugins/Process/CMakeLists.txt | 3 | ||||
-rw-r--r-- | lldb/gtest/unittest/Plugins/Process/Linux/CMakeLists.txt | 4 | ||||
-rw-r--r-- | lldb/gtest/unittest/Utility/CMakeLists.txt | 4 |
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
+ )
|