mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-24 14:49:42 -06:00
UnitTests: make it possible to build tests for code that has global dependencies
This commit is contained in:
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -1 +1 @@
|
||||
add_dolphin_test(MMIOTest MMIOTest.cpp core)
|
||||
add_dolphin_test(MMIOTest MMIOTest.cpp)
|
||||
|
9
Source/UnitTests/TestUtils/CMakeLists.txt
Normal file
9
Source/UnitTests/TestUtils/CMakeLists.txt
Normal file
@ -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}")
|
34
Source/UnitTests/TestUtils/StubHost.cpp
Normal file
34
Source/UnitTests/TestUtils/StubHost.cpp
Normal file
@ -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; }
|
Reference in New Issue
Block a user