Add dummy googletest
Uses the built in cmake -Dtest=ON It should download googletest on the fly if needed. Adds a new make target, `make test` Ref #167
This commit is contained in:
parent
cd02df78a1
commit
3ebe42c400
6 changed files with 75 additions and 6 deletions
|
@ -232,3 +232,28 @@ if(WITH_ORACLE)
|
||||||
add_subdirectory(oracle)
|
add_subdirectory(oracle)
|
||||||
SET(CPACK_INSTALL_CMAKE_PROJECTS "release/oracle.app;oracle;ALL;/" ${CPACK_INSTALL_CMAKE_PROJECTS})
|
SET(CPACK_INSTALL_CMAKE_PROJECTS "release/oracle.app;oracle;ALL;/" ${CPACK_INSTALL_CMAKE_PROJECTS})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(test)
|
||||||
|
find_package(Gtest REQUIRED)
|
||||||
|
if(GTEST_FOUND)
|
||||||
|
include_directories(${GTEST_INCLUDE_DIRS})
|
||||||
|
else()
|
||||||
|
message(STATUS "Downloading googletest")
|
||||||
|
configure_file(gtest-CMakeLists.txt gtest-download/CMakeLists.txt)
|
||||||
|
execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" .
|
||||||
|
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/gtest-download )
|
||||||
|
execute_process(COMMAND ${CMAKE_COMMAND} --build .
|
||||||
|
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/gtest-download )
|
||||||
|
|
||||||
|
# Add gtest directly to our build
|
||||||
|
add_subdirectory(${CMAKE_BINARY_DIR}/gtest-src
|
||||||
|
${CMAKE_BINARY_DIR}/gtest-build
|
||||||
|
EXCLUDE_FROM_ALL )
|
||||||
|
|
||||||
|
# Add the gtest include directory, since gtest
|
||||||
|
# doesn't add that dependency to its gtest target
|
||||||
|
target_include_directories(gtest INTERFACE
|
||||||
|
"${CMAKE_BINARY_DIR}/gtest-src/include" )
|
||||||
|
endif()
|
||||||
|
enable_testing()
|
||||||
|
endif()
|
||||||
|
|
|
@ -341,3 +341,11 @@ option(PORTABLE "portable build" OFF)
|
||||||
IF(PORTABLE)
|
IF(PORTABLE)
|
||||||
add_definitions(-DPORTABLE_BUILD)
|
add_definitions(-DPORTABLE_BUILD)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(test)
|
||||||
|
enable_testing()
|
||||||
|
message(STATUS "Adding tests")
|
||||||
|
add_executable(cockatrice_test test/dummy_test.cpp)
|
||||||
|
target_link_libraries(cockatrice_test gtest_main)
|
||||||
|
add_test(NAME cockatrice_test COMMAND cockatrice_test)
|
||||||
|
endif()
|
16
cockatrice/test/dummy_test.cpp
Normal file
16
cockatrice/test/dummy_test.cpp
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
#include "gtest/gtest.h"
|
||||||
|
|
||||||
|
namespace {
|
||||||
|
class FooTest : public ::testing::Test {
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
TEST(DummyTest, Works) {
|
||||||
|
ASSERT_EQ(1, 1) << "One is not equal to one";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(int argc, char **argv) {
|
||||||
|
::testing::InitGoogleTest(&argc, argv);
|
||||||
|
return RUN_ALL_TESTS();
|
||||||
|
}
|
15
gtest-CMakeLists.txt
Normal file
15
gtest-CMakeLists.txt
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
cmake_minimum_required(VERSION 3.2)
|
||||||
|
|
||||||
|
project(gtest-download LANGUAGES NONE)
|
||||||
|
|
||||||
|
include(ExternalProject)
|
||||||
|
ExternalProject_Add(googletest
|
||||||
|
URL https://googletest.googlecode.com/files/gtest-1.7.0.zip
|
||||||
|
URL_HASH SHA1=f85f6d2481e2c6c4a18539e391aa4ea8ab0394af
|
||||||
|
SOURCE_DIR "${CMAKE_BINARY_DIR}/gtest-src"
|
||||||
|
BINARY_DIR "${CMAKE_BINARY_DIR}/gtest-build"
|
||||||
|
CONFIGURE_COMMAND ""
|
||||||
|
BUILD_COMMAND ""
|
||||||
|
INSTALL_COMMAND ""
|
||||||
|
TEST_COMMAND ""
|
||||||
|
)
|
|
@ -11,11 +11,12 @@ fi
|
||||||
if [[ $TRAVIS_OS_NAME == "linux" && $QT4 == 0 ]]; then
|
if [[ $TRAVIS_OS_NAME == "linux" && $QT4 == 0 ]]; then
|
||||||
prefix="-DCMAKE_PREFIX_PATH=/opt/qt52/lib/cmake/"
|
prefix="-DCMAKE_PREFIX_PATH=/opt/qt52/lib/cmake/"
|
||||||
fi
|
fi
|
||||||
cmake .. -DWITH_SERVER=1 -DCMAKE_BUILD_TYPE=$BUILDTYPE -DWITH_QT4=$QT4 $prefix
|
|
||||||
|
|
||||||
if [[ $BUILDTYPE == "Debug" ]]; then
|
if [[ $BUILDTYPE == "Debug" ]]; then
|
||||||
|
cmake .. -DWITH_SERVER=1 -DCMAKE_BUILD_TYPE=$BUILDTYPE -Dtest=ON -DWITH_QT4=$QT4 $prefix
|
||||||
make -j2
|
make -j2
|
||||||
|
make test
|
||||||
else
|
else
|
||||||
|
cmake .. -DWITH_SERVER=1 -DCMAKE_BUILD_TYPE=$BUILDTYPE -DWITH_QT4=$QT4 $prefix
|
||||||
make package -j2
|
make package -j2
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -7,15 +7,19 @@ if [[ $TRAVIS_OS_NAME == "osx" ]] ; then
|
||||||
else
|
else
|
||||||
brew install qt5 protobuf libgcrypt > /dev/null
|
brew install qt5 protobuf libgcrypt > /dev/null
|
||||||
fi
|
fi
|
||||||
|
brew unlink cmake
|
||||||
|
brew upgrade cmake
|
||||||
else
|
else
|
||||||
if (( QT4 )); then
|
if (( QT4 )); then
|
||||||
sudo apt-get update -qq
|
sudo apt-get update -qq
|
||||||
sudo apt-get install -y qtmobility-dev libprotobuf-dev protobuf-compiler libqt4-dev
|
sudo apt-get install -y qtmobility-dev libqt4-dev
|
||||||
else
|
else
|
||||||
|
sudo add-apt-repository -y ppa:george-edison55/precise-backports
|
||||||
sudo add-apt-repository -y ppa:beineri/opt-qt521
|
sudo add-apt-repository -y ppa:beineri/opt-qt521
|
||||||
sudo add-apt-repository -y ppa:kalakris/cmake
|
|
||||||
sudo apt-get update -qq
|
sudo apt-get update -qq
|
||||||
sudo apt-get install -y libprotobuf-dev protobuf-compiler cmake libsqlite3-dev\
|
sudo apt-get install -y libsqlite3-dev\
|
||||||
qt52base qt52webkit qt52tools qt52svg qt52multimedia
|
qt52base qt52webkit qt52tools qt52svg qt52multimedia
|
||||||
fi
|
fi
|
||||||
|
sudo apt-get install -y cmake libgtest-dev libprotobuf-dev protobuf-compiler
|
||||||
|
cd /usr/src/gtest && sudo cmake . && sudo cmake --build . && sudo mv libg* /usr/local/lib/ ; cd -
|
||||||
fi
|
fi
|
||||||
|
|
Loading…
Reference in a new issue