diff --git a/.cproject b/.cproject index 4e91622c1..30d73c4b9 100644 --- a/.cproject +++ b/.cproject @@ -1778,6 +1778,70 @@ true true + + make + -j2 + gtsam-shared + true + true + true + + + make + -j2 + check.tests + true + true + true + + + make + -j2 + tests.testSerialization.run + true + true + true + + + make + -j2 + timing.inference + true + true + true + + + make + -j2 + timing.linear + true + true + true + + + make + -j2 + timing.nonlinear + true + true + true + + + make + -j2 + timing.slam + true + true + true + + + make + -j2 + timing.tests + true + true + true + make -j2 diff --git a/CMakeLists.txt b/CMakeLists.txt index eee2aeeea..aa4cfa2f6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -46,7 +46,7 @@ add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND}) add_custom_target(timing) # Find boost -find_package(Boost 1.40 REQUIRED) +find_package(Boost 1.40 COMPONENTS serialization REQUIRED) # General build settings include_directories( @@ -64,7 +64,7 @@ add_subdirectory(gtsam) add_subdirectory(CppUnitLite) # Build Tests -#add_subdirectory(tests) +add_subdirectory(tests) # Build wrap #add_subdirectory(wrap) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 099307363..be4ed17dc 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -1,31 +1,43 @@ -include_directories( - 3rdparty/UFconfig - 3rdparty/CCOLAMD/Include - ${CMAKE_SOURCE_DIR}) +# Convenience targets +add_custom_target(check.tests COMMAND ${CMAKE_CTEST_COMMAND}) +add_custom_target(timing.tests) -find_package(Boost COMPONENTS serialization REQUIRED) +set(tests_local_libs + slam + nonlinear + linear + inference + geometry + base + ccolamd + CppUnitLite + ${Boost_LIBRARIES} +) # Build tests file(GLOB tests_srcs "test*.cpp") foreach(test_src ${tests_srcs}) get_filename_component(test_base ${test_src} NAME_WE) - set( test_bin ${test_base} ) - add_executable(${test_bin} EXCLUDE_FROM_ALL ${test_src}) + set( test_bin tests.${test_base} ) + message(STATUS "Adding Test ${test_bin}") + add_executable(${test_bin} ${test_src}) + add_dependencies(check.tests ${test_bin}) add_dependencies(check ${test_bin}) - add_dependencies(${test_bin} ${PROJECT_NAME}-static) - add_test(${test_bin} ${EXECUTABLE_OUTPUT_PATH}${test_bin}) - target_link_libraries(${test_bin} CppUnitLite gtsam-static ${Boost_SERIALIZATION_LIBRARY}) - add_custom_target(${test_base}.run ${EXECUTABLE_OUTPUT_PATH}${test_bin} ${ARGN}) + add_test(${test_base} ${EXECUTABLE_OUTPUT_PATH}${test_bin}) + target_link_libraries(${test_bin} ${tests_local_libs}) + add_custom_target(${test_bin}.run ${EXECUTABLE_OUTPUT_PATH}${test_bin} ${ARGN}) endforeach(test_src) # Build timing scripts -file(GLOB time_srcs "time*.cpp") -foreach(time_src ${time_srcs}) +file(GLOB timing_srcs "time*.cpp") +foreach(time_src ${timing_srcs}) get_filename_component(time_base ${time_src} NAME_WE) - set( time_bin ${time_base} ) - add_executable(${time_bin} EXCLUDE_FROM_ALL ${time_src}) + set( time_bin tests.${time_base} ) + message(STATUS "Adding Timing Benchmark ${time_bin}") + add_executable(${time_bin} ${time_src}) + add_dependencies(timing.tests ${time_bin}) add_dependencies(timing ${time_bin}) - add_dependencies(${test_bin} ${PROJECT_NAME}-static) - target_link_libraries(${time_bin} CppUnitLite gtsam-static) - add_custom_target(${time_base}.run ${EXECUTABLE_OUTPUT_PATH}${time_bin} ${ARGN}) -endforeach(time_src) \ No newline at end of file + target_link_libraries(${time_bin} ${tests_local_libs}) + add_custom_target(${time_bin}.run ${EXECUTABLE_OUTPUT_PATH}${time_bin} ${ARGN}) +endforeach(time_src) + diff --git a/tests/testSerialization.cpp b/tests/testSerialization.cpp index 4f499b393..72132deb6 100644 --- a/tests/testSerialization.cpp +++ b/tests/testSerialization.cpp @@ -159,8 +159,6 @@ bool equalsDereferencedXML(const T& input = T()) { #include #include -#include - #include using namespace std; @@ -438,9 +436,9 @@ TEST (Serialization, gaussianISAM) { /* ************************************************************************* */ /* Create GUIDs for factors in simulated2D */ -BOOST_CLASS_EXPORT_GUID(gtsam::simulated2D::Prior, "gtsam::simulated2D::Prior" ); -BOOST_CLASS_EXPORT_GUID(gtsam::simulated2D::Odometry, "gtsam::simulated2D::Odometry" ); -BOOST_CLASS_EXPORT_GUID(gtsam::simulated2D::Measurement, "gtsam::simulated2D::Measurement"); +BOOST_CLASS_EXPORT_GUID(simulated2D::Prior, "gtsam::simulated2D::Prior" ); +BOOST_CLASS_EXPORT_GUID(simulated2D::Odometry, "gtsam::simulated2D::Odometry" ); +BOOST_CLASS_EXPORT_GUID(simulated2D::Measurement, "gtsam::simulated2D::Measurement"); /* ************************************************************************* */ TEST (Serialization, smallExample) { using namespace example; @@ -455,12 +453,12 @@ TEST (Serialization, smallExample) { /* ************************************************************************* */ /* Create GUIDs for factors */ -BOOST_CLASS_EXPORT_GUID(gtsam::planarSLAM::Prior, "gtsam::planarSLAM::Prior"); -BOOST_CLASS_EXPORT_GUID(gtsam::planarSLAM::Bearing, "gtsam::planarSLAM::Bearing"); -BOOST_CLASS_EXPORT_GUID(gtsam::planarSLAM::Range, "gtsam::planarSLAM::Range"); -BOOST_CLASS_EXPORT_GUID(gtsam::planarSLAM::BearingRange,"gtsam::planarSLAM::BearingRange"); -BOOST_CLASS_EXPORT_GUID(gtsam::planarSLAM::Odometry, "gtsam::planarSLAM::Odometry"); -BOOST_CLASS_EXPORT_GUID(gtsam::planarSLAM::Constraint, "gtsam::planarSLAM::Constraint"); +BOOST_CLASS_EXPORT_GUID(planarSLAM::Prior, "gtsam::planarSLAM::Prior"); +BOOST_CLASS_EXPORT_GUID(planarSLAM::Bearing, "gtsam::planarSLAM::Bearing"); +BOOST_CLASS_EXPORT_GUID(planarSLAM::Range, "gtsam::planarSLAM::Range"); +BOOST_CLASS_EXPORT_GUID(planarSLAM::BearingRange,"gtsam::planarSLAM::BearingRange"); +BOOST_CLASS_EXPORT_GUID(planarSLAM::Odometry, "gtsam::planarSLAM::Odometry"); +BOOST_CLASS_EXPORT_GUID(planarSLAM::Constraint, "gtsam::planarSLAM::Constraint"); /* ************************************************************************* */ TEST (Serialization, planar_system) { using namespace planarSLAM; @@ -514,12 +512,12 @@ TEST (Serialization, planar_system) { /* ************************************************************************* */ /* Create GUIDs for factors */ -BOOST_CLASS_EXPORT_GUID(gtsam::visualSLAM::PoseConstraint, "gtsam::visualSLAM::PoseConstraint"); -BOOST_CLASS_EXPORT_GUID(gtsam::visualSLAM::PointConstraint, "gtsam::visualSLAM::PointConstraint"); -BOOST_CLASS_EXPORT_GUID(gtsam::visualSLAM::PosePrior, "gtsam::visualSLAM::PosePrior"); -BOOST_CLASS_EXPORT_GUID(gtsam::visualSLAM::PointPrior, "gtsam::visualSLAM::PointPrior"); -BOOST_CLASS_EXPORT_GUID(gtsam::visualSLAM::ProjectionFactor,"gtsam::visualSLAM::ProjectionFactor"); -BOOST_CLASS_EXPORT_GUID(gtsam::visualSLAM::StereoFactor, "gtsam::visualSLAM::StereoFactor"); +BOOST_CLASS_EXPORT_GUID(visualSLAM::PoseConstraint, "gtsam::visualSLAM::PoseConstraint"); +BOOST_CLASS_EXPORT_GUID(visualSLAM::PointConstraint, "gtsam::visualSLAM::PointConstraint"); +BOOST_CLASS_EXPORT_GUID(visualSLAM::PosePrior, "gtsam::visualSLAM::PosePrior"); +BOOST_CLASS_EXPORT_GUID(visualSLAM::PointPrior, "gtsam::visualSLAM::PointPrior"); +BOOST_CLASS_EXPORT_GUID(visualSLAM::ProjectionFactor,"gtsam::visualSLAM::ProjectionFactor"); +BOOST_CLASS_EXPORT_GUID(visualSLAM::StereoFactor, "gtsam::visualSLAM::StereoFactor"); /* ************************************************************************* */ TEST (Serialization, visual_system) {