# 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
