IoDelegate::ListFiles: detect error
Fixes: 180453172
Test: system/tools/aidl :) aidl --checkapi happy/hippo asdf
ERROR: happy/hippo: Failed to read directory 'happy/hippo': No such file
or directory
Change-Id: I43323c2f99fcb4ba4d5f61c2b921539b1f8fc721
diff --git a/aidl_checkapi.cpp b/aidl_checkapi.cpp
index de5c9ad..c45626d 100644
--- a/aidl_checkapi.cpp
+++ b/aidl_checkapi.cpp
@@ -373,8 +373,14 @@
static Result<AidlTypenames> load_from_dir(const Options& options, const IoDelegate& io_delegate,
const std::string& dir) {
+ Result<std::vector<std::string>> dir_files = io_delegate.ListFiles(dir);
+ if (!dir_files.ok()) {
+ AIDL_ERROR(dir) << dir_files.error();
+ return Error();
+ }
+
AidlTypenames typenames;
- for (const auto& file : io_delegate.ListFiles(dir)) {
+ for (const auto& file : *dir_files) {
if (!android::base::EndsWith(file, ".aidl")) continue;
if (internals::load_and_validate_aidl(file, options, io_delegate, &typenames,
nullptr /* imported_files */) != AidlError::OK) {
@@ -382,6 +388,7 @@
return Error();
}
}
+
return typenames;
}