forked from Imagelibrary/rtems
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:
@@ -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 \
|
||||
|
||||
72
testsuites/testdata/require-tick-isr.tcfg
vendored
Normal file
72
testsuites/testdata/require-tick-isr.tcfg
vendored
Normal 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
|
||||
@@ -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=""
|
||||
|
||||
Reference in New Issue
Block a user