Skip to content

Commit d503977

Browse files
[tests] Improve coverage of signal-cast-registered.
1 parent c24bc64 commit d503977

File tree

3 files changed

+31
-8
lines changed

3 files changed

+31
-8
lines changed

tests/debug-real-time-tracer.cpp

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -42,12 +42,6 @@ struct MyEntity : public dynamicgraph::Entity {
4242
signalRegistration(m_sigdSIN << m_sigdTimeDepSOUT << m_sigdTwoTimeDepSOUT);
4343
}
4444

45-
virtual void display(std::ostream &os) const {
46-
os << "Hello! My name is " << getName() << " !" << std::endl;
47-
}
48-
49-
virtual const std::string &getClassName() const { return CLASS_NAME; }
50-
5145
double &update(double &res, const int &inTime) {
5246
const double &aDouble = m_sigdSIN(inTime);
5347
res = aDouble;
@@ -64,8 +58,8 @@ BOOST_AUTO_TEST_CASE(test_tracer) {
6458
TracerRealTime &atracer = *dynamic_cast<TracerRealTime *>(
6559
FactoryStorage::getInstance()->newEntity("TracerRealTime", "my-tracer"));
6660

67-
Entity &entity =
68-
*FactoryStorage::getInstance()->newEntity("MyEntity", "my-entity");
61+
MyEntity &entity = *dynamic_cast<MyEntity *>(
62+
FactoryStorage::getInstance()->newEntity("MyEntity", "my-entity"));
6963

7064
std::string rootdir("/tmp");
7165
std::string basename("my-tracer");
@@ -80,6 +74,8 @@ BOOST_AUTO_TEST_CASE(test_tracer) {
8074
/// Add trace by name
8175
SignalBase<int> &aSignal = entity.getSignal("out2double");
8276

77+
entity.m_sigdTwoTimeDepSOUT.recompute(2);
78+
8379
Signal<double, int> &aSignalInt =
8480
*(dynamic_cast<Signal<double, int> *>(&entity.getSignal("in_double")));
8581

tests/signal-all.cpp

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
#include <assert.h>
1414
#include <boost/test/output_test_stream.hpp>
1515
#include <boost/test/unit_test.hpp>
16+
#include <iostream>
1617

1718
#define BOOST_TEST_MODULE signal_array
1819

@@ -196,3 +197,20 @@ BOOST_AUTO_TEST_CASE(test_cast_helper) {
196197
DefaultCastRegisterer<std::string> defaultSR;
197198
boost::any aTest = defaultSR.cast(aiss);
198199
}
200+
201+
BOOST_AUTO_TEST_CASE(signal_caster_basics) {
202+
/// Get the singleton on registered types.
203+
SignalCaster *asig_caster = SignalCaster::getInstance();
204+
205+
/// List the registered types.
206+
std::vector<std::string> amap = asig_caster->listTypenames();
207+
for (std::vector<std::string>::iterator it = amap.begin(); it != amap.end();
208+
++it)
209+
std::cout << "signal_caster:listTypename: " << *it << std::endl;
210+
211+
/// Unregister a type
212+
asig_caster->unregisterCast(typeid(double));
213+
214+
asig_caster->destroy();
215+
BOOST_CHECK(true);
216+
}

tests/signal-cast-registerer.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,15 @@ BOOST_AUTO_TEST_CASE(standard_double_registerer) {
139139
BOOST_AUTO_TEST_CASE(custom_vector_registerer) {
140140
dynamicgraph::Signal<dynamicgraph::Vector, int> myVectorSignal("vector");
141141

142+
/// Create a second local vector registerer to generate an exception.
143+
bool res = false;
144+
try {
145+
EigenCastRegisterer_V myVectorCast2;
146+
} catch (const ExceptionSignal &aes) {
147+
res = (aes.getCode() == ExceptionSignal::GENERIC);
148+
}
149+
// BOOST_CHECK(res);
150+
142151
// Print the signal name.
143152
{
144153
output_test_stream output;

0 commit comments

Comments
 (0)