mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-02-21 11:37:14 +01:00
UnitTests: make it possible to build tests for code that has global dependencies
This commit is contained in:
parent
226a9c2392
commit
8b26d7bf1e
@ -48,6 +48,11 @@ if(WIN32)
|
|||||||
set(SRCS ${SRCS} ExtendedTrace.cpp)
|
set(SRCS ${SRCS} ExtendedTrace.cpp)
|
||||||
endif(WIN32)
|
endif(WIN32)
|
||||||
|
|
||||||
|
set(LIBS "${CMAKE_THREAD_LIBS_INIT}")
|
||||||
|
if((NOT ${CMAKE_SYSTEM_NAME} MATCHES "Darwin") AND (NOT ANDROID))
|
||||||
|
set(LIBS ${LIBS} rt)
|
||||||
|
endif()
|
||||||
|
|
||||||
enable_precompiled_headers(stdafx.h stdafx.cpp SRCS)
|
enable_precompiled_headers(stdafx.h stdafx.cpp SRCS)
|
||||||
|
|
||||||
add_dolphin_library(common "${SRCS}" "${CMAKE_THREAD_LIBS_INIT}")
|
add_dolphin_library(common "${SRCS}" "${LIBS}")
|
||||||
|
@ -221,7 +221,18 @@ if(_M_ARM_32)
|
|||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(LIBS bdisasm inputcommon videoogl videosoftware sfml-network)
|
set(LIBS
|
||||||
|
audiocommon
|
||||||
|
bdisasm
|
||||||
|
common
|
||||||
|
discio
|
||||||
|
inputcommon
|
||||||
|
${LZO}
|
||||||
|
sfml-network
|
||||||
|
videoogl
|
||||||
|
videosoftware
|
||||||
|
z
|
||||||
|
)
|
||||||
|
|
||||||
if(LIBUSB_FOUND)
|
if(LIBUSB_FOUND)
|
||||||
# Using shared LibUSB
|
# Using shared LibUSB
|
||||||
@ -236,6 +247,8 @@ if(WIN32)
|
|||||||
HW/WiimoteReal/IOWin.cpp)
|
HW/WiimoteReal/IOWin.cpp)
|
||||||
elseif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
elseif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
||||||
set(SRCS ${SRCS} HW/BBA-TAP/TAP_Apple.cpp HW/WiimoteReal/IOdarwin.mm)
|
set(SRCS ${SRCS} HW/BBA-TAP/TAP_Apple.cpp HW/WiimoteReal/IOdarwin.mm)
|
||||||
|
set(LIBS ${LIBS}
|
||||||
|
${IOB_LIBRARY})
|
||||||
elseif(UNIX)
|
elseif(UNIX)
|
||||||
set(SRCS ${SRCS} HW/BBA-TAP/TAP_Unix.cpp)
|
set(SRCS ${SRCS} HW/BBA-TAP/TAP_Unix.cpp)
|
||||||
if((${CMAKE_SYSTEM_NAME} MATCHES "Linux") AND BLUEZ_FOUND)
|
if((${CMAKE_SYSTEM_NAME} MATCHES "Linux") AND BLUEZ_FOUND)
|
||||||
|
@ -4,41 +4,17 @@ endif()
|
|||||||
|
|
||||||
set(LIBS core
|
set(LIBS core
|
||||||
${LZO}
|
${LZO}
|
||||||
discio
|
|
||||||
bdisasm
|
|
||||||
inputcommon
|
|
||||||
common
|
|
||||||
audiocommon
|
|
||||||
z
|
|
||||||
sfml-network
|
|
||||||
${GTK2_LIBRARIES})
|
${GTK2_LIBRARIES})
|
||||||
|
|
||||||
if((NOT ${CMAKE_SYSTEM_NAME} MATCHES "Darwin") AND (NOT ANDROID))
|
|
||||||
set(LIBS ${LIBS} rt)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(NOT ANDROID)
|
if(NOT ANDROID)
|
||||||
if(USE_X11)
|
if(USE_X11)
|
||||||
set(LIBS ${LIBS} ${X11_LIBRARIES}
|
set(LIBS ${LIBS} ${XRANDR_LIBRARIES})
|
||||||
${XINPUT2_LIBRARIES}
|
|
||||||
${XRANDR_LIBRARIES})
|
|
||||||
endif()
|
endif()
|
||||||
if(USE_WAYLAND)
|
if(USE_WAYLAND)
|
||||||
set(LIBS ${LIBS} ${WAYLAND_LIBRARIES}
|
set(LIBS ${LIBS} ${WAYLAND_LIBRARIES} ${XKBCOMMON_LIBRARIES})
|
||||||
${XKBCOMMON_LIBRARIES})
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
link_directories(${CMAKE_PREFIX_PATH}/lib)
|
link_directories(${CMAKE_PREFIX_PATH}/lib)
|
||||||
|
|
||||||
if(SDL2_FOUND)
|
|
||||||
# Using shared SDL2
|
|
||||||
set(LIBS ${LIBS} ${SDL2_LIBRARY})
|
|
||||||
else(SDL2_FOUND)
|
|
||||||
if(SDL_FOUND)
|
|
||||||
# Using shared SDL
|
|
||||||
set(LIBS ${LIBS} ${SDL_LIBRARY})
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
else()
|
else()
|
||||||
set(LIBS ${LIBS} png iconv)
|
set(LIBS ${LIBS} png iconv)
|
||||||
endif()
|
endif()
|
||||||
@ -135,7 +111,6 @@ elseif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
|||||||
${COREAUDIO_LIBRARY}
|
${COREAUDIO_LIBRARY}
|
||||||
${COREFUND_LIBRARY}
|
${COREFUND_LIBRARY}
|
||||||
${CORESERV_LIBRARY}
|
${CORESERV_LIBRARY}
|
||||||
${IOB_LIBRARY}
|
|
||||||
${IOK_LIBRARY}
|
${IOK_LIBRARY}
|
||||||
${FORCEFEEDBACK}
|
${FORCEFEEDBACK}
|
||||||
)
|
)
|
||||||
|
@ -4,6 +4,9 @@ set(SRCS ControllerEmu.cpp
|
|||||||
ControllerInterface/Device.cpp
|
ControllerInterface/Device.cpp
|
||||||
ControllerInterface/ExpressionParser.cpp)
|
ControllerInterface/ExpressionParser.cpp)
|
||||||
|
|
||||||
|
|
||||||
|
set(LIBS common)
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
set(SRCS ${SRCS}
|
set(SRCS ${SRCS}
|
||||||
ControllerInterface/DInput/DInput.cpp
|
ControllerInterface/DInput/DInput.cpp
|
||||||
@ -24,6 +27,7 @@ elseif(X11_FOUND)
|
|||||||
set(SRCS ${SRCS}
|
set(SRCS ${SRCS}
|
||||||
ControllerInterface/Xlib/XInput2.cpp)
|
ControllerInterface/Xlib/XInput2.cpp)
|
||||||
endif()
|
endif()
|
||||||
|
set(LIBS ${LIBS} ${X11_LIBRARIES} ${XINPUT2_LIBRARIES})
|
||||||
elseif(ANDROID)
|
elseif(ANDROID)
|
||||||
set(SRCS ${SRCS}
|
set(SRCS ${SRCS}
|
||||||
ControllerInterface/Android/Android.cpp)
|
ControllerInterface/Android/Android.cpp)
|
||||||
@ -31,6 +35,11 @@ endif()
|
|||||||
|
|
||||||
if(SDL_FOUND OR SDL2_FOUND)
|
if(SDL_FOUND OR SDL2_FOUND)
|
||||||
set(SRCS ${SRCS} ControllerInterface/SDL/SDL.cpp)
|
set(SRCS ${SRCS} ControllerInterface/SDL/SDL.cpp)
|
||||||
|
if (SDL2_FOUND)
|
||||||
|
set(LIBS ${LIBS} ${SDL2_LIBRARY})
|
||||||
|
elseif(SDL_FOUND)
|
||||||
|
set(LIBS ${LIBS} ${SDL_LIBRARY})
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_dolphin_library(inputcommon "${SRCS}" "")
|
add_dolphin_library(inputcommon "${SRCS}" "${LIBS}")
|
||||||
|
@ -1,12 +1,19 @@
|
|||||||
macro(add_dolphin_test target srcs libs)
|
macro(add_dolphin_test target srcs)
|
||||||
add_executable(Tests/${target} EXCLUDE_FROM_ALL ${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}
|
add_custom_command(TARGET Tests/${target}
|
||||||
PRE_LINK
|
PRE_LINK
|
||||||
COMMAND mkdir -p ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/Tests)
|
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_dependencies(unittests Tests/${target})
|
||||||
add_test(NAME ${target} COMMAND ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/Tests/${target})
|
add_test(NAME ${target} COMMAND ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/Tests/${target})
|
||||||
endmacro(add_dolphin_test)
|
endmacro(add_dolphin_test)
|
||||||
|
|
||||||
|
add_subdirectory(TestUtils)
|
||||||
|
|
||||||
add_subdirectory(Common)
|
add_subdirectory(Common)
|
||||||
add_subdirectory(Core)
|
add_subdirectory(Core)
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
add_dolphin_test(BitFieldTest BitFieldTest.cpp common)
|
add_dolphin_test(BitFieldTest BitFieldTest.cpp)
|
||||||
add_dolphin_test(CommonFuncsTest CommonFuncsTest.cpp common)
|
add_dolphin_test(CommonFuncsTest CommonFuncsTest.cpp)
|
||||||
add_dolphin_test(EventTest EventTest.cpp common)
|
add_dolphin_test(EventTest EventTest.cpp)
|
||||||
add_dolphin_test(FifoQueueTest FifoQueueTest.cpp common)
|
add_dolphin_test(FifoQueueTest FifoQueueTest.cpp)
|
||||||
add_dolphin_test(FixedSizeQueueTest FixedSizeQueueTest.cpp common)
|
add_dolphin_test(FixedSizeQueueTest FixedSizeQueueTest.cpp)
|
||||||
add_dolphin_test(FlagTest FlagTest.cpp common)
|
add_dolphin_test(FlagTest FlagTest.cpp)
|
||||||
add_dolphin_test(MathUtilTest MathUtilTest.cpp common)
|
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; }
|
Loading…
x
Reference in New Issue
Block a user