panic_broadcaster.cpp
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2014 Pavel Kirienko <pavel.kirienko@gmail.com>
3  */
4 
5 #include <gtest/gtest.h>
7 #include "helpers.hpp"
8 
9 
10 TEST(PanicBroadcaster, Basic)
11 {
13 
14  uavcan::PanicBroadcaster panicker(nodes.a);
15 
17 
20 
21  ASSERT_LE(0, sub.start());
22 
23  panicker.panic("I lost my towel!"); // Only the first 7 chars allowed
24 
25  ASSERT_STREQ("I lost ", panicker.getReason().c_str());
26  ASSERT_TRUE(panicker.isPanicking());
27 
29  ASSERT_TRUE(sub.collector.msg.get());
30  ASSERT_STREQ("I lost ", sub.collector.msg->reason_text.c_str());
31  sub.collector.msg.reset();
32 
34  ASSERT_TRUE(sub.collector.msg.get());
35  ASSERT_STREQ("I lost ", sub.collector.msg->reason_text.c_str());
36  sub.collector.msg.reset();
37 
39  ASSERT_TRUE(sub.collector.msg.get());
40  ASSERT_STREQ("I lost ", sub.collector.msg->reason_text.c_str());
41  sub.collector.msg.reset();
42 
43  panicker.dontPanic();
44  ASSERT_FALSE(panicker.isPanicking());
45 
47  ASSERT_FALSE(sub.collector.msg.get());
48 }
uavcan::DefaultDataTypeRegistrator
Definition: global_data_type_registry.hpp:186
SubscriberWithCollector
Definition: libuavcan/libuavcan/test/protocol/helpers.hpp:33
uavcan::PanicBroadcaster::panic
void panic(const char *short_reason_description, MonotonicDuration broadcasting_period=MonotonicDuration::fromMSec(100), const TransferPriority priority=TransferPriority::Default)
Definition: panic_broadcaster.hpp:50
uavcan::DurationBase< MonotonicDuration >::fromMSec
static MonotonicDuration fromMSec(int64_t ms)
Definition: time.hpp:41
uavcan::PanicBroadcaster::getReason
const protocol::Panic::FieldTypes::reason_text & getReason() const
Definition: panic_broadcaster.hpp:86
uavcan::PanicBroadcaster::dontPanic
void dontPanic()
Definition: panic_broadcaster.hpp:78
SubscriberWithCollector::start
int start()
Definition: libuavcan/libuavcan/test/protocol/helpers.hpp:45
TEST
TEST(PanicBroadcaster, Basic)
Definition: panic_broadcaster.cpp:10
uavcan::PanicBroadcaster
Definition: panic_broadcaster.hpp:18
helpers.hpp
InterlinkedTestNodes
Definition: test_node.hpp:149
SubscriberWithCollector::collector
Collector collector
Definition: libuavcan/libuavcan/test/protocol/helpers.hpp:38
InterlinkedTestNodes::a
TestNode a
Definition: test_node.hpp:155
SubscriptionCollector::msg
std::unique_ptr< DataType > msg
Definition: libuavcan/libuavcan/test/protocol/helpers.hpp:23
InterlinkedTestNodes::spinBoth
int spinBoth(uavcan::MonotonicDuration duration)
Definition: test_node.hpp:176
panic_broadcaster.hpp
uavcan::GlobalDataTypeRegistry::instance
static GlobalDataTypeRegistry & instance()
Definition: uc_global_data_type_registry.cpp:128
uavcan::PanicBroadcaster::isPanicking
bool isPanicking() const
Definition: panic_broadcaster.hpp:84
InterlinkedTestNodes::b
TestNode b
Definition: test_node.hpp:156


uavcan_communicator
Author(s):
autogenerated on Fri Dec 13 2024 03:10:02