diff --git a/cmake/CMakeLists_test.txt b/cmake/CMakeLists_test.txt index 129b2cd7..c9823b0f 100644 --- a/cmake/CMakeLists_test.txt +++ b/cmake/CMakeLists_test.txt @@ -14,12 +14,23 @@ # along with this program. If not, see . # Include all files that have unit tests -SET(tests +set(unittests + ${root_dir}/third_party/gtest/src/gtest_main.cc ${root_dir}/src/unittest/synergy/CClipboardTests.cpp ${root_dir}/src/unittest/synergy/HelloWorldTests.cpp ) -SET(inc +set(integtests + ${root_dir}/src/integtest/IntegTestMain.cpp +) + +if(WIN32) + list(APPEND integtests + ${root_dir}/src/integtest/platform/CMSWindowsClipboardTests.cpp + ) +endif() + +set(inc ${root_dir} ${root_dir}/lib ${root_dir}/lib/arch @@ -35,6 +46,10 @@ SET(inc ${root_dir}/third_party/gtest/include ) -INCLUDE_DIRECTORIES(${inc}) -ADD_EXECUTABLE(tests ${root_dir}/third_party/gtest/src/gtest_main.cc ${tests}) -TARGET_LINK_LIBRARIES(tests synergy gtest ${libs}) +include_directories(${inc}) + +add_executable(unittests ${unittests}) +target_link_libraries(unittests synergy gtest ${libs}) + +add_executable(integtests ${integtests}) +target_link_libraries(integtests synergy gtest ${libs}) diff --git a/src/integtest/IntegTestMain.cpp b/src/integtest/IntegTestMain.cpp new file mode 100644 index 00000000..74af0872 --- /dev/null +++ b/src/integtest/IntegTestMain.cpp @@ -0,0 +1,38 @@ +/* + * synergy -- mouse and keyboard sharing utility + * Copyright (C) 2011 Chris Schoeneman, Nick Bolton, Sorin Sbarnea + * + * This package is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * found in the file COPYING that should have accompanied this file. + * + * This package is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include +#include +#include "CArchMiscWindows.h" +#include "CArch.h" + +int +main(int argc, char **argv) +{ + std::cout << "Synergy integration tests\n"; + +#if SYSAPI_WIN32 + // record window instance for tray icon, etc + CArchMiscWindows::setInstanceWin32(GetModuleHandle(NULL)); +#endif + + CArch arch; + + testing::InitGoogleTest(&argc, argv); + + return RUN_ALL_TESTS(); +} diff --git a/src/integtest/platform/CMSWindowsClipboardTests.cpp b/src/integtest/platform/CMSWindowsClipboardTests.cpp new file mode 100644 index 00000000..32143db9 --- /dev/null +++ b/src/integtest/platform/CMSWindowsClipboardTests.cpp @@ -0,0 +1,29 @@ +/* + * synergy -- mouse and keyboard sharing utility + * Copyright (C) 2011 Chris Schoeneman, Nick Bolton, Sorin Sbarnea + * + * This package is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * found in the file COPYING that should have accompanied this file. + * + * This package is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include +#include "CMSWindowsClipboard.h" + +TEST(CMSWindowsClipboardTests, emptyUnowned_openCalled_returnsTrue) +{ + CMSWindowsClipboard clipboard(NULL); + clipboard.open(0); + + bool actual = clipboard.emptyUnowned(); + + EXPECT_EQ(true, actual); +}