Detect log files without a header earlier
Waiting makes it harder to figure out what actually was wrong.
Change-Id: I8a57aa692db7559b613ca04cf68431e061bb6990
diff --git a/aos/events/logging/logger.cc b/aos/events/logging/logger.cc
index 7d0040c..134c202 100644
--- a/aos/events/logging/logger.cc
+++ b/aos/events/logging/logger.cc
@@ -35,7 +35,16 @@
namespace aos {
namespace logger {
+namespace {
+// Helper to safely read a header, or CHECK.
+FlatbufferVector<LogFileHeader> MaybeReadHeaderOrDie(
+ const std::vector<std::vector<std::string>> &filenames) {
+ CHECK_GE(filenames.size(), 1u) << ": Empty filenames list";
+ CHECK_GE(filenames[0].size(), 1u) << ": Empty filenames list";
+ return ReadHeader(filenames[0][0]);
+}
namespace chrono = std::chrono;
+} // namespace
Logger::Logger(EventLoop *event_loop, const Configuration *configuration,
std::function<bool(const Channel *)> should_log)
@@ -716,7 +725,7 @@
LogReader::LogReader(const std::vector<std::vector<std::string>> &filenames,
const Configuration *replay_configuration)
: filenames_(filenames),
- log_file_header_(ReadHeader(filenames[0][0])),
+ log_file_header_(MaybeReadHeaderOrDie(filenames)),
replay_configuration_(replay_configuration) {
MakeRemappedConfig();