Handle non-logged channels in ChannelMessageIsLoggedOnNode
We were not handling NOT_LOGGED without crashing on single node
configurations. Fix that.
Change-Id: I620560161ea11d44dc024ba501942892c0202293
Signed-off-by: Austin Schuh <austin.schuh@bluerivertech.com>
diff --git a/aos/configuration_test.cc b/aos/configuration_test.cc
index 891dedb..ff991a2 100644
--- a/aos/configuration_test.cc
+++ b/aos/configuration_test.cc
@@ -459,6 +459,8 @@
&bar_node.message()));
EXPECT_FALSE(ChannelMessageIsLoggedOnNode(&logged_on_self_channel.message(),
&baz_node.message()));
+ EXPECT_TRUE(
+ ChannelMessageIsLoggedOnNode(&logged_on_self_channel.message(), nullptr));
// No logger.
EXPECT_FALSE(ChannelMessageIsLoggedOnNode(¬_logged_channel.message(),
@@ -467,6 +469,8 @@
&bar_node.message()));
EXPECT_FALSE(ChannelMessageIsLoggedOnNode(¬_logged_channel.message(),
&baz_node.message()));
+ EXPECT_FALSE(
+ ChannelMessageIsLoggedOnNode(¬_logged_channel.message(), nullptr));
// Remote logger.
EXPECT_FALSE(ChannelMessageIsLoggedOnNode(&logged_on_remote_channel.message(),
@@ -493,6 +497,53 @@
&baz_node.message()));
}
+// Tests that our node message is logged helpers work as intended.
+TEST_F(ConfigurationDeathTest, ChannelMessageIsLoggedOnNode) {
+ FlatbufferDetachedBuffer<Channel> logged_on_both_channel(JsonToFlatbuffer(
+ R"channel({
+ "name": "/test",
+ "type": "aos.examples.Ping",
+ "source_node": "bar",
+ "logger": "LOCAL_AND_REMOTE_LOGGER",
+ "logger_nodes": ["baz"],
+ "destination_nodes": [
+ {
+ "name": "baz"
+ }
+ ]
+})channel",
+ Channel::MiniReflectTypeTable()));
+
+ FlatbufferDetachedBuffer<Channel> logged_on_separate_logger_node_channel(
+ JsonToFlatbuffer(
+ R"channel({
+ "name": "/test",
+ "type": "aos.examples.Ping",
+ "source_node": "bar",
+ "logger": "REMOTE_LOGGER",
+ "logger_nodes": ["foo"],
+ "destination_nodes": [
+ {
+ "name": "baz"
+ }
+ ]
+})channel",
+ Channel::MiniReflectTypeTable()));
+
+ EXPECT_DEATH(
+ {
+ ChannelMessageIsLoggedOnNode(&logged_on_both_channel.message(),
+ nullptr);
+ },
+ "Unsupported logging configuration in a single node world");
+ EXPECT_DEATH(
+ {
+ ChannelMessageIsLoggedOnNode(
+ &logged_on_separate_logger_node_channel.message(), nullptr);
+ },
+ "Unsupported logging configuration in a single node world");
+}
+
// Tests that our forwarding timestamps are logged helpers work as intended.
TEST_F(ConfigurationTest, ConnectionDeliveryTimeIsLoggedOnNode) {
FlatbufferDetachedBuffer<Channel> logged_on_self_channel(JsonToFlatbuffer(