Add support for multiple hostnames for a given node
This will be useful both on a roboRIO and to allow encoding the team
number in the hostnames on the Pis.
Change-Id: I3975785240d7502bc3922c92e9faad4bdadda0d9
diff --git a/aos/configuration_test.cc b/aos/configuration_test.cc
index 0c0874b..c36bd93 100644
--- a/aos/configuration_test.cc
+++ b/aos/configuration_test.cc
@@ -677,6 +677,46 @@
GetNodeOrDie(&config.message(), config2.message().nodes()->Get(0)));
}
+TEST_F(ConfigurationTest, GetNodeFromHostname) {
+ FlatbufferDetachedBuffer<Configuration> config =
+ ReadConfig("aos/testdata/good_multinode.json");
+ EXPECT_EQ("pi1",
+ CHECK_NOTNULL(GetNodeFromHostname(&config.message(), "raspberrypi"))
+ ->name()
+ ->string_view());
+ EXPECT_EQ("pi2", CHECK_NOTNULL(
+ GetNodeFromHostname(&config.message(), "raspberrypi2"))
+ ->name()
+ ->string_view());
+ EXPECT_EQ(nullptr, GetNodeFromHostname(&config.message(), "raspberrypi3"));
+ EXPECT_EQ(nullptr, GetNodeFromHostname(&config.message(), "localhost"));
+ EXPECT_EQ(nullptr, GetNodeFromHostname(&config.message(), "3"));
+}
+
+TEST_F(ConfigurationTest, GetNodeFromHostnames) {
+ FlatbufferDetachedBuffer<Configuration> config =
+ ReadConfig("aos/testdata/good_multinode_hostnames.json");
+ EXPECT_EQ("pi1",
+ CHECK_NOTNULL(GetNodeFromHostname(&config.message(), "raspberrypi"))
+ ->name()
+ ->string_view());
+ EXPECT_EQ("pi2", CHECK_NOTNULL(
+ GetNodeFromHostname(&config.message(), "raspberrypi2"))
+ ->name()
+ ->string_view());
+ EXPECT_EQ("pi2", CHECK_NOTNULL(
+ GetNodeFromHostname(&config.message(), "raspberrypi3"))
+ ->name()
+ ->string_view());
+ EXPECT_EQ("pi2", CHECK_NOTNULL(
+ GetNodeFromHostname(&config.message(), "other"))
+ ->name()
+ ->string_view());
+ EXPECT_EQ(nullptr, GetNodeFromHostname(&config.message(), "raspberrypi4"));
+ EXPECT_EQ(nullptr, GetNodeFromHostname(&config.message(), "localhost"));
+ EXPECT_EQ(nullptr, GetNodeFromHostname(&config.message(), "3"));
+}
+
} // namespace testing
} // namespace configuration
} // namespace aos