sp77: new test to cover allocated message size overflowing

Author:    Krzysztof Mięsowicz <krzysztof.miesowicz@gmail.com>
This commit is contained in:
Krzysztof Mięsowicz
2012-08-29 07:35:23 -05:00
committed by Joel Sherrill
parent 7b865a44b3
commit 3913e3cf93
6 changed files with 102 additions and 1 deletions

View File

@@ -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 \

View File

@@ -103,6 +103,7 @@ sp73/Makefile
sp74/Makefile
sp75/Makefile
sp76/Makefile
sp77/Makefile
sp2038/Makefile
spassoc01/Makefile
spcbssched01/Makefile

View File

@@ -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

View File

@@ -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 <tmacros.h>
#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 <rtems/confdefs.h>
/* end of file */

View File

@@ -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

View File

@@ -0,0 +1,2 @@
*** TEST sp77 ***
*** END OF TEST sp77 ***