summaryrefslogtreecommitdiff
path: root/test/timer_jump.py
blob: f506a69fcff06a3fea1720ac903435cdd321c4b9 (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
# Copyright 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 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