| #!/bin/sh |
| |
| # Copyright (c) 2013 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. |
| |
| # This script describes how to replay the raw data and generate new logs. |
| |
| PROG=$0 |
| |
| # THIS_SCRIPT_PATH is typically as follows |
| # /usr/local/autotest/tests/firmware_TouchMTB/tools/machine_replay.sh |
| THIS_SCRIPT_PATH=`realpath $0` |
| |
| # PROJ_PATH would be |
| # /usr/local/autotest/tests/firmware_TouchMTB |
| TOOLS_SUBDIR="tools" |
| PROJ_PATH=${THIS_SCRIPT_PATH%/${TOOLS_SUBDIR}/$(basename $PROG)} |
| |
| # Source the local common script. |
| . "${PROJ_PATH}/${TOOLS_SUBDIR}/firmware_common.sh" || exit 1 |
| |
| # Read command flags |
| . /usr/share/misc/shflags |
| DEFINE_string board_path "" "the unit test path of the board" "b" |
| |
| FLAGS_HELP="USAGE: $PROG [flags]" |
| |
| FLAGS "$@" || exit 1 |
| eval set -- "${FLAGS_ARGV}" |
| set -e |
| |
| # Check if the board path has been specified. |
| if [ -z $FLAGS_board_path ]; then |
| die " |
| Should specify the unitest path of the board with the option '"-b"'. E.g., |
| (cr) $ tools/machine_replay.sh -b tests/logs/lumpy \n" |
| fi |
| |
| |
| # Make an empty directory to hold the unit test files. |
| TMP_LOG_ROOT="/tmp/touch_firmware_test" |
| make_empty_dir "$TMP_LOG_ROOT" |
| |
| # If this is a relative path, convert it to the correct absolute path |
| # as this script might not be executed under $PROJ_PATH. This might occur |
| # when executing the script through ssh. |
| # Note: do not use "[[ "$FLAGS_board_path" = /* ]]" below for better protability |
| if [ `echo "$FLAGS_board_path" | head -c1` != "/" ]; then |
| FLAGS_board_path="${PROJ_PATH}/$FLAGS_board_path" |
| fi |
| |
| # Copy the unit test logs to the directory just created. |
| if [ -d ${FLAGS_board_path} ]; then |
| cp -r ${FLAGS_board_path}/* "$TMP_LOG_ROOT" |
| else |
| die "Error: the board path $FLAGS_board_path does not exist!" |
| fi |
| |
| # Replay the logs on the machine. |
| cd $PROJ_PATH |
| export DISPLAY=:0 |
| export XAUTHORITY=/home/chronos/.Xauthority |
| for round_dir in "$TMP_LOG_ROOT"/*; do |
| if [ -d $round_dir -a ! -L $round_dir ]; then |
| python main.py -m complete --skip_html -i 3 --replay $round_dir |
| fi |
| done |