summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKrzysztof Mięsowicz <krzysztof.miesowicz@gmail.com>2012-08-29 12:35:23 (UTC)
committerJoel Sherrill <joel.sherrill@oarcorp.com>2012-08-29 12:37:01 (UTC)
commit3913e3cf934d21e3efd80369ef3cf694484a1955 (patch)
tree93bc35b0ca6a91ff78d883dfa5d144262f689f7c
parent7b865a44b3a14018844603900f863de81902523e (diff)
downloadrtems-3913e3cf934d21e3efd80369ef3cf694484a1955.tar.bz2
sp77: new test to cover allocated message size overflowing
Author: Krzysztof Mięsowicz <krzysztof.miesowicz@gmail.com>
-rw-r--r--testsuites/sptests/Makefile.am2
-rw-r--r--testsuites/sptests/configure.ac1
-rw-r--r--testsuites/sptests/sp77/Makefile.am22
-rw-r--r--testsuites/sptests/sp77/init.c55
-rw-r--r--testsuites/sptests/sp77/sp77.doc21
-rw-r--r--testsuites/sptests/sp77/sp77.scn2
6 files changed, 102 insertions, 1 deletions
diff --git a/testsuites/sptests/Makefile.am b/testsuites/sptests/Makefile.am
index d847e1d..b2521f4 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 124cb54..322301f 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 0000000..ee3eda7
--- /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 0000000..2af710e
--- /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 <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 */
diff --git a/testsuites/sptests/sp77/sp77.doc b/testsuites/sptests/sp77/sp77.doc
new file mode 100644
index 0000000..d54192e
--- /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 0000000..48e4f85
--- /dev/null
+++ b/testsuites/sptests/sp77/sp77.scn
@@ -0,0 +1,2 @@
+*** TEST sp77 ***
+*** END OF TEST sp77 ***