⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 runtest

📁 RTEMS (Real-Time Executive for Multiprocessor Systems) is a free open source real-time operating sys
💻
字号:
#! /bin/sh -p## Run rtems tests on the Motorola MCF5206eLITE Coldfire Evaluation board# using gdb configured with P&E Micro Background Debug Mode debugging# interface.## This program generates a gdb script to run each test, intercept# serial port output and put log into output file.## Author: Victor V. Vengerov <vvv@oktet.ru># Copyright (C) 2000 OKTET Ltd., St.-Petersburg, Russia## Partially based on runtest script for powerpc psim.##  COPYRIGHT (c) 1989-1999.#  On-Line Applications Research Corporation (OAR).##  The license and distribution terms for this file may be#  found in found in the file LICENSE in this distribution or at#  http://www.rtems.com/license/LICENSE.##  @(#) $Id: runtest,v 1.1.4.2 2003/09/04 18:45:31 joel Exp $## progname=`basename $0`progname=${0##*/}        # fast basename hack for ksh, bashUSAGE=\"usage: $progname [ -opts ] test [ test ... ]        -r runname   -- specify name of run program to be used        -v           -- verbose output        -d           -- don't remove temporary files (for debugging only)        -l logdir    -- specify log directory (default is 'logdir')  Specify test as 'test' or 'test.exe'.  All multiprocessing tests *must* be specified simply as 'mp01', etc."# export everythingset -a#   log an error to stderrprerr(){    echo "$*" >&2}fatal() {    [ "$1" ] && prerr $*    prerr "$USAGE"    exit 1}warn() {    [ "$1" ] && prerr $*}# run at normal and signalled exittest_exit(){    exit_code=$1    rm -f ${logfile}.tmp*    [ "$run_pid" ] && kill -9 $run_pid    exit $exit_code}## process the options## defaults for getopt vars## max_run_time is defaulted to 5 minutes#verbose=""runprog=sh-rtemself-runlogdir=logmax_run_time=$((10 * 60))#sizeof_ram=$((1 * 1024 * 1024))debugging="no"#console_mode=0while getopts vdips:r:b:l: OPTdo    case "$OPT" in	v)	    verbose="yes";;        d)            debugging="yes";;        l)            logdir="$OPTARG";;        r)            runprog="$OPTARG";;#        p)#            console_mode=1;;#        i)#            console_mode=2;;        *)            fatal;;    esacdonelet $((shiftcount = $OPTIND - 1))shift $shiftcountargs=$*## Run the tests#tests="$args"if [ ! "$tests" ]then     set -- `echo *.exe`     tests="$*"fi[ -d $logdir ] ||  mkdir $logdir || fatal "could not create log directory ($logdir)"# where the tmp files gotrap "test_exit" 1 2 3 13 14 15for tfile in $testsdo   tname=`basename $tfile .exe`   cpus="1"   TEST_TYPE="single"   case "$tname" in       # size is no longer interactive.       monitor* | termios* | fileio*)            warn "Skipping $tname; it is interactive"            continue            ;;       *-node2*)           warn "Skipping $tname; 'runtest' runs both nodes when for *-node1"           continue           ;;       *-node1*)           warn "Running both nodes associated with $tname"           tname=`echo $tname | sed 's/-node.*//'`           TEST_TYPE="mp"           ;;       minimum*|spfatal*)           continue           ;;   esac   if [ "$TEST_TYPE" = "mp" ] ; then       fatal "MP tests not supported for this board"   fi   if [ $TEST_TYPE = "single" ] ; then     logfile=$logdir/${tname}     infofile=${logfile}.info#     scriptfile=${logfile}.ss#     runlogfile=${logfile}.run     rm -f ${logfile}.tmp*     date=`date`     echo "Starting $tname at $date"     ${runprog} "${tfile}" > "${logfile}"  2>&1 &     run_pid=$!     {         time_run=0         while [ $time_run -lt $max_run_time ] ; do             sleep 10s             if kill -0 $run_pid 2> /dev/null ; then                 time_run=$((time_run+10)) ;             else                 exit 0             fi         done         kill -2 $run_pid 2> /dev/null         {             sleep 5s ;              if kill -0 $run_pid 2> /dev/null ; then                 kill -9 $run_pid 2> /dev/null ;             fi         } &     } &     wait $run_pid     run_status=$?     if [ $run_status -ge 128 ] ; then         ran_too_long="yes" ;     else         ran_too_long="no"     fi     if [ $run_status -ne 0 ] ; then         test_failed="yes" ;     else         test_failed="no"     fi     run_pid=""   fi   # Create the info files   {       echo "$date"       echo "Test run on: `uname -n`"       echo "Host Information:"       echo `uname -a`       echo       echo "run:         `type -path ${runprog}`"       cat ${logfile}       if [ "$test_failed" = "yes" ] ; then           echo -e "\\n\\nTest did not finish normally"           if [ "$ran_too_long" = "yes" ] ; then               echo "Test killed after $max_run_time seconds"           fi       fi       echo       date;   } > ${infofile}#   if [ "${debugging}" = "no" ] ; then#       rm -f ${runlogfile}#   fidoneecho "Tests completed at " `date`test_exit 0

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -