diff options
author | Chris Johns <chrisj@rtems.org> | 2014-05-19 23:07:22 +1000 |
---|---|---|
committer | Joel Sherrill <joel@rtems.org> | 2016-09-04 19:38:15 -0500 |
commit | b9d871f9e1fc105b8123b2ffb41bef17f0fc8005 (patch) | |
tree | 055e85e5678a143a071bf0930b60259796718989 | |
parent | c1d7c5fa6e8b5917f7f90c22d1ff29b5581f30b7 (diff) |
rtems-test-check: Ignore tests which require real ISR based clock tick
BSPs for simulators which do not include a clock tick interrupt source
are incapable of running some tests successfully. This is a common
characteristic of some BSPs and a fixed set of tests. There is no point
in duplicating this list of tests in those BSPs test configuration.
Read testsuites/testdata/require-tick-isr.tcfg for details.
Conflicts:
testsuites/automake/test-subdirs.am
tools/build/rtems-test-check
-rw-r--r-- | c/src/lib/libbsp/bfin/acinclude.m4 | 4 | ||||
-rw-r--r-- | testsuites/testdata/require-tick-isr.tcfg | 72 | ||||
-rwxr-xr-x | tools/build/rtems-test-check | 76 |
3 files changed, 150 insertions, 2 deletions
diff --git a/c/src/lib/libbsp/bfin/acinclude.m4 b/c/src/lib/libbsp/bfin/acinclude.m4 index 828fd894dd..ab6082ef47 100644 --- a/c/src/lib/libbsp/bfin/acinclude.m4 +++ b/c/src/lib/libbsp/bfin/acinclude.m4 @@ -2,12 +2,12 @@ AC_DEFUN([RTEMS_CHECK_BSPDIR], [ case "$1" in + TLL6527M ) + AC_CONFIG_SUBDIRS([TLL6527M]);; bf537Stamp ) AC_CONFIG_SUBDIRS([bf537Stamp]);; eZKit533 ) AC_CONFIG_SUBDIRS([eZKit533]);; - TLL6527M ) - AC_CONFIG_SUBDIRS([TLL6527M]);; *) AC_MSG_ERROR([Invalid BSP]);; esac diff --git a/testsuites/testdata/require-tick-isr.tcfg b/testsuites/testdata/require-tick-isr.tcfg new file mode 100644 index 0000000000..8231acb1ca --- /dev/null +++ b/testsuites/testdata/require-tick-isr.tcfg @@ -0,0 +1,72 @@ +# +# These tests require that the BSP have a real clock tick ISR. Some +# simulator BSPs do not have any interrupt sources and use the file +# libbsp/shared/clock_driver_simidle.c. +# +# Tests which do not work with this clock driver tend to have the +# one of the following characteristics: +# +# + Assume that a clock tick will occur while a task is running +# continuously can be +# + Assume that a timer service routine will execute in an ISR +# while a task is running continously. +# + Has a busy spin loop waiting to start the test on a tick boundary +# does this. +# +# Eventually there should be a way to note that a BSP has a list +# of expected test failures which are specific to it AND a set of +# characteristics that make running classes of test appropriate or +# inappropriate. At that point, this would be one characteristic. +# +# NOTE: Each test in this list should be reviewed to ensure that it +# has a legitimate reason to not run on a BSP with the simulator +# clock idle task. It may need to be broken into multiple tests +# if not executing it misses other paths. +# +cpuuse +psx07 +psx09 +psx10 +psx11 +psxcancel01 +psxgetrusage01 +psxintrcritical01 +psxsignal01 +psxsignal02 +psxspin01 +psxtime +psxtimes01 +sp04 +sp14 +sp19 +sp35 +sp38 +sp44 +sp69 +spcbssched02 +spcbssched03 +spcontext01 +spcpucounter01 +spedfsched03 +spintrcritical01 +spintrcritical02 +spintrcritical03 +spintrcritical04 +spintrcritical05 +spintrcritical06 +spintrcritical07 +spintrcritical08 +spintrcritical09 +spintrcritical10 +spintrcritical11 +spintrcritical12 +spintrcritical13 +spintrcritical14 +spintrcritical15 +spintrcritical16 +spintrcritical17 +spintrcritical18 +spintrcritical19 +spintrcritical20 +spnsext01 +spqreslib diff --git a/tools/build/rtems-test-check b/tools/build/rtems-test-check new file mode 100755 index 0000000000..3a485c7dc8 --- /dev/null +++ b/tools/build/rtems-test-check @@ -0,0 +1,76 @@ +#! /bin/sh +# +# Copyright 2014 Chris Johns <chrisj@rtems.org> +# All rights reserved +# + +# +# usage: rtems-test-check <bsp-test-database> <includes> <bsp> <tests..> +# + +if test $# -lt 3; then + echo "error: invalid command line" >&2 + exit 2 +fi + +testdata="$1" +shift +includepath="$1" +shift +bsp="$1" +shift +tests="$*" +bsp_tests=${tests} + +# +# If there is no testdata all tests are valid. +# + +if test -f $testdata; then + disabled_tests="" + while [ ! -z $testdata ]; + do + for td in $testdata; + do + ntd="" + exec 3<& 0 + exec 0<$td + while read line + do + line=$(echo $line | sed -e 's/#.*$//' -e '/^$/d') + if [ ! -z "$line" ]; then + include=$(echo $line | sed -e "s/include:.*/yes/g") + if [ "$include" = "yes" ]; then + inf=$(echo $line | sed -e "s/include://g" -e 's/^[ \t]//;s/[ \t]$//') + if test -f $includepath/$inf; then + ntd="$includepath/$inf $ntd" + fi + else + disabled_tests="${disabled_tests} $line" + fi + fi + done + done + testdata=$ntd + done + + bsp_tests="" + for t in ${tests}; + do + allow="yes" + for dt in ${disabled_tests}; + do + if test ${t} = ${dt}; then + allow="no" + fi + done + if test ${allow} = yes; then + bsp_tests="${bsp_tests} ${t}" + fi + done +fi + +echo ${bsp_tests} + +exit 0 + |