Merge pull request #1564 from MerryMage/this-is-only-a-test

tests: Infrastructure for unit tests
This commit is contained in:
bunnei 2016-05-21 10:15:13 -04:00
commit 5edff287b6
8 changed files with 48 additions and 2 deletions

3
.gitmodules vendored
View File

@ -10,3 +10,6 @@
[submodule "soundtouch"] [submodule "soundtouch"]
path = externals/soundtouch path = externals/soundtouch
url = https://github.com/citra-emu/ext-soundtouch.git url = https://github.com/citra-emu/ext-soundtouch.git
[submodule "catch"]
path = externals/catch
url = https://github.com/philsquared/Catch.git

View File

@ -18,9 +18,16 @@ if [ "$TRAVIS_OS_NAME" = "linux" -o -z "$TRAVIS_OS_NAME" ]; then
mkdir build && cd build mkdir build && cd build
cmake -DCITRA_FORCE_QT4=ON .. cmake -DCITRA_FORCE_QT4=ON ..
make -j4 make -j4
ctest -VV -C Release
elif [ "$TRAVIS_OS_NAME" = "osx" ]; then elif [ "$TRAVIS_OS_NAME" = "osx" ]; then
set -o pipefail
export Qt5_DIR=$(brew --prefix)/opt/qt5 export Qt5_DIR=$(brew --prefix)/opt/qt5
mkdir build && cd build mkdir build && cd build
cmake .. -GXcode cmake .. -GXcode
xcodebuild -configuration Release | xcpretty -c && exit ${PIPESTATUS[0]} xcodebuild -configuration Release | xcpretty -c
ctest -VV -C Release
fi fi

View File

@ -255,6 +255,8 @@ endif()
add_subdirectory(externals/soundtouch) add_subdirectory(externals/soundtouch)
enable_testing()
add_subdirectory(src) add_subdirectory(src)
# Install freedesktop.org metadata files, following those specifications: # Install freedesktop.org metadata files, following those specifications:

View File

@ -22,7 +22,14 @@ before_build:
- cmake -G "Visual Studio 14 2015 Win64" -DCITRA_USE_BUNDLED_QT=1 -DCITRA_USE_BUNDLED_SDL2=1 .. - cmake -G "Visual Studio 14 2015 Win64" -DCITRA_USE_BUNDLED_QT=1 -DCITRA_USE_BUNDLED_SDL2=1 ..
- cd .. - cd ..
after_build: build:
project: build/citra.sln
parallel: true
test_script:
- cd build && ctest -VV -C Release
on_success:
# copying the needed QT Dlls is now done post build. See the CMakeLists.txt file in the citra-qt folder # copying the needed QT Dlls is now done post build. See the CMakeLists.txt file in the citra-qt folder
- ps: > - ps: >
if (!"$env:APPVEYOR_PULL_REQUEST_TITLE" -and ("$env:APPVEYOR_REPO_BRANCH" -eq "master")) if (!"$env:APPVEYOR_PULL_REQUEST_TITLE" -and ("$env:APPVEYOR_REPO_BRANCH" -eq "master"))

1
externals/catch vendored Submodule

@ -0,0 +1 @@
Subproject commit c984fc3ecde60b59efa2203e82261acac8ac8502

View File

@ -5,6 +5,7 @@ add_subdirectory(common)
add_subdirectory(core) add_subdirectory(core)
add_subdirectory(video_core) add_subdirectory(video_core)
add_subdirectory(audio_core) add_subdirectory(audio_core)
add_subdirectory(tests)
if (ENABLE_SDL2) if (ENABLE_SDL2)
add_subdirectory(citra) add_subdirectory(citra)
endif() endif()

16
src/tests/CMakeLists.txt Normal file
View File

@ -0,0 +1,16 @@
set(SRCS
tests.cpp
)
set(HEADERS
)
create_directory_groups(${SRCS} ${HEADERS})
include_directories(../../externals/catch/single_include/)
add_executable(tests ${SRCS} ${HEADERS})
target_link_libraries(tests core video_core audio_core common)
target_link_libraries(tests ${PLATFORM_LIBRARIES})
add_test(NAME tests COMMAND $<TARGET_FILE:tests>)

9
src/tests/tests.cpp Normal file
View File

@ -0,0 +1,9 @@
// Copyright 2016 Citra Emulator Project
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
#define CATCH_CONFIG_MAIN
#include <catch.hpp>
// Catch provides the main function since we've given it the
// CATCH_CONFIG_MAIN preprocessor directive.