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 }
TEST(PanicBroadcaster, Basic)
void panic(const char *short_reason_description, MonotonicDuration broadcasting_period=MonotonicDuration::fromMSec(100), const TransferPriority priority=TransferPriority::Default)
static GlobalDataTypeRegistry & instance()
const protocol::Panic::FieldTypes::reason_text & getReason() const
static MonotonicDuration fromMSec(int64_t ms)
Definition: time.hpp:41
int spinBoth(uavcan::MonotonicDuration duration)
Definition: test_node.hpp:176


uavcan_communicator
Author(s):
autogenerated on Wed Jan 11 2023 03:59:39