Add a test of checking timer value when system jump

This test checks the sanity of timer value when jumping between images.

BUG=chrome-os-partner:9188
TEST=Test passed

Change-Id: If264e28e4ceec6ddb8325f3496825a40e7a038d8
Reviewed-on: https://gerrit.chromium.org/gerrit/25371
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
Reviewed-by: Randall Spangler <rspangler@chromium.org>
Commit-Ready: Vic Yang <victoryang@chromium.org>
Tested-by: Vic Yang <victoryang@chromium.org>
This commit is contained in:
Vic Yang
2012-06-15 13:59:07 +08:00
committed by Gerrit
parent 8c55761613
commit b8be40607e
3 changed files with 48 additions and 1 deletions

View File

@@ -6,7 +6,7 @@
# on-board test binaries build
#
test-list=hello pingpong timer_calib timer_dos mutex
test-list=hello pingpong timer_calib timer_dos timer_jump mutex
#disable: powerdemo
pingpong-y=pingpong.o

28
test/timer_jump.py Normal file
View File

@@ -0,0 +1,28 @@
# 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("Console is enabled")
helper.ec_command("sysjump ro")
helper.wait_output("Console is enabled")
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("Console is enabled")
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

19
test/timer_jump.tasklist Normal file
View File

@@ -0,0 +1,19 @@
/* 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.
*/
/**
* List of enabled tasks in the priority order
*
* The first one has the lowest priority.
*
* For each task, use the macro TASK(n, r, d) where :
* 'n' in the name of the task
* 'r' in the main routine of the task
* 'd' in an opaque parameter passed to the routine at startup
*/
#define CONFIG_TASK_LIST \
TASK(WATCHDOG, watchdog_task, NULL) \
TASK(CONSOLE, console_task, NULL) \
TASK(HOSTCMD, host_command_task, NULL)