summaryrefslogtreecommitdiff
path: root/test/timer_jump.py
blob: a4350cecdfccb4cc54632dbc737525538384181e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# Copyright 2012 The ChromiumOS Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
#
# Timer test: check time consistency 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