Add remote_boot_uuid to Context
This lets us track which boot a message came from and finally fix the
logger relying on ServerStatistics having all the required information
needed to build up the logfile header.
Change-Id: I17fc4c5718d5d69c7a1e154afdd83b1ccb388a8f
diff --git a/aos/network/message_bridge_test.cc b/aos/network/message_bridge_test.cc
index e2dddc4..1b6f594 100644
--- a/aos/network/message_bridge_test.cc
+++ b/aos/network/message_bridge_test.cc
@@ -11,6 +11,8 @@
#include "aos/util/file.h"
#include "gtest/gtest.h"
+DECLARE_string(boot_uuid);
+
namespace aos {
void SetShmBase(const std::string_view base);
@@ -47,7 +49,9 @@
public:
MessageBridgeParameterizedTest()
: config(aos::configuration::ReadConfig(
- absl::StrCat("aos/network/", GetParam().config))) {
+ absl::StrCat("aos/network/", GetParam().config))),
+ pi1_boot_uuid_(UUID::Random()),
+ pi2_boot_uuid_(UUID::Random()) {
util::UnlinkRecursive(ShmBase("pi1"));
util::UnlinkRecursive(ShmBase("pi2"));
}
@@ -57,11 +61,13 @@
void OnPi1() {
DoSetShmBase("pi1");
FLAGS_override_hostname = "raspberrypi";
+ FLAGS_boot_uuid = pi1_boot_uuid_.ToString();
}
void OnPi2() {
DoSetShmBase("pi2");
FLAGS_override_hostname = "raspberrypi2";
+ FLAGS_boot_uuid = pi2_boot_uuid_.ToString();
}
void MakePi1Server() {
@@ -148,6 +154,12 @@
"/pi1/aos", [](const Timestamp ×tamp) {
VLOG(1) << "/pi1/aos Timestamp " << FlatbufferToJson(×tamp);
});
+ pi1_test_event_loop->MakeWatcher(
+ "/pi2/aos", [this](const Timestamp ×tamp) {
+ VLOG(1) << "/pi2/aos Timestamp " << FlatbufferToJson(×tamp);
+ EXPECT_EQ(pi1_test_event_loop->context().remote_boot_uuid,
+ pi2_boot_uuid_);
+ });
}
void StartPi1Test() {
@@ -258,6 +270,12 @@
});
pi2_test_event_loop->MakeWatcher(
+ "/pi1/aos", [this](const Timestamp ×tamp) {
+ VLOG(1) << "/pi1/aos Timestamp " << FlatbufferToJson(×tamp);
+ EXPECT_EQ(pi2_test_event_loop->context().remote_boot_uuid,
+ pi1_boot_uuid_);
+ });
+ pi2_test_event_loop->MakeWatcher(
"/pi2/aos", [](const Timestamp ×tamp) {
VLOG(1) << "/pi2/aos Timestamp " << FlatbufferToJson(×tamp);
});
@@ -276,6 +294,8 @@
}
aos::FlatbufferDetachedBuffer<aos::Configuration> config;
+ const UUID pi1_boot_uuid_;
+ const UUID pi2_boot_uuid_;
std::unique_ptr<aos::ShmEventLoop> pi1_server_event_loop;
std::unique_ptr<MessageBridgeServer> pi1_message_bridge_server;
@@ -380,11 +400,12 @@
// Count the pongs.
int pong_count = 0;
- pong_event_loop.MakeWatcher(
- "/test", [&pong_count](const examples::Ping &ping) {
- ++pong_count;
- VLOG(1) << "Got ping back " << FlatbufferToJson(&ping);
- });
+ pong_event_loop.MakeWatcher("/test", [&pong_count, &pong_event_loop,
+ this](const examples::Ping &ping) {
+ EXPECT_EQ(pong_event_loop.context().remote_boot_uuid, pi1_boot_uuid_);
+ ++pong_count;
+ VLOG(1) << "Got ping back " << FlatbufferToJson(&ping);
+ });
FLAGS_override_hostname = "";