[rtems commit] rtems-test-check: Ignore tests which require real ISR based clock tick

Joel Sherrill joel at rtems.org
Mon Sep 5 00:38:33 UTC 2016


Module:    rtems
Branch:    4.10
Commit:    b9d871f9e1fc105b8123b2ffb41bef17f0fc8005
Changeset: http://git.rtems.org/rtems/commit/?id=b9d871f9e1fc105b8123b2ffb41bef17f0fc8005

Author:    Chris Johns <chrisj at rtems.org>
Date:      Mon May 19 23:07:22 2014 +1000

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

---

 c/src/lib/libbsp/bfin/acinclude.m4        |  4 +-
 testsuites/testdata/require-tick-isr.tcfg | 72 +++++++++++++++++++++++++++++
 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 828fd89..ab6082e 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 0000000..8231acb
--- /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 0000000..3a485c7
--- /dev/null
+++ b/tools/build/rtems-test-check
@@ -0,0 +1,76 @@
+#! /bin/sh
+#
+# Copyright 2014 Chris Johns <chrisj at 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
+




More information about the vc mailing list