Send *Statistics and Timestamp messages from SimulatedMessageBridge
This makes the simulation environment much closer to reality.
Change-Id: Ie0f44c17d9c9a750363335def1b008cef8c809b0
diff --git a/aos/events/logging/BUILD b/aos/events/logging/BUILD
index b5a4377..c3af9e2 100644
--- a/aos/events/logging/BUILD
+++ b/aos/events/logging/BUILD
@@ -131,6 +131,9 @@
flatbuffers = [
"//aos/events:ping_fbs",
"//aos/events:pong_fbs",
+ "//aos/network:message_bridge_client_fbs",
+ "//aos/network:message_bridge_server_fbs",
+ "//aos/network:timestamp_fbs",
],
deps = ["//aos/events:config"],
)
diff --git a/aos/events/logging/logger.cc b/aos/events/logging/logger.cc
index eff977b..abab5f6 100644
--- a/aos/events/logging/logger.cc
+++ b/aos/events/logging/logger.cc
@@ -593,6 +593,10 @@
event_loop_factory_->DisableForwarding(remapped_channel);
}
+
+ // If we are replaying a log, we don't want a bunch of redundant messages
+ // from both the real message bridge and simulated message bridge.
+ event_loop_factory_->DisableStatistics();
}
// While we are starting the system up, we might be relying on matching data
diff --git a/aos/events/logging/logger_test.cc b/aos/events/logging/logger_test.cc
index b6a30cb..7dbbb8e 100644
--- a/aos/events/logging/logger_test.cc
+++ b/aos/events/logging/logger_test.cc
@@ -171,6 +171,7 @@
unlink(logfile.c_str());
LOG(INFO) << "Logging data to " << logfile;
+ ping_.set_quiet(true);
{
DetachedBufferWriter writer(logfile);
@@ -352,25 +353,25 @@
// Timing reports, pings
EXPECT_THAT(CountChannelsData(logfiles_[0]),
- ::testing::ElementsAre(::testing::Pair(1, 40),
- ::testing::Pair(4, 2001)));
+ ::testing::ElementsAre(::testing::Pair(4, 40),
+ ::testing::Pair(10, 2001)));
// Timestamps for pong
EXPECT_THAT(CountChannelsTimestamp(logfiles_[0]),
- ::testing::ElementsAre(::testing::Pair(5, 2001)));
+ ::testing::ElementsAre(::testing::Pair(11, 2001)));
// Pong data.
EXPECT_THAT(CountChannelsData(logfiles_[1]),
- ::testing::ElementsAre(::testing::Pair(5, 2001)));
+ ::testing::ElementsAre(::testing::Pair(11, 2001)));
// No timestamps
EXPECT_THAT(CountChannelsTimestamp(logfiles_[1]), ::testing::ElementsAre());
// Timing reports and pongs.
EXPECT_THAT(CountChannelsData(logfiles_[2]),
- ::testing::ElementsAre(::testing::Pair(3, 40),
- ::testing::Pair(5, 2001)));
+ ::testing::ElementsAre(::testing::Pair(9, 40),
+ ::testing::Pair(11, 2001)));
// And ping timestamps.
EXPECT_THAT(CountChannelsTimestamp(logfiles_[2]),
- ::testing::ElementsAre(::testing::Pair(4, 2001)));
+ ::testing::ElementsAre(::testing::Pair(10, 2001)));
}
LogReader reader({std::vector<std::string>{logfiles_[0]},
diff --git a/aos/events/logging/multinode_pingpong.json b/aos/events/logging/multinode_pingpong.json
index 1b1424e..a78b42c 100644
--- a/aos/events/logging/multinode_pingpong.json
+++ b/aos/events/logging/multinode_pingpong.json
@@ -33,6 +33,54 @@
"num_senders": 20,
"max_size": 2048
},
+ {
+ "name": "/pi1/aos",
+ "type": "aos.message_bridge.ServerStatistics",
+ "logger": "NOT_LOGGED",
+ "source_node": "pi1"
+ },
+ {
+ "name": "/pi2/aos",
+ "type": "aos.message_bridge.ServerStatistics",
+ "logger": "NOT_LOGGED",
+ "source_node": "pi2"
+ },
+ {
+ "name": "/pi1/aos",
+ "type": "aos.message_bridge.ClientStatistics",
+ "logger": "NOT_LOGGED",
+ "source_node": "pi1"
+ },
+ {
+ "name": "/pi2/aos",
+ "type": "aos.message_bridge.ClientStatistics",
+ "logger": "NOT_LOGGED",
+ "source_node": "pi2"
+ },
+ {
+ "name": "/pi1/aos",
+ "type": "aos.message_bridge.Timestamp",
+ "logger": "NOT_LOGGED",
+ "source_node": "pi1",
+ "destination_nodes": [
+ {
+ "name": "pi2",
+ "timestamp_logger": "NOT_LOGGED"
+ }
+ ]
+ },
+ {
+ "name": "/pi2/aos",
+ "type": "aos.message_bridge.Timestamp",
+ "logger": "NOT_LOGGED",
+ "source_node": "pi2",
+ "destination_nodes": [
+ {
+ "name": "pi1",
+ "timestamp_logger": "NOT_LOGGED"
+ }
+ ]
+ },
/* Forwarded to pi2 */
{
"name": "/test",