Merge pull request #846 from chewi/tests
Add BARRIER_BUILD_TESTS and BARRIER_USE_EXTERNAL_GTEST CMake options
This commit is contained in:
commit
c3aba1b20b
|
@ -20,6 +20,8 @@ project (barrier C CXX)
|
||||||
|
|
||||||
option (BARRIER_BUILD_GUI "Build the GUI" ON)
|
option (BARRIER_BUILD_GUI "Build the GUI" ON)
|
||||||
option (BARRIER_BUILD_INSTALLER "Build the installer" ON)
|
option (BARRIER_BUILD_INSTALLER "Build the installer" ON)
|
||||||
|
option (BARRIER_BUILD_TESTS "Build the tests" ON)
|
||||||
|
option (BARRIER_USE_EXTERNAL_GTEST "Use external installation of Google Test framework" OFF)
|
||||||
|
|
||||||
set (CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
set (CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||||
set (CMAKE_CXX_STANDARD 14)
|
set (CMAKE_CXX_STANDARD 14)
|
||||||
|
@ -49,7 +51,6 @@ else()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set (libs)
|
set (libs)
|
||||||
include_directories (BEFORE SYSTEM ./ext/gtest/include)
|
|
||||||
|
|
||||||
if (UNIX)
|
if (UNIX)
|
||||||
if (NOT APPLE)
|
if (NOT APPLE)
|
||||||
|
|
|
@ -19,7 +19,10 @@ include_directories (${CMAKE_CURRENT_BINARY_DIR}/lib)
|
||||||
|
|
||||||
add_subdirectory(lib)
|
add_subdirectory(lib)
|
||||||
add_subdirectory(cmd)
|
add_subdirectory(cmd)
|
||||||
add_subdirectory(test)
|
|
||||||
|
if (BARRIER_BUILD_TESTS)
|
||||||
|
add_subdirectory(test)
|
||||||
|
endif()
|
||||||
|
|
||||||
if (BARRIER_BUILD_GUI)
|
if (BARRIER_BUILD_GUI)
|
||||||
add_subdirectory(gui)
|
add_subdirectory(gui)
|
||||||
|
|
|
@ -24,7 +24,9 @@
|
||||||
#include "common/stdset.h"
|
#include "common/stdset.h"
|
||||||
#include "common/stdvector.h"
|
#include "common/stdvector.h"
|
||||||
|
|
||||||
|
#ifdef TEST_ENV
|
||||||
#include <gtest/gtest_prod.h>
|
#include <gtest/gtest_prod.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
namespace barrier {
|
namespace barrier {
|
||||||
|
|
||||||
|
@ -327,6 +329,7 @@ public:
|
||||||
//@}
|
//@}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
#ifdef TEST_ENV
|
||||||
FRIEND_TEST(KeyMapTests,
|
FRIEND_TEST(KeyMapTests,
|
||||||
findBestKey_requiredDown_matchExactFirstItem);
|
findBestKey_requiredDown_matchExactFirstItem);
|
||||||
FRIEND_TEST(KeyMapTests,
|
FRIEND_TEST(KeyMapTests,
|
||||||
|
@ -340,6 +343,7 @@ private:
|
||||||
FRIEND_TEST(KeyMapTests,
|
FRIEND_TEST(KeyMapTests,
|
||||||
findBestKey_onlyOneRequiredDown_matchTwoRequiredChangesItem);
|
findBestKey_onlyOneRequiredDown_matchTwoRequiredChangesItem);
|
||||||
FRIEND_TEST(KeyMapTests, findBestKey_noRequiredDown_cannotMatch);
|
FRIEND_TEST(KeyMapTests, findBestKey_noRequiredDown_cannotMatch);
|
||||||
|
#endif
|
||||||
|
|
||||||
private:
|
private:
|
||||||
//! Ways to synthesize a key
|
//! Ways to synthesize a key
|
||||||
|
|
|
@ -14,19 +14,33 @@
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
include_directories(
|
if (BARRIER_USE_EXTERNAL_GTEST)
|
||||||
|
include (FindPkgConfig)
|
||||||
|
find_package(GTest REQUIRED)
|
||||||
|
pkg_check_modules(GMOCK REQUIRED gmock)
|
||||||
|
include_directories(
|
||||||
|
${GTEST_INCLUDE_DIRS}
|
||||||
|
${GMOCK_INCLUDE_DIRS}
|
||||||
|
)
|
||||||
|
else()
|
||||||
|
include_directories(
|
||||||
../../ext/gtest
|
../../ext/gtest
|
||||||
../../ext/gtest/include
|
../../ext/gtest/include
|
||||||
../../ext/gmock
|
../../ext/gmock
|
||||||
../../ext/gmock/include)
|
../../ext/gmock/include
|
||||||
|
)
|
||||||
|
|
||||||
add_library(gtest STATIC ../../ext/gtest/src/gtest-all.cc)
|
add_library(gtest STATIC ../../ext/gtest/src/gtest-all.cc)
|
||||||
add_library(gmock STATIC ../../ext/gmock/src/gmock-all.cc)
|
add_library(gmock STATIC ../../ext/gmock/src/gmock-all.cc)
|
||||||
|
|
||||||
if (UNIX)
|
set(GTEST_LIBRARIES gtest)
|
||||||
|
set(GMOCK_LIBRARIES gmock)
|
||||||
|
|
||||||
|
if (UNIX)
|
||||||
# ignore warnings in gtest and gmock
|
# ignore warnings in gtest and gmock
|
||||||
set_target_properties(gtest PROPERTIES COMPILE_FLAGS "-w")
|
set_target_properties(gtest PROPERTIES COMPILE_FLAGS "-w")
|
||||||
set_target_properties(gmock PROPERTIES COMPILE_FLAGS "-w")
|
set_target_properties(gmock PROPERTIES COMPILE_FLAGS "-w")
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_subdirectory(integtests)
|
add_subdirectory(integtests)
|
||||||
|
|
|
@ -68,8 +68,6 @@ endif()
|
||||||
|
|
||||||
include_directories(
|
include_directories(
|
||||||
../../
|
../../
|
||||||
../../../ext/gtest/include
|
|
||||||
../../../ext/gmock/include
|
|
||||||
)
|
)
|
||||||
|
|
||||||
if (UNIX)
|
if (UNIX)
|
||||||
|
@ -80,4 +78,4 @@ endif()
|
||||||
|
|
||||||
add_executable(integtests ${sources})
|
add_executable(integtests ${sources})
|
||||||
target_link_libraries(integtests
|
target_link_libraries(integtests
|
||||||
arch base client common io ipc mt net platform server synlib gtest gmock ${libs} ${OPENSSL_LIBS})
|
arch base client common io ipc mt net platform server synlib ${GTEST_LIBRARIES} ${GMOCK_LIBRARIES} ${libs} ${OPENSSL_LIBS})
|
||||||
|
|
|
@ -23,6 +23,7 @@
|
||||||
#include "platform/XWindowsScreenSaver.h"
|
#include "platform/XWindowsScreenSaver.h"
|
||||||
|
|
||||||
#include "test/global/gtest.h"
|
#include "test/global/gtest.h"
|
||||||
|
#include <cstdlib>
|
||||||
#include <X11/Xlib.h>
|
#include <X11/Xlib.h>
|
||||||
|
|
||||||
using ::testing::_;
|
using ::testing::_;
|
||||||
|
@ -30,7 +31,12 @@ using ::testing::_;
|
||||||
// TODO: not working on build machine for some reason
|
// TODO: not working on build machine for some reason
|
||||||
TEST(CXWindowsScreenSaverTests, activate_defaultScreen_todo)
|
TEST(CXWindowsScreenSaverTests, activate_defaultScreen_todo)
|
||||||
{
|
{
|
||||||
Display* display = XOpenDisplay(":0.0");
|
const char* displayName = std::getenv("DISPLAY");
|
||||||
|
if (displayName == NULL) {
|
||||||
|
displayName = ":0.0";
|
||||||
|
}
|
||||||
|
|
||||||
|
Display* display = XOpenDisplay(displayName);
|
||||||
Window window = DefaultRootWindow(display);
|
Window window = DefaultRootWindow(display);
|
||||||
MockEventQueue eventQueue;
|
MockEventQueue eventQueue;
|
||||||
EXPECT_CALL(eventQueue, removeHandler(_, _)).Times(1);
|
EXPECT_CALL(eventQueue, removeHandler(_, _)).Times(1);
|
||||||
|
|
|
@ -20,16 +20,22 @@
|
||||||
#include "platform/XWindowsScreen.h"
|
#include "platform/XWindowsScreen.h"
|
||||||
|
|
||||||
#include "test/global/gtest.h"
|
#include "test/global/gtest.h"
|
||||||
|
#include <cstdlib>
|
||||||
|
|
||||||
using ::testing::_;
|
using ::testing::_;
|
||||||
|
|
||||||
TEST(CXWindowsScreenTests, fakeMouseMove_nonPrimary_getCursorPosValuesCorrect)
|
TEST(CXWindowsScreenTests, fakeMouseMove_nonPrimary_getCursorPosValuesCorrect)
|
||||||
{
|
{
|
||||||
|
const char* displayName = std::getenv("DISPLAY");
|
||||||
|
if (displayName == NULL) {
|
||||||
|
displayName = ":0.0";
|
||||||
|
}
|
||||||
|
|
||||||
MockEventQueue eventQueue;
|
MockEventQueue eventQueue;
|
||||||
EXPECT_CALL(eventQueue, adoptHandler(_, _, _)).Times(2);
|
EXPECT_CALL(eventQueue, adoptHandler(_, _, _)).Times(2);
|
||||||
EXPECT_CALL(eventQueue, adoptBuffer(_)).Times(2);
|
EXPECT_CALL(eventQueue, adoptBuffer(_)).Times(2);
|
||||||
EXPECT_CALL(eventQueue, removeHandler(_, _)).Times(2);
|
EXPECT_CALL(eventQueue, removeHandler(_, _)).Times(2);
|
||||||
XWindowsScreen screen(new XWindowsImpl(), ":0.0", false, false, 0, &eventQueue);
|
XWindowsScreen screen(new XWindowsImpl(), displayName, false, false, 0, &eventQueue);
|
||||||
|
|
||||||
screen.fakeMouseMove(10, 20);
|
screen.fakeMouseMove(10, 20);
|
||||||
|
|
||||||
|
|
|
@ -50,8 +50,6 @@ list(APPEND headers ${platform_sources})
|
||||||
|
|
||||||
include_directories(
|
include_directories(
|
||||||
../../
|
../../
|
||||||
../../../ext/gtest/include
|
|
||||||
../../../ext/gmock/include
|
|
||||||
../../../ext
|
../../../ext
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -67,4 +65,4 @@ endif()
|
||||||
|
|
||||||
add_executable(unittests ${sources})
|
add_executable(unittests ${sources})
|
||||||
target_link_libraries(unittests
|
target_link_libraries(unittests
|
||||||
arch base client server common io net platform server synlib mt ipc gtest gmock ${libs} ${OPENSSL_LIBS})
|
arch base client server common io net platform server synlib mt ipc ${GTEST_LIBRARIES} ${GMOCK_LIBRARIES} ${libs} ${OPENSSL_LIBS})
|
||||||
|
|
|
@ -15,6 +15,8 @@
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#define TEST_ENV
|
||||||
|
|
||||||
#include "barrier/KeyMap.h"
|
#include "barrier/KeyMap.h"
|
||||||
|
|
||||||
#include "test/global/gtest.h"
|
#include "test/global/gtest.h"
|
||||||
|
|
Loading…
Reference in New Issue