CheckpointLogger: Refactor checkpoint usage for tests
BUG=chromium:878233
TEST=run tests that uses checkpoint function
power_LoadTest, power_Display, etc.
Change-Id: Ic1fba5193a543d05ff2f28f3c30078d4e71ba414
Signed-off-by: Sean Kao <seankao@google.com>
Reviewed-on: https://chromium-review.googlesource.com/1193203
Reviewed-by: Ruben Rodriguez Buchillon <coconutruben@chromium.org>
diff --git a/client/cros/power/power_test.py b/client/cros/power/power_test.py
index af4eb76..b6c6bc2 100644
--- a/client/cros/power/power_test.py
+++ b/client/cros/power/power_test.py
@@ -40,6 +40,8 @@
self.keyvals = dict()
self.status = power_status.get_status()
+ self._checkpoint_logger = power_status.CheckpointLogger()
+
measurements = []
if not self.status.on_ac():
measurements.append(
@@ -49,15 +51,19 @@
elif power_utils.has_rapl_support():
measurements += power_rapl.create_rapl()
self._plog = power_status.PowerLogger(measurements,
- seconds_period=seconds_period)
+ seconds_period=seconds_period,
+ checkpoint_logger=self._checkpoint_logger)
self._psr = power_utils.DisplayPanelSelfRefresh()
self._services = service_stopper.ServiceStopper(
service_stopper.ServiceStopper.POWER_DRAW_SERVICES)
self._services.stop_services()
self._stats = power_status.StatoMatic()
- self._tlog = power_status.TempLogger([], seconds_period=seconds_period)
- self._clog = power_status.CPUStatsLogger(seconds_period=seconds_period)
+ self._tlog = power_status.TempLogger([],
+ seconds_period=seconds_period,
+ checkpoint_logger=self._checkpoint_logger)
+ self._clog = power_status.CPUStatsLogger(seconds_period=seconds_period,
+ checkpoint_logger=self._checkpoint_logger)
def warmup(self, warmup_time=30):
"""Warm up.
@@ -95,9 +101,7 @@
if not start_time:
start_time = self._start_time
self.status.refresh()
- self._plog.checkpoint(name, start_time)
- self._tlog.checkpoint(name, start_time)
- self._clog.checkpoint(name, start_time)
+ self._checkpoint_logger.checkpoint(name, start_time)
self._psr.refresh()
def publish_keyvals(self):
diff --git a/client/site_tests/power_LoadTest/power_LoadTest.py b/client/site_tests/power_LoadTest/power_LoadTest.py
index 497511e..a2817a0 100755
--- a/client/site_tests/power_LoadTest/power_LoadTest.py
+++ b/client/site_tests/power_LoadTest/power_LoadTest.py
@@ -266,9 +266,16 @@
measurements += power_rapl.create_powercap()
elif power_utils.has_rapl_support():
measurements += power_rapl.create_rapl()
- self._plog = power_status.PowerLogger(measurements, seconds_period=20)
- self._tlog = power_status.TempLogger([], seconds_period=20)
- self._clog = power_status.CPUStatsLogger(seconds_period=20)
+ self._checkpoint_logger = power_status.CheckpointLogger()
+ self._plog = power_status.PowerLogger(measurements,
+ seconds_period=20,
+ checkpoint_logger=self._checkpoint_logger)
+ self._tlog = power_status.TempLogger([],
+ seconds_period=20,
+ checkpoint_logger=self._checkpoint_logger)
+ self._clog = power_status.CPUStatsLogger(
+ seconds_period=20,
+ checkpoint_logger=self._checkpoint_logger)
self._meas_logs = [self._plog, self._tlog, self._clog]
for log in self._meas_logs:
log.start()
@@ -368,8 +375,7 @@
script_logging.set();
pagetime_tracking.set();
- for log in self._meas_logs:
- log.checkpoint('loop%d' % (i), start_time)
+ self._checkpoint_logger.checkpoint('loop%d' % (i), start_time)
if self._verbose:
logging.debug('loop %d completed', i)
@@ -415,8 +421,7 @@
for task, tstart, tend in self._task_tracker:
- for log in self._meas_logs:
- log.checkpoint(task, tstart, tend)
+ self._checkpoint_logger.checkpoint(task, tstart, tend)
keyvals = {}
for log in self._meas_logs:
@@ -508,9 +513,7 @@
self.write_perf_keyval(keyvals)
for log in self._meas_logs:
log.save_results(self.resultsdir)
- # checkpoint data for all measurement loggers should be the same
- # just save checkpoint data for one of them
- self._plog.save_checkpoint_data(self.resultsdir)
+ self._checkpoint_logger.save_checkpoint_data(self.resultsdir)
pdash = power_dashboard.PowerLoggerDashboard( \
self._plog, self.tagged_testname, self.resultsdir)
pdash.upload()