Send timing report when sending data in config validator
SkipTimingReport() is called by default in simulation_logger. We want
to send timing report while sending data on channels in
config_validator_lib so add flexibility for this.
Change-Id: I3193fad4725d67297175956311b79063d2771872
Signed-off-by: James Kuszmaul <james.kuszmaul@bluerivertech.com>
diff --git a/aos/util/config_validator_lib.cc b/aos/util/config_validator_lib.cc
index 2bd660a..e388bb7 100644
--- a/aos/util/config_validator_lib.cc
+++ b/aos/util/config_validator_lib.cc
@@ -182,6 +182,8 @@
if (!send_data_on_channels && (configuration::NodesCount(config) == 1u)) {
continue;
}
+ // Send timing report when we are sending data.
+ const bool do_skip_timing_report = !send_data_on_channels;
for (const LoggerNodeSetValidation *logger_set :
*validation_config->logging()->logger_sets()) {
SCOPED_TRACE(aos::FlatbufferToJson(logger_set));
@@ -192,9 +194,11 @@
for (const auto &node : *logger_set->loggers()) {
logger_nodes.push_back(node->str());
}
- loggers = MakeLoggersForNodes(&factory, logger_nodes, log_path);
+ loggers = MakeLoggersForNodes(&factory, logger_nodes, log_path,
+ do_skip_timing_report);
} else {
- loggers = MakeLoggersForAllNodes(&factory, log_path);
+ loggers =
+ MakeLoggersForAllNodes(&factory, log_path, do_skip_timing_report);
}
std::vector<std::unique_ptr<EventLoop>> test_loops;
diff --git a/aos/util/simulation_logger.cc b/aos/util/simulation_logger.cc
index 24691ef..513fa65 100644
--- a/aos/util/simulation_logger.cc
+++ b/aos/util/simulation_logger.cc
@@ -4,13 +4,16 @@
namespace aos::util {
LoggerState::LoggerState(aos::SimulatedEventLoopFactory *factory,
- const aos::Node *node, std::string_view output_folder)
+ const aos::Node *node, std::string_view output_folder,
+ bool do_skip_timing_report)
: event_loop_(factory->MakeEventLoop("logger", node)),
namer_(std::make_unique<aos::logger::MultiNodeFilesLogNamer>(
absl::StrCat(output_folder, "/", logger::MaybeNodeName(node), "/"),
event_loop_.get())),
logger_(std::make_unique<aos::logger::Logger>(event_loop_.get())) {
- event_loop_->SkipTimingReport();
+ if (do_skip_timing_report) {
+ event_loop_->SkipTimingReport();
+ }
event_loop_->SkipAosLog();
event_loop_->OnRun([this]() { logger_->StartLogging(std::move(namer_)); });
}
@@ -18,23 +21,24 @@
std::vector<std::unique_ptr<LoggerState>> MakeLoggersForNodes(
aos::SimulatedEventLoopFactory *factory,
const std::vector<std::string> &nodes_to_log,
- std::string_view output_folder) {
+ std::string_view output_folder, bool do_skip_timing_report) {
std::vector<std::unique_ptr<LoggerState>> loggers;
for (const std::string &node : nodes_to_log) {
loggers.emplace_back(std::make_unique<LoggerState>(
factory, aos::configuration::GetNode(factory->configuration(), node),
- output_folder));
+ output_folder, do_skip_timing_report));
}
return loggers;
}
std::vector<std::unique_ptr<LoggerState>> MakeLoggersForAllNodes(
- aos::SimulatedEventLoopFactory *factory, std::string_view output_folder) {
+ aos::SimulatedEventLoopFactory *factory, std::string_view output_folder,
+ bool do_skip_timing_report) {
std::vector<std::unique_ptr<LoggerState>> loggers;
for (const aos::Node *node :
configuration::GetNodes(factory->configuration())) {
- loggers.emplace_back(
- std::make_unique<LoggerState>(factory, node, output_folder));
+ loggers.emplace_back(std::make_unique<LoggerState>(
+ factory, node, output_folder, do_skip_timing_report));
}
return loggers;
}
diff --git a/aos/util/simulation_logger.h b/aos/util/simulation_logger.h
index f431b4c..af43d02 100644
--- a/aos/util/simulation_logger.h
+++ b/aos/util/simulation_logger.h
@@ -9,7 +9,8 @@
class LoggerState {
public:
LoggerState(aos::SimulatedEventLoopFactory *factory, const aos::Node *node,
- std::string_view output_folder);
+ std::string_view output_folder,
+ bool do_skip_timing_report = true);
private:
std::unique_ptr<aos::EventLoop> event_loop_;
@@ -23,11 +24,12 @@
std::vector<std::unique_ptr<LoggerState>> MakeLoggersForNodes(
aos::SimulatedEventLoopFactory *factory,
const std::vector<std::string> &nodes_to_log,
- std::string_view output_folder);
+ std::string_view output_folder, bool do_skip_timing_report = true);
// Creates loggers for all of the nodes.
std::vector<std::unique_ptr<LoggerState>> MakeLoggersForAllNodes(
- aos::SimulatedEventLoopFactory *factory, std::string_view output_folder);
+ aos::SimulatedEventLoopFactory *factory, std::string_view output_folder,
+ bool do_skip_timing_report = true);
} // namespace aos::util
#endif // AOS_UTIL_SIMULATION_LOGGER_H_