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.
This commit is contained in:
Chris Johns
2014-05-19 23:07:22 +10:00
parent dac56968e3
commit 431bb85dde
3 changed files with 100 additions and 4 deletions

View File

@@ -22,7 +22,7 @@ all-local:
fi; \
echo "BSP Testsuite Data: $$vtdata"; \
list=`$(top_srcdir)/../../tools/build/rtems-test-check \
$$tdata $(RTEMS_BSP) $(_SUBDIRS)`; \
$$tdata $(top_srcdir)/.. $(RTEMS_BSP) $(_SUBDIRS)`; \
for subdir in $$list; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" != "."; then \

View File

@@ -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

View File

@@ -5,7 +5,7 @@
#
#
# usage: rtems-test-check <bsp-test-database> <bsp> <tests..>
# usage: rtems-test-check <bsp-test-database> <includes> <bsp> <tests..>
#
if test $# -lt 3; then
@@ -15,6 +15,8 @@ fi
testdata="$1"
shift
includepath="$1"
shift
bsp="$1"
shift
tests="$*"
@@ -23,11 +25,33 @@ bsp_tests=${tests}
#
# If there is no testdata all tests are valid.
#
if test -f $testdata; then
disabled_tests=""
for t in $(cat $testdata | sed -e 's/#.*$//' -e '/^$/d');
while [ ! -z $testdata ];
do
disabled_tests="${disabled_tests} ${t}"
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=""