diff --git a/CMakeLists.txt b/CMakeLists.txt index 853f85698c96c64d7edafd7fbd34c2e7bf33090c..54f625931a12b0b4ec502bc22a822625692bcfb8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -150,10 +150,17 @@ endif (${COMPILE_PACKAGING} STREQUAL "1") # COMMENT "Not running the unit tests" VERBATIM) configure_file(tests/valgrind.suppr tests/valgrind.suppr COPYONLY) -add_custom_target(unittests - tests/unitTests - COMMAND valgrind --track-fds=yes --leak-check=full --demangle=yes --gen-suppressions=all --show-reachable=yes --error-exitcode=1 --suppressions=tests/valgrind.suppr tests/unitTests - COMMAND valgrind --tool=helgrind -v --demangle=no --conflict-cache-size=30000000 --error-exitcode=1 tests/unitTests +configure_file(tests/helgrind.suppr tests/helgrind.suppr COPYONLY) +add_custom_target(fullunittests + tests/cta-unitTests + COMMAND valgrind --track-fds=yes --leak-check=full --demangle=yes --gen-suppressions=all --show-reachable=yes --error-exitcode=1 --suppressions=tests/valgrind.suppr tests/cta-unitTests + COMMAND valgrind --tool=helgrind -v --demangle=yes --gen-suppressions=all --conflict-cache-size=30000000 --error-exitcode=1 --suppressions=tests/helgrind.suppr tests/cta-unitTests + + DEPENDS tests/cta-unitTests tests/valgrind.suppr tests/helgrind.suppr + COMMENT "Running unit tests with memory leak and race conditions detection" VERBATIM) - DEPENDS tests/unittests tests/valgrind.suppr +add_custom_target(shortunittests + tests/cta-unitTests + + DEPENDS tests/cta-unitTests COMMENT "Running unit tests" VERBATIM) diff --git a/catalogue/CMakeLists.txt b/catalogue/CMakeLists.txt index e5d3a2ee82020d35040cef068b9cced2b9a60924..6b697726a1eed00e749fef7c761d4e9660d263ed 100644 --- a/catalogue/CMakeLists.txt +++ b/catalogue/CMakeLists.txt @@ -27,3 +27,5 @@ add_library (ctacatalogueunittests SHARED ${CATALOGUE_UNIT_TESTS_LIB_SRC_FILES}) target_link_libraries (ctacatalogueunittests ctacatalogue) + +install(TARGETS ctacatalogueunittests DESTINATION usr/${CMAKE_INSTALL_LIBDIR}) diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt index c48a13d9d8956678072eea9c0637d5a044fd5545..389633b910b2819daa4b0497e1ee3c6d4633af59 100644 --- a/common/CMakeLists.txt +++ b/common/CMakeLists.txt @@ -113,3 +113,5 @@ set (COMMON_UNIT_TESTS_LIB_SRC_FILES add_library (ctacommonunittests SHARED ${COMMON_UNIT_TESTS_LIB_SRC_FILES}) + +install(TARGETS ctacommonunittests DESTINATION usr/${CMAKE_INSTALL_LIBDIR}) \ No newline at end of file diff --git a/cta.spec.in b/cta.spec.in index 686e4d400f3e451b2b5758c2e51e5159c08820e4..ce75b04c09defbc0a0b153d5c915c1811406ffbf 100644 --- a/cta.spec.in +++ b/cta.spec.in @@ -26,7 +26,7 @@ Source: %{name}-%{ctaVersion}-%{ctaRelease}.tar.gz License: http://cern.ch/castor/DIST/CONDITIONS Group: Application/cta BuildRoot: %{_builddir}/%{name}-%{version}-root -BuildRequires: cmake >= 2.6 redhat-rpm-config spaceMonkey2000-devel +BuildRequires: cmake >= 2.6 redhat-rpm-config # only build debug info if you're building the whole code %description @@ -58,25 +58,25 @@ cd build %check %if "%{skip_unit_tests}" == "0" cd build -%{__make} test +%{__make} shortunittests %endif # The packages will be cta-tapeserver, cta-frontend, cta-cli -%package -n cta-tapeserver -Summary: CERN Tape Archive +%package -n cta-taped +Summary: CERN Tape Archive: tape daemon Group: Application/CTA requires: cta-lib -%description -n cta-tapeserver +%description -n cta-taped CERN Tape Archive: The tape server daemon -%files -n cta-tapeserver +%files -n cta-taped %defattr(-,root,root) -%attr(0755,root,root) %{_bindir}/cta-tapeserverd +%attr(0755,root,root) %{_bindir}/cta-taped %attr(0755,root,root) %{_libdir}/libctamessages.so %package -n cta-frontend -Summary: CERN Tape Archive +Summary: CERN Tape Archive: Xrootd plugin Group: Application/CTA requires: cta-lib %description -n cta-frontend @@ -88,7 +88,7 @@ The xroot plugin %attr(0644,root,root) %config(noreplace) %{_sysconfdir}/xrd.cf.cta %package -n cta-cli -Summary: CERN Tape Archive +Summary: CERN Tape Archive: command line interface Group: Application/CTA %description -n cta-cli CERN Tape Archive: @@ -98,6 +98,7 @@ The xroot plugin %attr(0755,root,root) %{_bindir}/cta %attr(0755,root,root) %{_bindir}/ctaAddAdminUser + %package -n cta-lib Summary: CERN Tape Archive Group: Application/CTA @@ -110,4 +111,49 @@ The shared libraries %attr(0755,root,root) %{_libdir}/libctanameserver.so %attr(0755,root,root) %{_libdir}/libctaremotens.so %attr(0755,root,root) %{_libdir}/libctascheduler.so -%attr(0755,root,root) %{_libdir}/libctaobjectstore.so \ No newline at end of file +%attr(0755,root,root) %{_libdir}/libctaobjectstore.so +%attr(0755,root,root) %{_libdir}/libctamediachangerutils.so +%attr(0755,root,root) %{_libdir}/libctamessages.so +%attr(0755,root,root) %{_libdir}/libctamessagesutils.so +%attr(0755,root,root) %{_libdir}/libctatapereactorutils.so +%attr(0755,root,root) %{_libdir}/libctatapeserverdaemonutils.so + +%package -n cta-unittests +Summary: CERN Tape Archive: unit tests +Group: Application/CTA +%description -n cta-unittests +CERN Tape Archive: +unit tests +%files -n cta-unittests +%attr(0755,root,root) %{_bindir}/cta-unitTests +%attr(0755,root,root) %{_bindir}/cta-valgrindUnitTests.sh +%attr(0755,root,root) %{_libdir}/libctacatalogueunittests.so +%attr(0755,root,root) %{_libdir}/libctacommonunittests.so +%attr(0755,root,root) %{_libdir}/libctaexceptionunittests.so +%attr(0755,root,root) %{_libdir}/libctaiounittests.so +%attr(0755,root,root) %{_libdir}/libctalegacymsgunittests.so +%attr(0755,root,root) %{_libdir}/libctamessagesunittests.so +%attr(0755,root,root) %{_libdir}/libctanameserverunittests.so +%attr(0755,root,root) %{_libdir}/libctaobjectstoreunittests.so +%attr(0755,root,root) %{_libdir}/libctaremotensunittests.so +%attr(0755,root,root) %{_libdir}/libctaschedulerunittests.so +%attr(0755,root,root) %{_libdir}/libctaserverunittests.so +%attr(0755,root,root) %{_libdir}/libctatapereactorunittests.so +%attr(0755,root,root) %{_libdir}/libctatapeserverdaemonunittests.so +%attr(0755,root,root) %{_libdir}/libctatapeserverdriveunittests.so +%attr(0755,root,root) %{_libdir}/libctatapeserverfileunittests.so +%attr(0755,root,root) %{_libdir}/libctatapeserverscsiunittests.so +%attr(0755,root,root) %{_libdir}/libctatapeserverutilsunittests.so +%attr(0755,root,root) %{_libdir}/libctautilsunittests.so +%attr(0644,root,root) %{_datadir}/%{name}-%{ctaVersion}/unittest/*.suppr + + +%package -n cta-systemtests +Summary: CERN Tape Archive: system tests with virtual tape drives +Group: Application/CTA +%description -n cta-systemtests +CERN Tape Archive: +system tests with virtual tape drives +%files -n cta-systemtests +%attr(0755,root,root) %{_bindir}/cta-systemTests +%attr(0755,root,root) %{_libdir}/libsystemTestHelperTests.so diff --git a/nameserver/CMakeLists.txt b/nameserver/CMakeLists.txt index 23a75ef08e7ee2ba2ae9d85c4d2d937e5a5ac5b9..56320e2e0d830b5e9e0d9768df2c673e52734a8a 100644 --- a/nameserver/CMakeLists.txt +++ b/nameserver/CMakeLists.txt @@ -21,5 +21,7 @@ add_library (ctanameserverunittests SHARED target_link_libraries(ctanameserverunittests ctanameserver) +install(TARGETS ctanameserverunittests DESTINATION usr/${CMAKE_INSTALL_LIBDIR}) + add_executable(makeMockNameServerBasePath mockNS/makeMockNameServerBasePath.cpp) target_link_libraries(makeMockNameServerBasePath ctacommon) \ No newline at end of file diff --git a/objectstore/CMakeLists.txt b/objectstore/CMakeLists.txt index 641b6cf52723171267aba2d9ae67075d454a85ef..bd4b3795a1cfcd6b16ace63d0916350fa0a4821d 100644 --- a/objectstore/CMakeLists.txt +++ b/objectstore/CMakeLists.txt @@ -65,6 +65,7 @@ set(ObjectStoreUnitTests add_library(ctaobjectstoreunittests SHARED ${ObjectStoreUnitTests}) target_link_libraries(ctaobjectstoreunittests protobuf rados ctacommon gtest ctaobjectstore) +install(TARGETS ctaobjectstoreunittests DESTINATION usr/${CMAKE_INSTALL_LIBDIR}) add_executable(makeMinimalVFS makeMinimalVFS.cpp) target_link_libraries(makeMinimalVFS diff --git a/remotens/CMakeLists.txt b/remotens/CMakeLists.txt index 3b161a0f54b6f509cfba1c673d58604936479b11..4fc8ab2d8873568053a4e53917f42da69d1537a4 100644 --- a/remotens/CMakeLists.txt +++ b/remotens/CMakeLists.txt @@ -25,3 +25,5 @@ add_library (ctaremotensunittests SHARED target_link_libraries(ctaremotensunittests ctaremotens ctautils) + +install(TARGETS ctaremotensunittests DESTINATION usr/${CMAKE_INSTALL_LIBDIR}) diff --git a/scheduler/CMakeLists.txt b/scheduler/CMakeLists.txt index 0ecca9dc3d771e52637bb254ec04b50a099130f3..12658dbe2d754bd2766d7a506494f7746bc02c75 100644 --- a/scheduler/CMakeLists.txt +++ b/scheduler/CMakeLists.txt @@ -47,7 +47,8 @@ add_library (ctaschedulerunittests SHARED SchedulerDatabaseFactory.cpp SchedulerDatabaseTest.cpp) -target_link_libraries (ctaschedulerunittests ${SQLITE3_LIBRARY_RELEASE}) - -target_link_libraries(ctaschedulerunittests +target_link_libraries (ctaschedulerunittests + ${SQLITE3_LIBRARY_RELEASE} ctascheduler) + +install(TARGETS ctaschedulerunittests DESTINATION usr/${CMAKE_INSTALL_LIBDIR}) \ No newline at end of file diff --git a/tapeserver/CMakeLists.txt b/tapeserver/CMakeLists.txt index 8984496ca8b569facacfacd319927ccd4d5cbf23..aca7a237950017bd61da6eab0b731c117dcd501b 100644 --- a/tapeserver/CMakeLists.txt +++ b/tapeserver/CMakeLists.txt @@ -10,3 +10,4 @@ add_subdirectory (daemon) add_executable (cta-taped cta-taped.cpp) target_link_libraries(cta-taped ctatapedaemon ctacommon protobuf) +install (TARGETS cta-taped DESTINATION usr/bin) diff --git a/tapeserver/castor/exception/CMakeLists.txt b/tapeserver/castor/exception/CMakeLists.txt index d7fac4395108e95f5fd1e583724c33cdeb68d263..4ff3dc9cd6cc056d69cfd435af6c21947b49957b 100644 --- a/tapeserver/castor/exception/CMakeLists.txt +++ b/tapeserver/castor/exception/CMakeLists.txt @@ -4,3 +4,5 @@ include_directories(${PROJECT_SOURCE_DIR}/tapeserver) add_library (ctaexceptionunittests SHARED ExceptionTest.cpp) + +install(TARGETS ctaexceptionunittests DESTINATION usr/${CMAKE_INSTALL_LIBDIR}) diff --git a/tapeserver/castor/io/CMakeLists.txt b/tapeserver/castor/io/CMakeLists.txt index e82f41f3e4dcb33df75c6fbbc9886e65e4916033..c7e73debaae1dd44185d2e09daa6692ed65b2ec9 100644 --- a/tapeserver/castor/io/CMakeLists.txt +++ b/tapeserver/castor/io/CMakeLists.txt @@ -11,3 +11,5 @@ add_library (ctaiounittests SHARED IoTest.cpp) target_link_libraries (ctaiounittests ctaio) + +install(TARGETS ctaiounittests DESTINATION usr/${CMAKE_INSTALL_LIBDIR}) diff --git a/tapeserver/castor/legacymsg/CMakeLists.txt b/tapeserver/castor/legacymsg/CMakeLists.txt index ad70f4b8788c6df3a80f3f460d99e0f2daea881b..95ed008cf93e35619445b29efe0c38bdffae5b05 100644 --- a/tapeserver/castor/legacymsg/CMakeLists.txt +++ b/tapeserver/castor/legacymsg/CMakeLists.txt @@ -30,3 +30,4 @@ add_library (ctalegacymsgunittests SHARED target_link_libraries (ctalegacymsgunittests ctamessages ctautils) +install(TARGETS ctalegacymsgunittests DESTINATION usr/${CMAKE_INSTALL_LIBDIR}) diff --git a/tapeserver/castor/mediachanger/CMakeLists.txt b/tapeserver/castor/mediachanger/CMakeLists.txt index b49f3bc111e0660f73b58793b889ecb10b8ad371..1edd47be2960b5558a301ad47ee9d8b4a6e00183 100644 --- a/tapeserver/castor/mediachanger/CMakeLists.txt +++ b/tapeserver/castor/mediachanger/CMakeLists.txt @@ -36,3 +36,4 @@ add_library(ctamediachanger ${MEDIA_CHANGER_LIB_SRC_FILES}) add_library(ctamediachangerutils SHARED MmcProxyDummy.cpp) +install(TARGETS ctamediachangerutils DESTINATION usr/${CMAKE_INSTALL_LIBDIR}) diff --git a/tapeserver/castor/messages/CMakeLists.txt b/tapeserver/castor/messages/CMakeLists.txt index e41a1a84b931d447f47d106be6fe5c2f8176e747..5cee9e4af6141c2afa18f8deca7d6ea537a9e680 100644 --- a/tapeserver/castor/messages/CMakeLists.txt +++ b/tapeserver/castor/messages/CMakeLists.txt @@ -34,6 +34,7 @@ add_library(ctamessagesprotobuf add_library(ctamessagesutils SHARED AcsProxyDummy.cpp TapeserverProxyDummy.cpp) +install(TARGETS ctamessagesutils DESTINATION usr/${CMAKE_INSTALL_LIBDIR}) set(CtaMessageSrcs AcsProxy.cpp @@ -70,3 +71,4 @@ add_library(ctamessagesunittests SHARED MessagesTest.cpp MutexLockerTest.cpp MutexTest.cpp) +install(TARGETS ctamessagesunittests DESTINATION usr/${CMAKE_INSTALL_LIBDIR}) diff --git a/tapeserver/castor/server/CMakeLists.txt b/tapeserver/castor/server/CMakeLists.txt index a79374d4066a60b48ae23db7d8dff4e0314dd705..1d5c67e172036842207928d079a0aab62e3c9a3f 100644 --- a/tapeserver/castor/server/CMakeLists.txt +++ b/tapeserver/castor/server/CMakeLists.txt @@ -24,3 +24,5 @@ add_library (ctaserverunittests SHARED ThreadingTests.cpp) target_link_libraries (ctaserverunittests) + +install(TARGETS ctaserverunittests DESTINATION usr/${CMAKE_INSTALL_LIBDIR}) diff --git a/tapeserver/castor/server/Semaphores.cpp b/tapeserver/castor/server/Semaphores.cpp index 4ad79704b8cc9f6855f89d7ef79dc22138ad488f..d75da972c73451f044605cd5ee374edfe8f5f9a6 100644 --- a/tapeserver/castor/server/Semaphores.cpp +++ b/tapeserver/castor/server/Semaphores.cpp @@ -106,7 +106,8 @@ castor::server::CondVarSemaphore::~CondVarSemaphore() { pthread_mutex_lock(&m_mutex); pthread_mutex_unlock(&m_mutex); /* Cleanup */ - pthread_cond_destroy(&m_cond); + int rc=pthread_cond_destroy(&m_cond); + rc=rc; pthread_mutex_destroy(&m_mutex); } //------------------------------------------------------------------------------ diff --git a/tapeserver/castor/tape/reactor/CMakeLists.txt b/tapeserver/castor/tape/reactor/CMakeLists.txt index 35e995351e3a679215ff90888dc1b4eac618d222..68b65765a9a3c1b723564bf9bf904981a04e8ce3 100644 --- a/tapeserver/castor/tape/reactor/CMakeLists.txt +++ b/tapeserver/castor/tape/reactor/CMakeLists.txt @@ -38,10 +38,14 @@ add_library (ctatapereactorutils SHARED DummyPollReactor.cpp DummyZMQReactor.cpp) +install(TARGETS ctatapereactorutils DESTINATION usr/${CMAKE_INSTALL_LIBDIR}) + add_library (ctatapereactorunittests SHARED PollReactorImplTest.cpp ZMQReactorTest.cpp) +install(TARGETS ctatapereactorunittests DESTINATION usr/${CMAKE_INSTALL_LIBDIR}) + target_link_libraries (ctatapereactorunittests ctatapereactor ctatapereactorutils) diff --git a/tapeserver/castor/tape/tapeserver/SCSI/CMakeLists.txt b/tapeserver/castor/tape/tapeserver/SCSI/CMakeLists.txt index 7320b7986c8bb868fb25d8ec2a5f08c5a124876b..7744792294f324c9b347b49b9914c6d7cbca00b4 100644 --- a/tapeserver/castor/tape/tapeserver/SCSI/CMakeLists.txt +++ b/tapeserver/castor/tape/tapeserver/SCSI/CMakeLists.txt @@ -37,3 +37,5 @@ add_library(SCSI Device.cpp Structures.cpp Constants.cpp Exception.cpp) add_library(ctatapeserverscsiunittests SHARED DeviceTest.cpp StructuresTest.cpp) + +install(TARGETS ctatapeserverscsiunittests DESTINATION usr/${CMAKE_INSTALL_LIBDIR}) diff --git a/tapeserver/castor/tape/tapeserver/daemon/CMakeLists.txt b/tapeserver/castor/tape/tapeserver/daemon/CMakeLists.txt index 8b2064bf203c873321b54e3aaafaf8fa2cdc7f20..1572dfc458f7a0ceb9da1d58eb5ad4bb8175e0ad 100644 --- a/tapeserver/castor/tape/tapeserver/daemon/CMakeLists.txt +++ b/tapeserver/castor/tape/tapeserver/daemon/CMakeLists.txt @@ -101,11 +101,13 @@ add_executable(cta-tapeserverd TapeDaemon.cpp) target_link_libraries(cta-tapeserverd ctaTapeServerDaemon SCSI System Utils File TapeDrive ctacommon ctatapereactor ${LIBCAP_LIB} ${ZLIB_LIBRARIES} ctamessages zmq ctaio ctautils ctaserverutils) -install (TARGETS cta-tapeserverd DESTINATION usr/bin) +#install (TARGETS cta-tapeserverd DESTINATION usr/bin) add_library(ctatapeserverdaemonutils SHARED ProcessForkerProxyDummy.cpp) +install(TARGETS ctatapeserverdaemonutils DESTINATION usr/${CMAKE_INSTALL_LIBDIR}) + add_library(ctatapeserverdaemonunittests SHARED CatalogueDriveStateTest.cpp CatalogueTest.cpp @@ -129,3 +131,5 @@ target_link_libraries(ctatapeserverdaemonunittests ctaserverutils ctatapeserverdaemonutils) #ctaschedulerutils + +install(TARGETS ctatapeserverdaemonunittests DESTINATION usr/${CMAKE_INSTALL_LIBDIR}) diff --git a/tapeserver/castor/tape/tapeserver/drive/CMakeLists.txt b/tapeserver/castor/tape/tapeserver/drive/CMakeLists.txt index 790f962451fecf2469fb3a775a07b0ecbce98362..10e04c424966aaf672c9e96add51fe403e02ed2e 100644 --- a/tapeserver/castor/tape/tapeserver/drive/CMakeLists.txt +++ b/tapeserver/castor/tape/tapeserver/drive/CMakeLists.txt @@ -73,3 +73,5 @@ target_link_libraries(ctatapeserverdriveunittests System TapeDrive ctautils) + +install(TARGETS ctatapeserverdriveunittests DESTINATION usr/${CMAKE_INSTALL_LIBDIR}) diff --git a/tapeserver/castor/tape/tapeserver/file/CMakeLists.txt b/tapeserver/castor/tape/tapeserver/file/CMakeLists.txt index cc9fddf859b85e19dbf1b23d27f1ffd8e0462737..f968eb00f4995b863123122255995d13cccfe6eb 100644 --- a/tapeserver/castor/tape/tapeserver/file/CMakeLists.txt +++ b/tapeserver/castor/tape/tapeserver/file/CMakeLists.txt @@ -59,3 +59,6 @@ add_library(ctatapeserverfileunittests SHARED target_link_libraries(ctatapeserverfileunittests File) + +install(TARGETS ctatapeserverfileunittests DESTINATION usr/${CMAKE_INSTALL_LIBDIR}) + diff --git a/tapeserver/castor/tape/tapeserver/utils/CMakeLists.txt b/tapeserver/castor/tape/tapeserver/utils/CMakeLists.txt index b2b27860704d2ae5dd79b9e61527bfd36ef04a56..8326f0c87a0dfcffc14dc43e755532593c84a2c1 100644 --- a/tapeserver/castor/tape/tapeserver/utils/CMakeLists.txt +++ b/tapeserver/castor/tape/tapeserver/utils/CMakeLists.txt @@ -27,3 +27,6 @@ add_library (ctatapeserverutilsunittests SHARED target_link_libraries (ctatapeserverutilsunittests Utils) + +install(TARGETS ctatapeserverutilsunittests DESTINATION usr/${CMAKE_INSTALL_LIBDIR}) + diff --git a/tapeserver/castor/utils/CMakeLists.txt b/tapeserver/castor/utils/CMakeLists.txt index 81ed0cd4126aa41ae17ee153f852bc464391fbc2..2e2048222783f8fe895a6b3d89273237bef29213 100644 --- a/tapeserver/castor/utils/CMakeLists.txt +++ b/tapeserver/castor/utils/CMakeLists.txt @@ -51,3 +51,5 @@ add_library (ctautilsunittests SHARED SmartArrayPtrTest.cpp SmartFdTest.cpp UtilsTest.cpp) + +install(TARGETS ctautilsunittests DESTINATION usr/${CMAKE_INSTALL_LIBDIR}) diff --git a/tapeserver/cta-tapedSystemtests.cpp b/tapeserver/cta-tapedSystemtests.cpp new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/tapeserver/cta-tapedSystemtests.cpp @@ -0,0 +1 @@ + diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 523ff5d01e3c22f2b363a36b4f6f0241642e2dd6..27fbd0c8c4e08c127ba9749d576dc029d31e19ab 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -17,11 +17,11 @@ cmake_minimum_required (VERSION 2.6) find_package(gmock REQUIRED) -add_executable(unitTests +add_executable(cta-unitTests unit_tests.cpp ${GMOCK_SRC}) -target_link_libraries(unitTests +target_link_libraries(cta-unitTests ctacatalogueunittests ctaexceptionunittests ctaiounittests @@ -57,14 +57,21 @@ target_link_libraries(systemTestHelperTests systemTestHelper ctacommon) -add_executable(systemTests +add_executable(cta-systemTests system_tests.cpp ${GMOCK_SRC}) -target_link_libraries(systemTests +target_link_libraries(cta-systemTests systemTestHelper systemTestHelperTests gtest pthread) +install(TARGETS cta-unitTests cta-systemTests DESTINATION usr/bin) +install(TARGETS systemTestHelperTests DESTINATION usr/${CMAKE_INSTALL_LIBDIR}) + +configure_file(cta-valgrindUnitTests.sh.in ${CMAKE_CURRENT_BINARY_DIR}/cta-valgrindUnitTests.sh) + +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/cta-valgrindUnitTests.sh DESTINATION usr/bin) +install(FILES valgrind.suppr helgrind.suppr DESTINATION usr/share/cta-${CTA_VERSION}/unittest/) diff --git a/tests/Subprocess.cpp b/tests/Subprocess.cpp index 3b2851a037bafface049973e30fcc0ce711bb13a..00d9c9ce33466e60069ea3bd5470c48cfc9041cb 100644 --- a/tests/Subprocess.cpp +++ b/tests/Subprocess.cpp @@ -72,7 +72,8 @@ Subprocess::Subprocess(const std::string & executable, const std::list<std::stri } cargv[argv.size()] = NULL; cta::exception::Errnum::throwOnMinusOne( - execvp(executable.c_str(), cargv)); + execvp(executable.c_str(), cargv), + "In Subprocess::Subprocess execv failed: "); // We should never get here. throw cta::exception::Exception( "In Subprocess::Subprocess execv failed without returning -1!"); @@ -81,7 +82,7 @@ Subprocess::Subprocess(const std::string & executable, const std::list<std::stri exit(EXIT_FAILURE); } } - } +} void Subprocess::kill(int signal) { ::kill(m_child, signal); @@ -128,4 +129,4 @@ Subprocess::~Subprocess() { } -} \ No newline at end of file +} // namespace systemTests \ No newline at end of file diff --git a/tests/SubprocessSystemTests.cpp b/tests/SubprocessSystemTests.cpp index 6c1cb26f2885a355ba021803084ad2ce8177ab85..77916e6c373dfb961d6b6d06665d1a7cdc199dc0 100644 --- a/tests/SubprocessSystemTests.cpp +++ b/tests/SubprocessSystemTests.cpp @@ -32,5 +32,10 @@ TEST(SuprocessHelper, basicTests) { ASSERT_EQ("", sp2.stdout()); ASSERT_NE(std::string::npos, sp2.stderr().find("/no/such/file")); ASSERT_EQ(1, sp2.exitValue()); + Subprocess sp3("/no/such/file", std::list<std::string>({"/no/such/file"})); + sp3.wait(); + ASSERT_EQ("", sp3.stdout()); + ASSERT_NE(std::string::npos, sp3.stderr().find("In Subprocess::Subprocess execv failed")); + ASSERT_EQ(1, sp3.exitValue()); } } \ No newline at end of file diff --git a/tests/cta-valgrindUnitTests.sh.in b/tests/cta-valgrindUnitTests.sh.in new file mode 100644 index 0000000000000000000000000000000000000000..64f644db475dd0bcbed59ebf910cddeadd0a1a47 --- /dev/null +++ b/tests/cta-valgrindUnitTests.sh.in @@ -0,0 +1,12 @@ +#!/bin/bash +# exit from the script on any error. +set -e +/usr/bin/cta-unitTests --gtest_color=yes + +valgrind --track-fds=yes --leak-check=full --demangle=yes --gen-suppressions=all --show-reachable=yes \ + --error-exitcode=1 --suppressions=/usr/share/cta-@CTA_VERSION@/unittest/valgrind.suppr \ + /usr/bin/cta-unitTests --gtest_color=yes + +valgrind --tool=helgrind -v --demangle=yes --gen-suppressions=all --conflict-cache-size=30000000 \ + --error-exitcode=1 --suppressions=/usr/share/cta-@CTA_VERSION@/unittest/helgrind.suppr \ + /usr/bin/cta-unitTests --gtest_color=yes diff --git a/tests/helgrind.suppr b/tests/helgrind.suppr new file mode 100644 index 0000000000000000000000000000000000000000..e38e428bb9b93ac51ce8689a5f4eb2d0ec8c7597 --- /dev/null +++ b/tests/helgrind.suppr @@ -0,0 +1,99 @@ +{ + liblttnq1 + Helgrind:Race + fun:lttng_ust_init + obj:/usr/lib64/liblttng-ust.so.0.0.0 + obj:/usr/lib64/liblttng-ust.so.0.0.0 +} + +{ + pthread_tests1 + Helgrind:Misc + fun:pthread_mutex_* + ... + fun:*unitTests*castor_tape_threading* + fun:_ZN7testing4Test3RunEv + fun:_ZN7testing8internal12TestInfoImpl3RunEv + fun:_ZN7testing8TestCase3RunEv + fun:_ZN7testing8internal12UnitTestImpl11RunAllTestsEv + fun:main +} + +{ + pthread_tests2 + Helgrind:UnlockUnlocked + fun:pthread_mutex_* + ... + fun:*unitTests*castor_tape_threading* + fun:_ZN7testing4Test3RunEv + fun:_ZN7testing8internal12TestInfoImpl3RunEv + fun:_ZN7testing8TestCase3RunEv + fun:_ZN7testing8internal12UnitTestImpl11RunAllTestsEv + fun:main +} + +{ + pthread_tests3 + Helgrind:PthAPIerror + fun:pthread_mutex_* + ... + fun:*unitTests*castor_tape_threading* + fun:_ZN7testing4Test3RunEv + fun:_ZN7testing8internal12TestInfoImpl3RunEv + fun:_ZN7testing8TestCase3RunEv + fun:_ZN7testing8internal12UnitTestImpl11RunAllTestsEv + fun:main +} + +{ + pthread_tests4 + Helgrind:Misc + fun:pthread_mutex_* + ... + fun:*unitTests*castor_messages_Mutex* + fun:_ZN7testing4Test3RunEv + fun:_ZN7testing8internal12TestInfoImpl3RunEv + fun:_ZN7testing8TestCase3RunEv + fun:_ZN7testing8internal12UnitTestImpl11RunAllTestsEv + fun:main +} + +{ + pthread_tests5 + Helgrind:PthAPIerror + fun:pthread_mutex_* + ... + fun:*unitTests*castor_messages_Mutex* + fun:_ZN7testing4Test3RunEv + fun:_ZN7testing8internal12TestInfoImpl3RunEv + fun:_ZN7testing8TestCase3RunEv + fun:_ZN7testing8internal12UnitTestImpl11RunAllTestsEv + fun:main +} + +{ + pthread_tests6 + Helgrind:UnlockUnlocked + fun:pthread_mutex_* + ... + fun:*unitTests*castor_messages_Mutex* + fun:_ZN7testing4Test3RunEv + fun:_ZN7testing8internal12TestInfoImpl3RunEv + fun:_ZN7testing8TestCase3RunEv + fun:_ZN7testing8internal12UnitTestImpl11RunAllTestsEv + fun:main +} + +{ + pthread_test7 + Helgrind:Misc + fun:pthread_cond_* + ... + fun:_ZN9unitTests*castor_tape_threading_* + fun:_ZN7testing4Test3RunEv + fun:_ZN7testing8internal12TestInfoImpl3RunEv + fun:_ZN7testing8TestCase3RunEv + fun:_ZN7testing8internal12UnitTestImpl11RunAllTestsEv + fun:main +} +