From 3913e3cf934d21e3efd80369ef3cf694484a1955 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Krzysztof=20Mi=C4=99sowicz?= Date: Wed, 29 Aug 2012 07:35:23 -0500 Subject: sp77: new test to cover allocated message size overflowing MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Author: Krzysztof Mięsowicz --- testsuites/sptests/Makefile.am | 2 +- testsuites/sptests/configure.ac | 1 + testsuites/sptests/sp77/Makefile.am | 22 +++++++++++++++ testsuites/sptests/sp77/init.c | 55 +++++++++++++++++++++++++++++++++++++ testsuites/sptests/sp77/sp77.doc | 21 ++++++++++++++ testsuites/sptests/sp77/sp77.scn | 2 ++ 6 files changed, 102 insertions(+), 1 deletion(-) create mode 100644 testsuites/sptests/sp77/Makefile.am create mode 100644 testsuites/sptests/sp77/init.c create mode 100644 testsuites/sptests/sp77/sp77.doc create mode 100644 testsuites/sptests/sp77/sp77.scn diff --git a/testsuites/sptests/Makefile.am b/testsuites/sptests/Makefile.am index d847e1d33c..b2521f4bec 100644 --- a/testsuites/sptests/Makefile.am +++ b/testsuites/sptests/Makefile.am @@ -10,7 +10,7 @@ SUBDIRS = \ sp40 sp41 sp42 sp43 sp44 sp45 sp46 sp47 sp48 sp49 \ sp50 sp51 sp52 sp53 sp54 sp55 sp56 sp57 sp58 sp59 \ sp60 sp62 sp63 sp64 sp65 sp66 sp67 sp68 sp69 \ - sp70 sp71 sp72 sp73 sp74 sp75 sp76 sp2038 \ + sp70 sp71 sp72 sp73 sp74 sp75 sp76 sp77 sp2038 \ spassoc01 spchain spclockget spcoverage spobjgetnext \ spnotepad01 spprintk spprivenv01 sprbtree01 spsize spstkalloc \ spstkalloc02 spthreadq01 spwatchdog spwkspace \ diff --git a/testsuites/sptests/configure.ac b/testsuites/sptests/configure.ac index 124cb54c28..322301faab 100644 --- a/testsuites/sptests/configure.ac +++ b/testsuites/sptests/configure.ac @@ -103,6 +103,7 @@ sp73/Makefile sp74/Makefile sp75/Makefile sp76/Makefile +sp77/Makefile sp2038/Makefile spassoc01/Makefile spcbssched01/Makefile diff --git a/testsuites/sptests/sp77/Makefile.am b/testsuites/sptests/sp77/Makefile.am new file mode 100644 index 0000000000..ee3eda773d --- /dev/null +++ b/testsuites/sptests/sp77/Makefile.am @@ -0,0 +1,22 @@ + + +rtems_tests_PROGRAMS = sp77 +sp77_SOURCES = init.c + +dist_rtems_tests_DATA = sp77.scn +dist_rtems_tests_DATA += sp77.doc + +include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg +include $(top_srcdir)/../automake/compile.am +include $(top_srcdir)/../automake/leaf.am + +AM_CPPFLAGS += -I$(top_srcdir)/../support/include + +LINK_OBJS = $(sp77_OBJECTS) $(sp77_LDADD) +LINK_LIBS = $(sp77_LDLIBS) + +sp77$(EXEEXT): $(sp77_OBJECTS) $(sp77_DEPENDENCIES) + @rm -f sp77$(EXEEXT) + $(make-exe) + +include $(top_srcdir)/../automake/local.am diff --git a/testsuites/sptests/sp77/init.c b/testsuites/sptests/sp77/init.c new file mode 100644 index 0000000000..2af710e2f1 --- /dev/null +++ b/testsuites/sptests/sp77/init.c @@ -0,0 +1,55 @@ +/* + * COPYRIGHT (c) 2012. + * Krzysztof Miesowicz krzysztof.miesowicz@gmail.com + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.rtems.com/license/LICENSE. + */ + +#include +#include "test_support.h" + +/* forward declarations to avoid warnings */ +rtems_task Init(rtems_task_argument argument); + +rtems_task Init( + rtems_task_argument argument +) +{ + puts( "\n\n*** TEST sp77 ***" ); + + rtems_status_code status; + rtems_id id; + + status = rtems_message_queue_create( + rtems_build_name( 'M', 'Q' , 'T', '1'), + 2, + SIZE_MAX-2, + RTEMS_DEFAULT_ATTRIBUTES, + &id + ); + + fatal_directive_check_status_only(status , RTEMS_UNSATISFIED , + "attempt to create message queue return: "); + puts( "*** END OF TEST sp77 ***" ); + + rtems_test_exit(0); +} + +/* configuration information */ + +#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER +#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER + +#define CONFIGURE_MAXIMUM_TASKS 1 +#define CONFIGURE_RTEMS_INIT_TASKS_TABLE + +#define CONFIGURE_INIT + +#define CONFIGURE_MAXIMUM_MESSAGE_QUEUES 1 +#define CONFIGURE_MESSAGE_BUFFER_MEMORY (CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE( \ + 2,SIZE_MAX)) + +#include +/* end of file */ diff --git a/testsuites/sptests/sp77/sp77.doc b/testsuites/sptests/sp77/sp77.doc new file mode 100644 index 0000000000..d54192e320 --- /dev/null +++ b/testsuites/sptests/sp77/sp77.doc @@ -0,0 +1,21 @@ +# COPYRIGHT (c) 2012. +# Krzysztof Miesowicz krzysztof.miesowicz@gmail.com +# +# The license and distribution terms for this file may be +# found in the file LICENSE in this distribution or at +# http://www.rtems.com/license/LICENSE. +# + +This file describes the directives and concepts tested by this test set. + +test set name: sp77 + +directives: + + rtems_message_queue_create + +concepts: + ++ test to check if rtems_message_queue_create work as supposed when +maximum_message_size is too large and cause overflow in +_core_message_queue_initialize symbol in coremsg.c file diff --git a/testsuites/sptests/sp77/sp77.scn b/testsuites/sptests/sp77/sp77.scn new file mode 100644 index 0000000000..48e4f85cc8 --- /dev/null +++ b/testsuites/sptests/sp77/sp77.scn @@ -0,0 +1,2 @@ +*** TEST sp77 *** +*** END OF TEST sp77 *** -- cgit v1.2.3