From b6343c61002b421e4d578e9868bedc1f0f0b43d7 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Thu, 10 Jul 2014 14:20:39 -0500 Subject: Enhance Semaphore Blocking and Readying Time Test Cases tm02 and tm03 were modified to be reused for multiple configurations of RTEMS Classic API Semaphores. This added tm31-36. The messages for tm02 and tm03 were modified to indicate the semaphore attributes. tm31 - tm36 were added. This resulted in the following cases: tm02 - rtems_semaphore_obtain: Counting/FIFO not available caller blocks tm03 - rtems_semaphore_release: Counting/FIFO task readied preempts caller tm31 - rtems_semaphore_obtain: Counting/priority not available caller blocks tm32 - rtems_semaphore_release: Counting/priority task readied preempts caller tm33 - rtems_semaphore_obtain: Binary/FIFO not available caller blocks tm34 - rtems_semaphore_release: Binary/FIFO task readied preempts caller tm35 - rtems_semaphore_obtain: Binary/priority not available caller blocks tm36 - rtems_semaphore_release: Binary/priority task readied preempts caller --- testsuites/tmtests/Makefile.am | 2 +- testsuites/tmtests/configure.ac | 7 +- testsuites/tmtests/tm02/Makefile.am | 1 + testsuites/tmtests/tm02/task1.c | 28 +++- testsuites/tmtests/tm02/tm02.doc | 4 +- testsuites/tmtests/tm03/Makefile.am | 1 + testsuites/tmtests/tm03/task1.c | 29 +++- testsuites/tmtests/tm03/tm03.doc | 5 +- testsuites/tmtests/tm31/Makefile.am | 28 ++++ testsuites/tmtests/tm31/tm31.doc | 14 ++ testsuites/tmtests/tm32/Makefile.am | 27 +++ testsuites/tmtests/tm32/tm32.doc | 14 ++ testsuites/tmtests/tm33/Makefile.am | 28 ++++ testsuites/tmtests/tm33/tm33.doc | 14 ++ testsuites/tmtests/tm34/Makefile.am | 27 +++ testsuites/tmtests/tm34/tm34.doc | 14 ++ testsuites/tmtests/tm35/Makefile.am | 28 ++++ testsuites/tmtests/tm35/tm35.doc | 14 ++ testsuites/tmtests/tm36/Makefile.am | 27 +++ testsuites/tmtests/tm36/tm36.doc | 14 ++ testsuites/tmtests/tmtests_plan.csv | 322 ++++++++++++++++++------------------ 21 files changed, 477 insertions(+), 171 deletions(-) create mode 100644 testsuites/tmtests/tm31/Makefile.am create mode 100644 testsuites/tmtests/tm31/tm31.doc create mode 100644 testsuites/tmtests/tm32/Makefile.am create mode 100644 testsuites/tmtests/tm32/tm32.doc create mode 100644 testsuites/tmtests/tm33/Makefile.am create mode 100644 testsuites/tmtests/tm33/tm33.doc create mode 100644 testsuites/tmtests/tm34/Makefile.am create mode 100644 testsuites/tmtests/tm34/tm34.doc create mode 100644 testsuites/tmtests/tm35/Makefile.am create mode 100644 testsuites/tmtests/tm35/tm35.doc create mode 100644 testsuites/tmtests/tm36/Makefile.am create mode 100644 testsuites/tmtests/tm36/tm36.doc diff --git a/testsuites/tmtests/Makefile.am b/testsuites/tmtests/Makefile.am index 7d98a024a2..bab9e806bb 100644 --- a/testsuites/tmtests/Makefile.am +++ b/testsuites/tmtests/Makefile.am @@ -2,7 +2,7 @@ ACLOCAL_AMFLAGS = -I ../aclocal _SUBDIRS = tmck tmoverhd tm01 tm02 tm03 tm04 tm05 tm06 tm07 tm08 tm09 tm10 \ tm11 tm12 tm13 tm14 tm15 tm16 tm17 tm18 tm19 tm20 tm21 tm22 tm23 tm24 \ - tm25 tm26 tm27 tm28 tm29 tm30 + tm25 tm26 tm27 tm28 tm29 tm30 tm31 tm32 tm33 tm34 tm35 tm36 _SUBDIRS += tmcontext01 include $(top_srcdir)/../automake/test-subdirs.am diff --git a/testsuites/tmtests/configure.ac b/testsuites/tmtests/configure.ac index 1e3241ffb3..0e3385c4d2 100644 --- a/testsuites/tmtests/configure.ac +++ b/testsuites/tmtests/configure.ac @@ -11,7 +11,6 @@ RTEMS_CANONICAL_TARGET_CPU AM_INIT_AUTOMAKE([no-define foreign 1.12.2]) AM_MAINTAINER_MODE - RTEMS_ENV_RTEMSBSP RTEMS_CHECK_RTEMS_TEST_NO_PAUSE @@ -61,5 +60,11 @@ tm27/Makefile tm28/Makefile tm29/Makefile tm30/Makefile +tm31/Makefile +tm32/Makefile +tm33/Makefile +tm34/Makefile +tm35/Makefile +tm36/Makefile ]) AC_OUTPUT diff --git a/testsuites/tmtests/tm02/Makefile.am b/testsuites/tmtests/tm02/Makefile.am index 3bec68473d..ba6ad0fc74 100644 --- a/testsuites/tmtests/tm02/Makefile.am +++ b/testsuites/tmtests/tm02/Makefile.am @@ -13,6 +13,7 @@ include $(top_srcdir)/../automake/leaf.am OPERATION_COUNT = @OPERATION_COUNT@ AM_CPPFLAGS += -I$(top_srcdir)/include -DOPERATION_COUNT=$(OPERATION_COUNT) AM_CPPFLAGS += -I$(top_srcdir)/../support/include +AM_CPPFLAGS += -DTM02 LINK_OBJS = $(tm02_OBJECTS) LINK_LIBS = $(tm02_LDLIBS) diff --git a/testsuites/tmtests/tm02/task1.c b/testsuites/tmtests/tm02/task1.c index e27e4a0188..4d9b6d176e 100644 --- a/testsuites/tmtests/tm02/task1.c +++ b/testsuites/tmtests/tm02/task1.c @@ -1,5 +1,5 @@ /* - * COPYRIGHT (c) 1989-2013. + * COPYRIGHT (c) 1989-2014. * On-Line Applications Research Corporation (OAR). * * The license and distribution terms for this file may be @@ -14,7 +14,29 @@ #define CONFIGURE_INIT #include "system.h" +#if defined(TM02) const char rtems_test_name[] = "TIME TEST 2"; +#define SEMAPHORE_ATTRIBUTES (RTEMS_COUNTING_SEMAPHORE | RTEMS_FIFO) +#define ATTR_DESC "counting/FIFO" + +#elif defined(TM31) +const char rtems_test_name[] = "TIME TEST 31"; +#define SEMAPHORE_ATTRIBUTES (RTEMS_COUNTING_SEMAPHORE | RTEMS_PRIORITY) +#define ATTR_DESC "counting/priority" + +#elif defined(TM33) +const char rtems_test_name[] = "TIME TEST 33"; +#define SEMAPHORE_ATTRIBUTES RTEMS_BINARY_SEMAPHORE +#define ATTR_DESC "binary/FIFO" + +#elif defined(TM35) +const char rtems_test_name[] = "TIME TEST 35"; +#define SEMAPHORE_ATTRIBUTES (RTEMS_BINARY_SEMAPHORE | RTEMS_PRIORITY) +#define ATTR_DESC "binary/priority" + +#else +#error "Unknown test configuration" +#endif rtems_id High_id; rtems_id Low_id; @@ -110,7 +132,7 @@ void test_init(void) status = rtems_semaphore_create( rtems_build_name( 'S', 'M', '1', ' '), 0, - RTEMS_DEFAULT_ATTRIBUTES, + SEMAPHORE_ATTRIBUTES, RTEMS_NO_PRIORITY, &Semaphore_id ); @@ -149,7 +171,7 @@ rtems_task Low_task( end_time = benchmark_timer_read(); put_time( - "rtems_semaphore_obtain: not available caller blocks", + "rtems_semaphore_obtain: " ATTR_DESC " not available caller blocks", end_time, operation_count - 1, 0, diff --git a/testsuites/tmtests/tm02/tm02.doc b/testsuites/tmtests/tm02/tm02.doc index 32f2b2d6c2..ed9aac09ac 100644 --- a/testsuites/tmtests/tm02/tm02.doc +++ b/testsuites/tmtests/tm02/tm02.doc @@ -8,8 +8,8 @@ This test benchmarks the following operations: - + rtems_semaphore_obtain + + rtems_semaphore_obtain: counting/FIFO not available, caller blocks For more information 1. tmtests/include/timesys.h -2. tmtests/README \ No newline at end of file +2. tmtests/README diff --git a/testsuites/tmtests/tm03/Makefile.am b/testsuites/tmtests/tm03/Makefile.am index be850763cf..1f6d6fe689 100644 --- a/testsuites/tmtests/tm03/Makefile.am +++ b/testsuites/tmtests/tm03/Makefile.am @@ -13,6 +13,7 @@ include $(top_srcdir)/../automake/leaf.am OPERATION_COUNT = @OPERATION_COUNT@ AM_CPPFLAGS += -I$(top_srcdir)/include -DOPERATION_COUNT=$(OPERATION_COUNT) AM_CPPFLAGS += -I$(top_srcdir)/../support/include +AM_CPPFLAGS += -DTM03 LINK_OBJS = $(tm03_OBJECTS) LINK_LIBS = $(tm03_LDLIBS) diff --git a/testsuites/tmtests/tm03/task1.c b/testsuites/tmtests/tm03/task1.c index 9cd8de8cdb..42126ac8a5 100644 --- a/testsuites/tmtests/tm03/task1.c +++ b/testsuites/tmtests/tm03/task1.c @@ -1,5 +1,5 @@ /* - * COPYRIGHT (c) 1989-2013. + * COPYRIGHT (c) 1989-2014. * On-Line Applications Research Corporation (OAR). * * The license and distribution terms for this file may be @@ -14,7 +14,30 @@ #define CONFIGURE_INIT #include "system.h" +#if defined(TM03) const char rtems_test_name[] = "TIME TEST 3"; +#define SEMAPHORE_ATTRIBUTES (RTEMS_COUNTING_SEMAPHORE | RTEMS_FIFO) +#define ATTR_DESC "counting/FIFO" + +#elif defined(TM32) +const char rtems_test_name[] = "TIME TEST 32"; +#define SEMAPHORE_ATTRIBUTES (RTEMS_COUNTING_SEMAPHORE | RTEMS_PRIORITY) +#define ATTR_DESC "counting/priority" + +#elif defined(TM34) +const char rtems_test_name[] = "TIME TEST 34"; +#define SEMAPHORE_ATTRIBUTES RTEMS_BINARY_SEMAPHORE +#define ATTR_DESC "binary/FIFO" + +#elif defined(TM36) +const char rtems_test_name[] = "TIME TEST 36"; +#define SEMAPHORE_ATTRIBUTES (RTEMS_BINARY_SEMAPHORE | RTEMS_PRIORITY) +#define ATTR_DESC "binary/priority" + +#else +#error "Unknown test configuration" +#endif + rtems_id Semaphore_id; rtems_task test_init( @@ -72,7 +95,7 @@ rtems_task test_init( status = rtems_semaphore_create( rtems_build_name( 'S', 'M', '1', '\0'), 0, - RTEMS_DEFAULT_ATTRIBUTES, + SEMAPHORE_ATTRIBUTES, RTEMS_NO_PRIORITY, &Semaphore_id ); @@ -140,7 +163,7 @@ rtems_task High_task( end_time = benchmark_timer_read(); put_time( - "rtems_semaphore_release: task readied preempts caller", + "rtems_semaphore_release: " ATTR_DESC " task readied preempts caller", end_time, operation_count - 1, 0, diff --git a/testsuites/tmtests/tm03/tm03.doc b/testsuites/tmtests/tm03/tm03.doc index 32f2b2d6c2..3d1ea9d4ef 100644 --- a/testsuites/tmtests/tm03/tm03.doc +++ b/testsuites/tmtests/tm03/tm03.doc @@ -1,6 +1,5 @@ # COPYRIGHT (c) 1989-2014. # On-Line Applications Research Corporation (OAR). -# Cynthia Rempel # The license and distribution terms for this file may be # found in the file LICENSE in this distribution or at # http://www.rtems.org/license/LICENSE. @@ -8,8 +7,8 @@ This test benchmarks the following operations: - + rtems_semaphore_obtain + + rtems_semaphore_release: counting/FIFO task readied preempts caller For more information 1. tmtests/include/timesys.h -2. tmtests/README \ No newline at end of file +2. tmtests/README diff --git a/testsuites/tmtests/tm31/Makefile.am b/testsuites/tmtests/tm31/Makefile.am new file mode 100644 index 0000000000..a6c8839428 --- /dev/null +++ b/testsuites/tmtests/tm31/Makefile.am @@ -0,0 +1,28 @@ + +rtems_tests_PROGRAMS = tm31 +tm31_SOURCES = ../tm02/task1.c +tm31_SOURCES += ../tm02/system.h +tm31_SOURCES += ../include/timesys.h +tm31_SOURCES += ../../support/src/tmtests_empty_function.c + +dist_rtems_tests_DATA = tm31.doc + +include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg +include $(top_srcdir)/../automake/compile.am +include $(top_srcdir)/../automake/leaf.am + + +OPERATION_COUNT = @OPERATION_COUNT@ +AM_CPPFLAGS += -I$(top_srcdir)/include -DOPERATION_COUNT=$(OPERATION_COUNT) +AM_CPPFLAGS += -I$(top_srcdir)/../support/include +AM_CPPFLAGS += -I$(top_srcdir)/../tm02 +AM_CPPFLAGS += -DTM31 + +LINK_OBJS = $(tm31_OBJECTS) +LINK_LIBS = $(tm31_LDLIBS) + +tm31$(EXEEXT): $(tm31_OBJECTS) $(tm31_DEPENDENCIES) + @rm -f tm31$(EXEEXT) + $(make-exe) + +include $(top_srcdir)/../automake/local.am diff --git a/testsuites/tmtests/tm31/tm31.doc b/testsuites/tmtests/tm31/tm31.doc new file mode 100644 index 0000000000..90de934e4c --- /dev/null +++ b/testsuites/tmtests/tm31/tm31.doc @@ -0,0 +1,14 @@ +# COPYRIGHT (c) 1989-2014. +# On-Line Applications Research Corporation (OAR). +# The license and distribution terms for this file may be +# found in the file LICENSE in this distribution or at +# http://www.rtems.org/license/LICENSE. +# + +This test benchmarks the following operations: + + + rtems_semaphore_obtain: counting/priority not available, caller blocks + +For more information +1. tmtests/include/timesys.h +2. tmtests/README diff --git a/testsuites/tmtests/tm32/Makefile.am b/testsuites/tmtests/tm32/Makefile.am new file mode 100644 index 0000000000..7fe71fd60d --- /dev/null +++ b/testsuites/tmtests/tm32/Makefile.am @@ -0,0 +1,27 @@ + +rtems_tests_PROGRAMS = tm32 +tm32_SOURCES = ../tm03/task1.c +tm32_SOURCES += ../tm03/system.h +tm32_SOURCES += ../include/timesys.h +tm32_SOURCES += ../../support/src/tmtests_empty_function.c + +dist_rtems_tests_DATA = tm32.doc + +include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg +include $(top_srcdir)/../automake/compile.am +include $(top_srcdir)/../automake/leaf.am + +OPERATION_COUNT = @OPERATION_COUNT@ +AM_CPPFLAGS += -I$(top_srcdir)/include -DOPERATION_COUNT=$(OPERATION_COUNT) +AM_CPPFLAGS += -I$(top_srcdir)/../support/include +AM_CPPFLAGS += -I$(top_srcdir)/../tm03 +AM_CPPFLAGS += -DTM32 + +LINK_OBJS = $(tm32_OBJECTS) +LINK_LIBS = $(tm32_LDLIBS) + +tm32$(EXEEXT): $(tm32_OBJECTS) $(tm32_DEPENDENCIES) + @rm -f tm32$(EXEEXT) + $(make-exe) + +include $(top_srcdir)/../automake/local.am diff --git a/testsuites/tmtests/tm32/tm32.doc b/testsuites/tmtests/tm32/tm32.doc new file mode 100644 index 0000000000..2087d42a6b --- /dev/null +++ b/testsuites/tmtests/tm32/tm32.doc @@ -0,0 +1,14 @@ +# COPYRIGHT (c) 1989-2014. +# On-Line Applications Research Corporation (OAR). +# The license and distribution terms for this file may be +# found in the file LICENSE in this distribution or at +# http://www.rtems.org/license/LICENSE. +# + +This test benchmarks the following operations: + + + rtems_semaphore_release: counting/priority task readied preempts caller + +For more information +1. tmtests/include/timesys.h +2. tmtests/README diff --git a/testsuites/tmtests/tm33/Makefile.am b/testsuites/tmtests/tm33/Makefile.am new file mode 100644 index 0000000000..c0ef67010f --- /dev/null +++ b/testsuites/tmtests/tm33/Makefile.am @@ -0,0 +1,28 @@ + +rtems_tests_PROGRAMS = tm33 +tm33_SOURCES = ../tm02/task1.c +tm33_SOURCES += ../tm02/system.h +tm33_SOURCES += ../include/timesys.h +tm33_SOURCES += ../../support/src/tmtests_empty_function.c + +dist_rtems_tests_DATA = tm33.doc + +include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg +include $(top_srcdir)/../automake/compile.am +include $(top_srcdir)/../automake/leaf.am + + +OPERATION_COUNT = @OPERATION_COUNT@ +AM_CPPFLAGS += -I$(top_srcdir)/include -DOPERATION_COUNT=$(OPERATION_COUNT) +AM_CPPFLAGS += -I$(top_srcdir)/../support/include +AM_CPPFLAGS += -I$(top_srcdir)/../tm02 +AM_CPPFLAGS += -DTM33 + +LINK_OBJS = $(tm33_OBJECTS) +LINK_LIBS = $(tm33_LDLIBS) + +tm33$(EXEEXT): $(tm33_OBJECTS) $(tm33_DEPENDENCIES) + @rm -f tm33$(EXEEXT) + $(make-exe) + +include $(top_srcdir)/../automake/local.am diff --git a/testsuites/tmtests/tm33/tm33.doc b/testsuites/tmtests/tm33/tm33.doc new file mode 100644 index 0000000000..f78a4dc96d --- /dev/null +++ b/testsuites/tmtests/tm33/tm33.doc @@ -0,0 +1,14 @@ +# COPYRIGHT (c) 1989-2014. +# On-Line Applications Research Corporation (OAR). +# The license and distribution terms for this file may be +# found in the file LICENSE in this distribution or at +# http://www.rtems.org/license/LICENSE. +# + +This test benchmarks the following operations: + + + rtems_semaphore_obtain: binary/FIFO not available, caller blocks + +For more information +1. tmtests/include/timesys.h +2. tmtests/README diff --git a/testsuites/tmtests/tm34/Makefile.am b/testsuites/tmtests/tm34/Makefile.am new file mode 100644 index 0000000000..7c9f1ad333 --- /dev/null +++ b/testsuites/tmtests/tm34/Makefile.am @@ -0,0 +1,27 @@ + +rtems_tests_PROGRAMS = tm34 +tm34_SOURCES = ../tm03/task1.c +tm34_SOURCES += ../tm03/system.h +tm34_SOURCES += ../include/timesys.h +tm34_SOURCES += ../../support/src/tmtests_empty_function.c + +dist_rtems_tests_DATA = tm34.doc + +include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg +include $(top_srcdir)/../automake/compile.am +include $(top_srcdir)/../automake/leaf.am + +OPERATION_COUNT = @OPERATION_COUNT@ +AM_CPPFLAGS += -I$(top_srcdir)/include -DOPERATION_COUNT=$(OPERATION_COUNT) +AM_CPPFLAGS += -I$(top_srcdir)/../support/include +AM_CPPFLAGS += -I$(top_srcdir)/../tm03 +AM_CPPFLAGS += -DTM34 + +LINK_OBJS = $(tm34_OBJECTS) +LINK_LIBS = $(tm34_LDLIBS) + +tm34$(EXEEXT): $(tm34_OBJECTS) $(tm34_DEPENDENCIES) + @rm -f tm34$(EXEEXT) + $(make-exe) + +include $(top_srcdir)/../automake/local.am diff --git a/testsuites/tmtests/tm34/tm34.doc b/testsuites/tmtests/tm34/tm34.doc new file mode 100644 index 0000000000..5affd68cfa --- /dev/null +++ b/testsuites/tmtests/tm34/tm34.doc @@ -0,0 +1,14 @@ +# COPYRIGHT (c) 1989-2014. +# On-Line Applications Research Corporation (OAR). +# The license and distribution terms for this file may be +# found in the file LICENSE in this distribution or at +# http://www.rtems.org/license/LICENSE. +# + +This test benchmarks the following operations: + + + rtems_semaphore_release: binary/FIFO task readied preempts caller + +For more information +1. tmtests/include/timesys.h +2. tmtests/README diff --git a/testsuites/tmtests/tm35/Makefile.am b/testsuites/tmtests/tm35/Makefile.am new file mode 100644 index 0000000000..b6c8c91991 --- /dev/null +++ b/testsuites/tmtests/tm35/Makefile.am @@ -0,0 +1,28 @@ + +rtems_tests_PROGRAMS = tm35 +tm35_SOURCES = ../tm02/task1.c +tm35_SOURCES += ../tm02/system.h +tm35_SOURCES += ../include/timesys.h +tm35_SOURCES += ../../support/src/tmtests_empty_function.c + +dist_rtems_tests_DATA = tm35.doc + +include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg +include $(top_srcdir)/../automake/compile.am +include $(top_srcdir)/../automake/leaf.am + + +OPERATION_COUNT = @OPERATION_COUNT@ +AM_CPPFLAGS += -I$(top_srcdir)/include -DOPERATION_COUNT=$(OPERATION_COUNT) +AM_CPPFLAGS += -I$(top_srcdir)/../support/include +AM_CPPFLAGS += -I$(top_srcdir)/../tm02 +AM_CPPFLAGS += -DTM35 + +LINK_OBJS = $(tm35_OBJECTS) +LINK_LIBS = $(tm35_LDLIBS) + +tm35$(EXEEXT): $(tm35_OBJECTS) $(tm35_DEPENDENCIES) + @rm -f tm35$(EXEEXT) + $(make-exe) + +include $(top_srcdir)/../automake/local.am diff --git a/testsuites/tmtests/tm35/tm35.doc b/testsuites/tmtests/tm35/tm35.doc new file mode 100644 index 0000000000..e82e284ef0 --- /dev/null +++ b/testsuites/tmtests/tm35/tm35.doc @@ -0,0 +1,14 @@ +# COPYRIGHT (c) 1989-2014. +# On-Line Applications Research Corporation (OAR). +# The license and distribution terms for this file may be +# found in the file LICENSE in this distribution or at +# http://www.rtems.org/license/LICENSE. +# + +This test benchmarks the following operations: + + + rtems_semaphore_obtain: binary/priority not available, caller blocks + +For more information +1. tmtests/include/timesys.h +2. tmtests/README diff --git a/testsuites/tmtests/tm36/Makefile.am b/testsuites/tmtests/tm36/Makefile.am new file mode 100644 index 0000000000..4abab965c2 --- /dev/null +++ b/testsuites/tmtests/tm36/Makefile.am @@ -0,0 +1,27 @@ + +rtems_tests_PROGRAMS = tm36 +tm36_SOURCES = ../tm03/task1.c +tm36_SOURCES += ../tm03/system.h +tm36_SOURCES += ../include/timesys.h +tm36_SOURCES += ../../support/src/tmtests_empty_function.c + +dist_rtems_tests_DATA = tm36.doc + +include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg +include $(top_srcdir)/../automake/compile.am +include $(top_srcdir)/../automake/leaf.am + +OPERATION_COUNT = @OPERATION_COUNT@ +AM_CPPFLAGS += -I$(top_srcdir)/include -DOPERATION_COUNT=$(OPERATION_COUNT) +AM_CPPFLAGS += -I$(top_srcdir)/../support/include +AM_CPPFLAGS += -I$(top_srcdir)/../tm03 +AM_CPPFLAGS += -DTM36 + +LINK_OBJS = $(tm36_OBJECTS) +LINK_LIBS = $(tm36_LDLIBS) + +tm36$(EXEEXT): $(tm36_OBJECTS) $(tm36_DEPENDENCIES) + @rm -f tm36$(EXEEXT) + $(make-exe) + +include $(top_srcdir)/../automake/local.am diff --git a/testsuites/tmtests/tm36/tm36.doc b/testsuites/tmtests/tm36/tm36.doc new file mode 100644 index 0000000000..0f20a9c130 --- /dev/null +++ b/testsuites/tmtests/tm36/tm36.doc @@ -0,0 +1,14 @@ +# COPYRIGHT (c) 1989-2014. +# On-Line Applications Research Corporation (OAR). +# The license and distribution terms for this file may be +# found in the file LICENSE in this distribution or at +# http://www.rtems.org/license/LICENSE. +# + +This test benchmarks the following operations: + + + rtems_semaphore_release: binary/priority task readied preempts caller + +For more information +1. tmtests/include/timesys.h +2. tmtests/README diff --git a/testsuites/tmtests/tmtests_plan.csv b/testsuites/tmtests/tmtests_plan.csv index ca46f499fd..de3335b519 100644 --- a/testsuites/tmtests/tmtests_plan.csv +++ b/testsuites/tmtests/tmtests_plan.csv @@ -1,158 +1,164 @@ -"rtems_barrier_create: only case","tm30","NA","Yes" -"rtems_barrier_delete: only case","tm30","NA","Yes" -"rtems_barrier_ident: only case","tm30","NA","Yes" - -"rtems_clock_get_tod: only case","tm08","NA","Yes" -"rtems_clock_set: only case","tm08","NA","Yes" -"rtems_clock_tick: only case","tm25","NA","Yes" - -"rtems_event_receive: available","tm15","NA","Yes" -"rtems_event_receive: not available caller blocks","tm15","NA","Yes" -"rtems_event_receive: not available NO_WAIT","tm15","NA","Yes" -"rtems_event_receive: obtain current events","tm15","NA","Yes" -"rtems_event_send: no task readied","tm15","NA","Yes" -"rtems_event_send: task readied preempts caller","tm16","NA","Yes" -"rtems_event_send: task readied returns to caller","tm15","NA","Yes" - -"rtems internal: context switch: no floating point contexts","tm26","NA","Yes" -"rtems internal: context switch: self","tm26","NA","Yes" -"rtems internal: context switch to another task","tm26","NA","Yes" -"rtems internal: fp context switch restore 1st FP task","tm26","NA","Yes" -"rtems internal: fp context switch save idle and restore initialized","tm26","NA","Yes" -"rtems internal: fp context switch save idle, restore idle","tm26","NA","Yes" -"rtems internal: fp context switch save initialized, restore initialized","tm26","NA","Yes" -"rtems internal: _Semaphore_Get","tm26","NA","Yes" -"rtems internal: _Thread_Disable_dispatch","tm26","NA","Yes" -"rtems internal: _Thread_Dispatch NO FP","tm26","NA","Yes" -"rtems internal: _Thread_Enable_dispatch","tm26","NA","Yes" -"rtems internal: _Thread_Get: invalid id","tm26","NA","Yes" -"rtems internal: _Thread_Get","tm26","NA","Yes" -"rtems internal: _Thread_Ready","tm26","NA","Yes" -"rtems internal: _Thread_Resume","tm26","NA","Yes" -"rtems internal: _Thread_Set_state","tm26","NA","Yes" -"rtems internal: _Thread_Unblock","tm26","NA","Yes" - -"rtems interrupt: entry overhead returns to interrupted task","tm27","NA","Yes" -"rtems interrupt: entry overhead returns to nested interrupt","tm27","NA","Yes" -"rtems interrupt: exit overhead returns to interrupted task","tm27","NA","Yes" -"rtems interrupt: exit overhead returns to nested interrupt","tm27","NA","Yes" -"rtems interrupt: _ISR_Disable","tm26","NA","Yes" -"rtems interrupt: _ISR_Enable","tm26","NA","Yes" -"rtems interrupt: _ISR_Flash","tm26","NA","Yes" - -"rtems_io_close: only case","tm20","NA","Yes" -"rtems_io_control: only case","tm20","NA","Yes" -"rtems_io_initialize: only case","tm20","NA","Yes" -"rtems_io_open: only case","tm20","NA","Yes" -"rtems_io_read: only case","tm20","NA","Yes" -"rtems_io_write: only case","tm20","NA","Yes" - -"rtems_message_queue_broadcast: no waiting tasks","tm22","NA","Yes" -"rtems_message_queue_broadcast: task readied returns to caller","tm22","NA","Yes" -"rtems_message_queue_broadcast: task readied","tm22","NA","Yes" -"rtems_message_queue_create: only case","tm09","NA","Yes" -"rtems_message_queue_delete: only case","tm09","NA","Yes" -"rtems_message_queue_flush: messages flushed","tm09","NA","Yes" -"rtems_message_queue_flush: no messages flushed","tm09","NA","Yes" -"rtems_message_queue_ident: only case","tm21","NA","Yes" -"rtems_message_queue_receive: available","tm09","NA","Yes" -"rtems_message_queue_receive: not available caller blocks","tm10","NA","Yes" -"rtems_message_queue_receive: not available NO_WAIT","tm10","NA","Yes" -"rtems_message_queue_send: no waiting tasks","tm09","NA","Yes" -"rtems_message_queue_send: task readied preempts caller","tm11","NA","Yes" -"rtems_message_queue_send: task readied returns to caller","tm12","NA","Yes" -"rtems_message_queue_urgent: no waiting tasks","tm09","NA","Yes" -"rtems_message_queue_urgent: task readied preempts caller","tm13","NA","Yes" -"rtems_message_queue_urgent: task readied returns to caller","tm14","NA","Yes" - -"rtems_partition_create: only case","tm20","NA","Yes" -"rtems_partition_delete: only case","tm20","NA","Yes" -"rtems_partition_get_buffer: available","tm20","NA","Yes" -"rtems_partition_get_buffer: not available","tm20","NA","Yes" -"rtems_partition_ident: only case","tm21","NA","Yes" -"rtems_partition_return_buffer: only case","tm20","NA","Yes" - -"rtems_port_create: only case","tm28","NA","Yes" -"rtems_port_delete: only case","tm28","NA","Yes" -"rtems_port_external_to_internal: only case","tm28","NA","Yes" -"rtems_port_ident: only case","tm21","NA","Yes" -"rtems_port_internal_to_external: only case","tm28","NA","Yes" - -"rtems_rate_monotonic_cancel: only case","tm29","NA","Yes" -"rtems_rate_monotonic_create: only case","tm29","NA","Yes" -"rtems_rate_monotonic_delete: active","tm29","NA","Yes" -"rtems_rate_monotonic_delete: inactive","tm29","NA","Yes" -"rtems_rate_monotonic_ident: only case","tm21","NA","Yes" -"rtems_rate_monotonic_period: conclude periods caller blocks","tm29","NA","Yes" -"rtems_rate_monotonic_period: initiate period returns to caller","tm29","NA","Yes" -"rtems_rate_monotonic_period: obtain status","tm29","NA","Yes" - -"rtems_region_create: only case","tm20","NA","Yes" -"rtems_region_delete: only case","tm20","NA","Yes" -"rtems_region_get_segment: available","tm20","NA","Yes" -"rtems_region_get_segment: not available caller blocks","tm20","NA","Yes" -"rtems_region_get_segment: not available NO_WAIT","tm20","NA","Yes" -"rtems_region_ident: only case","tm21","NA","Yes" -"rtems_region_return_segment: no waiting tasks","tm20","NA","Yes" -"rtems_region_return_segment: task readied preempts caller","tm20","NA","Yes" -"rtems_region_return_segment: task readied returns to caller","tm20","NA","Yes" - -"rtems_semaphore_create: only case","tm01","NA","Yes" -"rtems_semaphore_delete: only case","tm01","NA","Yes" -"rtems_semaphore_ident: only case","tm21","NA","Yes" -"rtems_semaphore_obtain: available","tm01","NA","Yes" -"rtems_semaphore_obtain: not available caller blocks","tm02","NA","Yes" -"rtems_semaphore_obtain: not available NO_WAIT","tm01","NA","Yes" -"rtems_semaphore_release: no waiting tasks","tm01","NA","Yes" -"rtems_semaphore_release: task readied preempts caller","tm03","NA","Yes" -"rtems_semaphore_release: task readied","tm04","NA","Yes" - -"rtems_signal_catch: only case","tm19","NA","Yes" -"rtems_signal: exit ASR overhead returns to calling task","tm19","NA","Yes" -"rtems_signal: exit ASR overhead returns to preempting task","tm19","NA","Yes" -"rtems_signal_send: returns to caller","tm19","NA","Yes" -"rtems_signal_send: signal to self","tm19","NA","Yes" - -"rtems_task_create: only case","tm04","NA","Yes" -"rtems_task_delete: blocked task","tm04","NA","Yes" -"rtems_task_delete: calling task","tm18","NA","Yes" -"rtems_task_delete: ready task","tm06","NA","Yes" -"rtems_task_delete: suspended task","tm04","NA","Yes" -"rtems_task_get_note: only case","tm08","NA","Yes" -"rtems_task_ident: only case","tm21","NA","Yes" -"rtems_task_mode: no reschedule","tm08","NA","Yes" -"rtems_task_mode: obtain current mode","tm08","NA","Yes" -"rtems_task_mode: reschedule returns to caller","tm08","NA","Yes" -"rtems_task_mode: reschedule","tm08","NA","Yes" -"rtems_task_restart: blocked task preempts caller","tm04","NA","Yes" -"rtems_task_restart: blocked task","tm04","NA","Yes" -"rtems_task_restart: calling task","tm06","NA","Yes" -"rtems_task_restart: ready task","tm04","NA","Yes" -"rtems_task_restart: ready task","tm04","NA","Yes" -"rtems_task_restart: suspended task preempts caller","tm07","NA","Yes" -"rtems_task_restart: suspended task","tm04","NA","Yes" -"rtems_task_resume: task readied preempts caller","tm05","NA","Yes" -"rtems_task_resume: task readied returns to caller","tm06","NA","Yes" -"rtems_task_set_note: only case","tm08","NA","Yes" -"rtems_task_set_priority: obtain current priority","tm08","NA","Yes" -"rtems_task_set_priority: preempts caller","tm17","NA","Yes" -"rtems_task_set_priority: returns to caller","tm08","NA","Yes" -"rtems_task_start: only case","tm04","NA","Yes" -"rtems_task_suspend: calling task","tm05","NA","Yes" -"rtems_task_suspend: returns to caller","tm06","NA","Yes" -"rtems_task_wake_after: yield returns to caller","tm24","NA","Yes" -"rtems_task_wake_after: yields preempts caller","tm24","NA","Yes" -"rtems_task_wake_when: only case","tm23","NA","Yes" - -"rtems_timer_cancel: active","tm23","NA","Yes" -"rtems_timer_cancel: inactive","tm23","NA","Yes" -"rtems_timer_create: only case","tm23","NA","Yes" -"rtems_timer_delete: active","tm23","NA","Yes" -"rtems_timer_delete: inactive","tm23","NA","Yes" -"rtems_timer_fire_after: active","tm23","NA","Yes" -"rtems_timer_fire_after: inactive","tm23","NA","Yes" -"rtems_timer_fire_when: active","tm23","NA","Yes" -"rtems_timer_fire_when: inactive","tm23","NA","Yes" -"rtems_timer_ident: only case","tm21","NA","Yes" -"rtems_timer_reset: active","tm23","NA","Yes" -"rtems_timer_reset: inactive","tm23","NA","Yes" +"rtems_barrier_create: only case",tm30,NA,Yes +"rtems_barrier_delete: only case",tm30,NA,Yes +"rtems_barrier_ident: only case",tm30,NA,Yes +,,, +"rtems_clock_get_tod: only case",tm08,NA,Yes +"rtems_clock_set: only case",tm08,NA,Yes +"rtems_clock_tick: only case",tm25,NA,Yes +,,, +"rtems_event_receive: available",tm15,NA,Yes +"rtems_event_receive: not available caller blocks",tm15,NA,Yes +"rtems_event_receive: not available NO_WAIT",tm15,NA,Yes +"rtems_event_receive: obtain current events",tm15,NA,Yes +"rtems_event_send: no task readied",tm15,NA,Yes +"rtems_event_send: task readied preempts caller",tm16,NA,Yes +"rtems_event_send: task readied returns to caller",tm15,NA,Yes +,,, +"rtems internal: context switch: no floating point contexts",tm26,NA,Yes +"rtems internal: context switch: self",tm26,NA,Yes +"rtems internal: context switch to another task",tm26,NA,Yes +"rtems internal: fp context switch restore 1st FP task",tm26,NA,Yes +"rtems internal: fp context switch save idle and restore initialized",tm26,NA,Yes +"rtems internal: fp context switch save idle, restore idle",tm26,NA,Yes +"rtems internal: fp context switch save initialized, restore initialized",tm26,NA,Yes +"rtems internal: _Semaphore_Get",tm26,NA,Yes +"rtems internal: _Thread_Disable_dispatch",tm26,NA,Yes +"rtems internal: _Thread_Dispatch NO FP",tm26,NA,Yes +"rtems internal: _Thread_Enable_dispatch",tm26,NA,Yes +"rtems internal: _Thread_Get: invalid id",tm26,NA,Yes +"rtems internal: _Thread_Get",tm26,NA,Yes +"rtems internal: _Thread_Ready",tm26,NA,Yes +"rtems internal: _Thread_Resume",tm26,NA,Yes +"rtems internal: _Thread_Set_state",tm26,NA,Yes +"rtems internal: _Thread_Unblock",tm26,NA,Yes +,,, +"rtems interrupt: entry overhead returns to interrupted task",tm27,NA,Yes +"rtems interrupt: entry overhead returns to nested interrupt",tm27,NA,Yes +"rtems interrupt: exit overhead returns to interrupted task",tm27,NA,Yes +"rtems interrupt: exit overhead returns to nested interrupt",tm27,NA,Yes +"rtems interrupt: _ISR_Disable",tm26,NA,Yes +"rtems interrupt: _ISR_Enable",tm26,NA,Yes +"rtems interrupt: _ISR_Flash",tm26,NA,Yes +,,, +"rtems_io_close: only case",tm20,NA,Yes +"rtems_io_control: only case",tm20,NA,Yes +"rtems_io_initialize: only case",tm20,NA,Yes +"rtems_io_open: only case",tm20,NA,Yes +"rtems_io_read: only case",tm20,NA,Yes +"rtems_io_write: only case",tm20,NA,Yes +,,, +"rtems_message_queue_broadcast: no waiting tasks",tm22,NA,Yes +"rtems_message_queue_broadcast: task readied returns to caller",tm22,NA,Yes +"rtems_message_queue_broadcast: task readied",tm22,NA,Yes +"rtems_message_queue_create: only case",tm09,NA,Yes +"rtems_message_queue_delete: only case",tm09,NA,Yes +"rtems_message_queue_flush: messages flushed",tm09,NA,Yes +"rtems_message_queue_flush: no messages flushed",tm09,NA,Yes +"rtems_message_queue_ident: only case",tm21,NA,Yes +"rtems_message_queue_receive: available",tm09,NA,Yes +"rtems_message_queue_receive: not available caller blocks",tm10,NA,Yes +"rtems_message_queue_receive: not available NO_WAIT",tm10,NA,Yes +"rtems_message_queue_send: no waiting tasks",tm09,NA,Yes +"rtems_message_queue_send: task readied preempts caller",tm11,NA,Yes +"rtems_message_queue_send: task readied returns to caller",tm12,NA,Yes +"rtems_message_queue_urgent: no waiting tasks",tm09,NA,Yes +"rtems_message_queue_urgent: task readied preempts caller",tm13,NA,Yes +"rtems_message_queue_urgent: task readied returns to caller",tm14,NA,Yes +,,, +"rtems_partition_create: only case",tm20,NA,Yes +"rtems_partition_delete: only case",tm20,NA,Yes +"rtems_partition_get_buffer: available",tm20,NA,Yes +"rtems_partition_get_buffer: not available",tm20,NA,Yes +"rtems_partition_ident: only case",tm21,NA,Yes +"rtems_partition_return_buffer: only case",tm20,NA,Yes +,,, +"rtems_port_create: only case",tm28,NA,Yes +"rtems_port_delete: only case",tm28,NA,Yes +"rtems_port_external_to_internal: only case",tm28,NA,Yes +"rtems_port_ident: only case",tm21,NA,Yes +"rtems_port_internal_to_external: only case",tm28,NA,Yes +,,, +"rtems_rate_monotonic_cancel: only case",tm29,NA,Yes +"rtems_rate_monotonic_create: only case",tm29,NA,Yes +"rtems_rate_monotonic_delete: active",tm29,NA,Yes +"rtems_rate_monotonic_delete: inactive",tm29,NA,Yes +"rtems_rate_monotonic_ident: only case",tm21,NA,Yes +"rtems_rate_monotonic_period: conclude periods caller blocks",tm29,NA,Yes +"rtems_rate_monotonic_period: initiate period returns to caller",tm29,NA,Yes +"rtems_rate_monotonic_period: obtain status",tm29,NA,Yes +,,, +"rtems_region_create: only case",tm20,NA,Yes +"rtems_region_delete: only case",tm20,NA,Yes +"rtems_region_get_segment: available",tm20,NA,Yes +"rtems_region_get_segment: not available caller blocks",tm20,NA,Yes +"rtems_region_get_segment: not available NO_WAIT",tm20,NA,Yes +"rtems_region_ident: only case",tm21,NA,Yes +"rtems_region_return_segment: no waiting tasks",tm20,NA,Yes +"rtems_region_return_segment: task readied preempts caller",tm20,NA,Yes +"rtems_region_return_segment: task readied returns to caller",tm20,NA,Yes +,,, +"rtems_semaphore_create: only case",tm01,NA,Yes +"rtems_semaphore_delete: only case",tm01,NA,Yes +"rtems_semaphore_ident: only case",tm21,NA,Yes +"rtems_semaphore_obtain: available",tm01,NA,Yes +"rtems_semaphore_obtain: Counting/FIFO not available caller blocks",tm02,NA,Yes +"rtems_semaphore_obtain: not available NO_WAIT",tm01,NA,Yes +"rtems_semaphore_release: no waiting tasks",tm01,NA,Yes +"rtems_semaphore_release: Counting/FIFO task readied preempts caller",tm03,NA,Yes +"rtems_semaphore_release: task readied",tm04,NA,Yes +"rtems_semaphore_obtain: Counting/priority not available caller blocks",tm31,NA,Yes +"rtems_semaphore_release: Counting/priority task readied preempts caller",tm32,NA,Yes +"rtems_semaphore_obtain: Binary/FIFO not available caller blocks",tm33,NA,Yes +"rtems_semaphore_release: Binary/FIFO task readied preempts caller",tm34,NA,Yes +"rtems_semaphore_obtain: Binary/priority not available caller blocks",tm35,NA,Yes +"rtems_semaphore_release: Binary/priority task readied preempts caller",tm36,NA,Yes +,,, +"rtems_signal_catch: only case",tm19,NA,Yes +"rtems_signal: exit ASR overhead returns to calling task",tm19,NA,Yes +"rtems_signal: exit ASR overhead returns to preempting task",tm19,NA,Yes +"rtems_signal_send: returns to caller",tm19,NA,Yes +"rtems_signal_send: signal to self",tm19,NA,Yes +,,, +"rtems_task_create: only case",tm04,NA,Yes +"rtems_task_delete: blocked task",tm04,NA,Yes +"rtems_task_delete: calling task",tm18,NA,Yes +"rtems_task_delete: ready task",tm06,NA,Yes +"rtems_task_delete: suspended task",tm04,NA,Yes +"rtems_task_get_note: only case",tm08,NA,Yes +"rtems_task_ident: only case",tm21,NA,Yes +"rtems_task_mode: no reschedule",tm08,NA,Yes +"rtems_task_mode: obtain current mode",tm08,NA,Yes +"rtems_task_mode: reschedule returns to caller",tm08,NA,Yes +"rtems_task_mode: reschedule",tm08,NA,Yes +"rtems_task_restart: blocked task preempts caller",tm04,NA,Yes +"rtems_task_restart: blocked task",tm04,NA,Yes +"rtems_task_restart: calling task",tm06,NA,Yes +"rtems_task_restart: ready task",tm04,NA,Yes +"rtems_task_restart: ready task",tm04,NA,Yes +"rtems_task_restart: suspended task preempts caller",tm07,NA,Yes +"rtems_task_restart: suspended task",tm04,NA,Yes +"rtems_task_resume: task readied preempts caller",tm05,NA,Yes +"rtems_task_resume: task readied returns to caller",tm06,NA,Yes +"rtems_task_set_note: only case",tm08,NA,Yes +"rtems_task_set_priority: obtain current priority",tm08,NA,Yes +"rtems_task_set_priority: preempts caller",tm17,NA,Yes +"rtems_task_set_priority: returns to caller",tm08,NA,Yes +"rtems_task_start: only case",tm04,NA,Yes +"rtems_task_suspend: calling task",tm05,NA,Yes +"rtems_task_suspend: returns to caller",tm06,NA,Yes +"rtems_task_wake_after: yield returns to caller",tm24,NA,Yes +"rtems_task_wake_after: yields preempts caller",tm24,NA,Yes +"rtems_task_wake_when: only case",tm23,NA,Yes +,,, +"rtems_timer_cancel: active",tm23,NA,Yes +"rtems_timer_cancel: inactive",tm23,NA,Yes +"rtems_timer_create: only case",tm23,NA,Yes +"rtems_timer_delete: active",tm23,NA,Yes +"rtems_timer_delete: inactive",tm23,NA,Yes +"rtems_timer_fire_after: active",tm23,NA,Yes +"rtems_timer_fire_after: inactive",tm23,NA,Yes +"rtems_timer_fire_when: active",tm23,NA,Yes +"rtems_timer_fire_when: inactive",tm23,NA,Yes +"rtems_timer_ident: only case",tm21,NA,Yes +"rtems_timer_reset: active",tm23,NA,Yes +"rtems_timer_reset: inactive",tm23,NA,Yes -- cgit v1.2.3