Checks each interface in an init_rc file is a known hidl_interface.
Test: Adding a misspelling to an init_rc's interface line and observing
build failure.
Bug: 77646540
Change-Id: I58f66d73f0bd9b4203e8259161843b56ad428d73
diff --git a/init/service_parser.cpp b/init/service_parser.cpp
index 33ed050..ba35104 100644
--- a/init/service_parser.cpp
+++ b/init/service_parser.cpp
@@ -152,6 +152,12 @@
return Error() << "Interface name must not be a value name '" << interface_name << "'";
}
+ if (known_interfaces_ && known_interfaces_->count(interface_name) == 0) {
+ return Error() << "Interface is not in the known set of hidl_interfaces: '"
+ << interface_name << "'. Please ensure the interface is built "
+ << "by a hidl_interface target.";
+ }
+
const std::string fullname = interface_name + "/" + instance_name;
for (const auto& svc : *service_list_) {