| # Copyright (c) 2012 The Chromium OS Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| # |
| # Timer test: check time sanity when jumping between images |
| # |
| |
| import time |
| |
| DELAY = 5 |
| ERROR_MARGIN = 0.5 |
| |
| def test(helper): |
| helper.wait_output("idle task started") |
| helper.ec_command("sysinfo") |
| copy = helper.wait_output("Copy:\s+(?P<c>\S+)", use_re=True)["c"] |
| if copy != "RO": |
| helper.ec_command("sysjump ro") |
| helper.wait_output("idle task started") |
| helper.ec_command("gettime") |
| ec_start_time = helper.wait_output("Time: 0x[0-9a-f]* = (?P<t>[\d\.]+) s", |
| use_re=True)["t"] |
| time.sleep(DELAY) |
| helper.ec_command("sysjump a") |
| helper.wait_output("idle task started") |
| helper.ec_command("gettime") |
| ec_end_time = helper.wait_output("Time: 0x[0-9a-f]* = (?P<t>[\d\.]+) s", |
| use_re=True)["t"] |
| |
| time_diff = float(ec_end_time) - float(ec_start_time) |
| return time_diff >= DELAY and time_diff <= DELAY + ERROR_MARGIN |