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);
+}