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:
Gavin Bisesi 2015-09-27 23:39:02 -04:00 committed by Fabio Bas
parent cd02df78a1
commit 3ebe42c400
6 changed files with 75 additions and 6 deletions

View file

@ -232,3 +232,28 @@ if(WITH_ORACLE)
add_subdirectory(oracle)
SET(CPACK_INSTALL_CMAKE_PROJECTS "release/oracle.app;oracle;ALL;/" ${CPACK_INSTALL_CMAKE_PROJECTS})
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()

View file

@ -341,3 +341,11 @@ option(PORTABLE "portable build" OFF)
IF(PORTABLE)
add_definitions(-DPORTABLE_BUILD)
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()

View 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
View 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 ""
)

View file

@ -11,11 +11,12 @@ fi
if [[ $TRAVIS_OS_NAME == "linux" && $QT4 == 0 ]]; then
prefix="-DCMAKE_PREFIX_PATH=/opt/qt52/lib/cmake/"
fi
cmake .. -DWITH_SERVER=1 -DCMAKE_BUILD_TYPE=$BUILDTYPE -DWITH_QT4=$QT4 $prefix
if [[ $BUILDTYPE == "Debug" ]]; then
cmake .. -DWITH_SERVER=1 -DCMAKE_BUILD_TYPE=$BUILDTYPE -Dtest=ON -DWITH_QT4=$QT4 $prefix
make -j2
make test
else
cmake .. -DWITH_SERVER=1 -DCMAKE_BUILD_TYPE=$BUILDTYPE -DWITH_QT4=$QT4 $prefix
make package -j2
fi

View file

@ -7,15 +7,19 @@ if [[ $TRAVIS_OS_NAME == "osx" ]] ; then
else
brew install qt5 protobuf libgcrypt > /dev/null
fi
brew unlink cmake
brew upgrade cmake
else
if (( QT4 )); then
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
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:kalakris/cmake
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
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