From d5039779137e75b0c9d6641023e5a5adf11c7599 Mon Sep 17 00:00:00 2001 From: Olivier Stasse <ostasse@laas.fr> Date: Fri, 17 Jan 2020 11:45:24 +0100 Subject: [PATCH] [tests] Improve coverage of signal-cast-registered. --- tests/debug-real-time-tracer.cpp | 12 ++++-------- tests/signal-all.cpp | 18 ++++++++++++++++++ tests/signal-cast-registerer.cpp | 9 +++++++++ 3 files changed, 31 insertions(+), 8 deletions(-) diff --git a/tests/debug-real-time-tracer.cpp b/tests/debug-real-time-tracer.cpp index c246746..54c7a98 100644 --- a/tests/debug-real-time-tracer.cpp +++ b/tests/debug-real-time-tracer.cpp @@ -42,12 +42,6 @@ struct MyEntity : public dynamicgraph::Entity { signalRegistration(m_sigdSIN << m_sigdTimeDepSOUT << m_sigdTwoTimeDepSOUT); } - virtual void display(std::ostream &os) const { - os << "Hello! My name is " << getName() << " !" << std::endl; - } - - virtual const std::string &getClassName() const { return CLASS_NAME; } - double &update(double &res, const int &inTime) { const double &aDouble = m_sigdSIN(inTime); res = aDouble; @@ -64,8 +58,8 @@ BOOST_AUTO_TEST_CASE(test_tracer) { TracerRealTime &atracer = *dynamic_cast<TracerRealTime *>( FactoryStorage::getInstance()->newEntity("TracerRealTime", "my-tracer")); - Entity &entity = - *FactoryStorage::getInstance()->newEntity("MyEntity", "my-entity"); + MyEntity &entity = *dynamic_cast<MyEntity *>( + FactoryStorage::getInstance()->newEntity("MyEntity", "my-entity")); std::string rootdir("/tmp"); std::string basename("my-tracer"); @@ -80,6 +74,8 @@ BOOST_AUTO_TEST_CASE(test_tracer) { /// Add trace by name SignalBase<int> &aSignal = entity.getSignal("out2double"); + entity.m_sigdTwoTimeDepSOUT.recompute(2); + Signal<double, int> &aSignalInt = *(dynamic_cast<Signal<double, int> *>(&entity.getSignal("in_double"))); diff --git a/tests/signal-all.cpp b/tests/signal-all.cpp index e7ba104..879546e 100644 --- a/tests/signal-all.cpp +++ b/tests/signal-all.cpp @@ -13,6 +13,7 @@ #include <assert.h> #include <boost/test/output_test_stream.hpp> #include <boost/test/unit_test.hpp> +#include <iostream> #define BOOST_TEST_MODULE signal_array @@ -196,3 +197,20 @@ BOOST_AUTO_TEST_CASE(test_cast_helper) { DefaultCastRegisterer<std::string> defaultSR; boost::any aTest = defaultSR.cast(aiss); } + +BOOST_AUTO_TEST_CASE(signal_caster_basics) { + /// Get the singleton on registered types. + SignalCaster *asig_caster = SignalCaster::getInstance(); + + /// List the registered types. + std::vector<std::string> amap = asig_caster->listTypenames(); + for (std::vector<std::string>::iterator it = amap.begin(); it != amap.end(); + ++it) + std::cout << "signal_caster:listTypename: " << *it << std::endl; + + /// Unregister a type + asig_caster->unregisterCast(typeid(double)); + + asig_caster->destroy(); + BOOST_CHECK(true); +} diff --git a/tests/signal-cast-registerer.cpp b/tests/signal-cast-registerer.cpp index a37d352..00ac027 100644 --- a/tests/signal-cast-registerer.cpp +++ b/tests/signal-cast-registerer.cpp @@ -139,6 +139,15 @@ BOOST_AUTO_TEST_CASE(standard_double_registerer) { BOOST_AUTO_TEST_CASE(custom_vector_registerer) { dynamicgraph::Signal<dynamicgraph::Vector, int> myVectorSignal("vector"); + /// Create a second local vector registerer to generate an exception. + bool res = false; + try { + EigenCastRegisterer_V myVectorCast2; + } catch (const ExceptionSignal &aes) { + res = (aes.getCode() == ExceptionSignal::GENERIC); + } + // BOOST_CHECK(res); + // Print the signal name. { output_test_stream output; -- GitLab