diff options
| author | Pierre Bourdon <delroth@gmail.com> | 2014-08-01 23:23:52 -0700 |
|---|---|---|
| committer | Pierre Bourdon <delroth@gmail.com> | 2014-08-02 09:34:39 -0700 |
| commit | 8b26d7bf1ef478ff2f06d3cf0b0712418d1a8627 (patch) | |
| tree | 9611fbdb109eb470136d827aae43b5d9bfae7d0d /Source/UnitTests | |
| parent | 226a9c239220c5ba99508a6b96ce28903a35be80 (diff) | |
UnitTests: make it possible to build tests for code that has global dependencies
Diffstat (limited to 'Source/UnitTests')
| -rw-r--r-- | Source/UnitTests/CMakeLists.txt | 13 | ||||
| -rw-r--r-- | Source/UnitTests/Common/CMakeLists.txt | 14 | ||||
| -rw-r--r-- | Source/UnitTests/Core/CMakeLists.txt | 2 | ||||
| -rw-r--r-- | Source/UnitTests/TestUtils/CMakeLists.txt | 9 | ||||
| -rw-r--r-- | Source/UnitTests/TestUtils/StubHost.cpp | 34 |
5 files changed, 61 insertions, 11 deletions
diff --git a/Source/UnitTests/CMakeLists.txt b/Source/UnitTests/CMakeLists.txt index f75c6199d7..fc896f4e1b 100644 --- a/Source/UnitTests/CMakeLists.txt +++ b/Source/UnitTests/CMakeLists.txt @@ -1,12 +1,19 @@ -macro(add_dolphin_test target srcs libs) - add_executable(Tests/${target} EXCLUDE_FROM_ALL ${srcs}) +macro(add_dolphin_test target srcs) + # Since this is a Core dependency, it can't be linked as a library and has + # to be linked as an object file. Otherwise CMake inserts the library after + # core, but before other core dependencies like videocommon which also use + # Host_ functions. + set(srcs2 ${srcs} ${CMAKE_SOURCE_DIR}/Source/UnitTests/TestUtils/StubHost.cpp) + add_executable(Tests/${target} EXCLUDE_FROM_ALL ${srcs2}) add_custom_command(TARGET Tests/${target} PRE_LINK COMMAND mkdir -p ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/Tests) - target_link_libraries(Tests/${target} ${libs} gtest) + target_link_libraries(Tests/${target} core gtest) add_dependencies(unittests Tests/${target}) add_test(NAME ${target} COMMAND ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/Tests/${target}) endmacro(add_dolphin_test) +add_subdirectory(TestUtils) + add_subdirectory(Common) add_subdirectory(Core) diff --git a/Source/UnitTests/Common/CMakeLists.txt b/Source/UnitTests/Common/CMakeLists.txt index 42c0a8aaed..05337f4321 100644 --- a/Source/UnitTests/Common/CMakeLists.txt +++ b/Source/UnitTests/Common/CMakeLists.txt @@ -1,7 +1,7 @@ -add_dolphin_test(BitFieldTest BitFieldTest.cpp common) -add_dolphin_test(CommonFuncsTest CommonFuncsTest.cpp common) -add_dolphin_test(EventTest EventTest.cpp common) -add_dolphin_test(FifoQueueTest FifoQueueTest.cpp common) -add_dolphin_test(FixedSizeQueueTest FixedSizeQueueTest.cpp common) -add_dolphin_test(FlagTest FlagTest.cpp common) -add_dolphin_test(MathUtilTest MathUtilTest.cpp common) +add_dolphin_test(BitFieldTest BitFieldTest.cpp) +add_dolphin_test(CommonFuncsTest CommonFuncsTest.cpp) +add_dolphin_test(EventTest EventTest.cpp) +add_dolphin_test(FifoQueueTest FifoQueueTest.cpp) +add_dolphin_test(FixedSizeQueueTest FixedSizeQueueTest.cpp) +add_dolphin_test(FlagTest FlagTest.cpp) +add_dolphin_test(MathUtilTest MathUtilTest.cpp) diff --git a/Source/UnitTests/Core/CMakeLists.txt b/Source/UnitTests/Core/CMakeLists.txt index e52290e387..93f635a3ea 100644 --- a/Source/UnitTests/Core/CMakeLists.txt +++ b/Source/UnitTests/Core/CMakeLists.txt @@ -1 +1 @@ -add_dolphin_test(MMIOTest MMIOTest.cpp core) +add_dolphin_test(MMIOTest MMIOTest.cpp) diff --git a/Source/UnitTests/TestUtils/CMakeLists.txt b/Source/UnitTests/TestUtils/CMakeLists.txt new file mode 100644 index 0000000000..79424a42a6 --- /dev/null +++ b/Source/UnitTests/TestUtils/CMakeLists.txt @@ -0,0 +1,9 @@ +set(SRCS + # Do not add StubHost.cpp here - it is added manually via add_dolphin_test. + ) + +set(LIBS + ) + +# TODO: uncomment when there is actually something here. +#add_dolphin_library(testutils "${SRCS}" "${LIBS}") diff --git a/Source/UnitTests/TestUtils/StubHost.cpp b/Source/UnitTests/TestUtils/StubHost.cpp new file mode 100644 index 0000000000..7dc5871c8e --- /dev/null +++ b/Source/UnitTests/TestUtils/StubHost.cpp @@ -0,0 +1,34 @@ +// Copyright 2014 Dolphin Emulator Project +// Licensed under GPLv2 +// Refer to the license.txt file included. + +// Stub implementation of the Host_* callbacks for tests. These implementations +// do nothing except return default values when required. + +#include <string> + +#include "Core/Host.h" +#include "VideoBackends/OGL/GLInterfaceBase.h" + +void Host_NotifyMapLoaded() {} +void Host_RefreshDSPDebuggerWindow() {} +void Host_ShowJitResults(unsigned int) {} +void Host_Message(int) {} +void* Host_GetRenderHandle() { return nullptr; } +void* Host_GetInstance() { return nullptr; } +void Host_UpdateTitle(const std::string&) {} +void Host_UpdateLogDisplay() {} +void Host_UpdateDisasmDialog() {} +void Host_UpdateMainFrame() {} +void Host_UpdateBreakPointView() {} +void Host_GetRenderWindowSize(int&, int&, int&, int&) {} +void Host_RequestRenderWindowSize(int, int) {} +void Host_SetStartupDebuggingParameters() {} +bool Host_UIHasFocus() { return false; } +bool Host_RendererHasFocus() { return false; } +void Host_ConnectWiimote(int, bool) {} +void Host_UpdateStatusBar(const std::string&, int) {} +void Host_SysMessage(const char*, ...) {} +void Host_SetWiiMoteConnectionState(int) {} +void Host_ShowVideoConfig(void*, const std::string&, const std::string&) {} +cInterfaceBase* HostGL_CreateGLInterface() { return nullptr; } |
