mirror of
https://gitlab.rtems.org/rtems/rtos/rtems.git
synced 2025-11-16 12:34:45 +00:00
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
This commit is contained in:
committed by
Joel Sherrill
parent
c1d7c5fa6e
commit
b9d871f9e1
@@ -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
|
||||
|
||||
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
|
||||
76
tools/build/rtems-test-check
Executable file
76
tools/build/rtems-test-check
Executable file
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user