diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2010-06-22 16:14:43 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2010-06-22 16:14:43 +0000 |
commit | db904606e335ba7ae4e363a96f7a5e2a2700bf4e (patch) | |
tree | 299a3e61d23b0fd93e2b1c2475412f6e79d665a6 /testsuites/sptests/sp71 | |
parent | 2010-06-22 Jennifer Averett <Jennifer.Averett@OARcorp.com> (diff) | |
download | rtems-db904606e335ba7ae4e363a96f7a5e2a2700bf4e.tar.bz2 |
2010-06-22 Joel Sherrill <joel.sherrilL@OARcorp.com>
* Makefile.am, configure.ac: Add new test to exercise path where using
unlimited object support you are about to allocate more objects than
can be represented in the Id. This test will NOT pass on targets with
insufficient RAM.
* sp71/.cvsignore, sp71/Makefile.am, sp71/init.c, sp71/sp71.doc,
sp71/sp71.scn: New files.
Diffstat (limited to 'testsuites/sptests/sp71')
-rw-r--r-- | testsuites/sptests/sp71/.cvsignore | 2 | ||||
-rw-r--r-- | testsuites/sptests/sp71/Makefile.am | 26 | ||||
-rw-r--r-- | testsuites/sptests/sp71/init.c | 71 | ||||
-rw-r--r-- | testsuites/sptests/sp71/sp71.doc | 22 | ||||
-rw-r--r-- | testsuites/sptests/sp71/sp71.scn | 4 |
5 files changed, 125 insertions, 0 deletions
diff --git a/testsuites/sptests/sp71/.cvsignore b/testsuites/sptests/sp71/.cvsignore new file mode 100644 index 0000000000..282522db03 --- /dev/null +++ b/testsuites/sptests/sp71/.cvsignore @@ -0,0 +1,2 @@ +Makefile +Makefile.in diff --git a/testsuites/sptests/sp71/Makefile.am b/testsuites/sptests/sp71/Makefile.am new file mode 100644 index 0000000000..be4e42037a --- /dev/null +++ b/testsuites/sptests/sp71/Makefile.am @@ -0,0 +1,26 @@ +## +## $Id$ +## + +MANAGERS = all + +rtems_tests_PROGRAMS = sp71 +sp71_SOURCES = init.c ../../support/src/spin.c + +dist_rtems_tests_DATA = sp71.scn +dist_rtems_tests_DATA += sp71.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 = $(sp71_OBJECTS) $(sp71_LDADD) +LINK_LIBS = $(sp71_LDLIBS) + +sp71$(EXEEXT): $(sp71_OBJECTS) $(sp71_DEPENDENCIES) + @rm -f sp71$(EXEEXT) + $(make-exe) + +include $(top_srcdir)/../automake/local.am diff --git a/testsuites/sptests/sp71/init.c b/testsuites/sptests/sp71/init.c new file mode 100644 index 0000000000..954f21c191 --- /dev/null +++ b/testsuites/sptests/sp71/init.c @@ -0,0 +1,71 @@ +/* + * COPYRIGHT (c) 1989-2010. + * 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.com/license/LICENSE. + * + * $Id$ + */ + +#include <tmacros.h> +#include "test_support.h" + +#define PER_ALLOCATION 8000 + +rtems_task Init( + rtems_task_argument argument +) +{ + rtems_status_code status; + rtems_id id; + long created; + + puts( "\n\n*** TEST 71 ***" ); + + created = 0; + do { + status = rtems_port_create( + rtems_build_name( 'P', 'O', 'R', 'T' ), + (void *) 0x1000, + (void *) 0x2000, + 1024, + &id + ); + if ( status == RTEMS_TOO_MANY ) + break; + directive_failed( status, "rtems_task_create" ); + created++; + } while (1); + + printf( + "%ld ports created using %d per allocation -- need %ld\n", + created, + PER_ALLOCATION, + (long) OBJECTS_ID_FINAL_INDEX + ); + + if ( (created + PER_ALLOCATION) > OBJECTS_ID_FINAL_INDEX ) { + puts( "Test case hit" ); + puts( "*** END OF TEST 71 ***" ); + } else { + puts( "Test case NOT hit" ); + } + rtems_test_exit(0); +} + +/* configuration information */ + +#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER +#define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER + +#define CONFIGURE_MAXIMUM_TASKS 1 +#define CONFIGURE_MAXIMUM_PORTS rtems_resource_unlimited(PER_ALLOCATION) +#define CONFIGURE_UNIFIED_WORK_AREAS +#define CONFIGURE_RTEMS_INIT_TASKS_TABLE + +#define CONFIGURE_INIT + +#include <rtems/confdefs.h> +/* end of file */ diff --git a/testsuites/sptests/sp71/sp71.doc b/testsuites/sptests/sp71/sp71.doc new file mode 100644 index 0000000000..9a4020d7c2 --- /dev/null +++ b/testsuites/sptests/sp71/sp71.doc @@ -0,0 +1,22 @@ +# +# $Id$ +# +# COPYRIGHT (c) 1989-2010. +# 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.com/license/LICENSE. +# + +This file describes the directives and concepts tested by this test set. + +test set name: sp71 + +directives: + + rtems_port_create + +concepts: + ++ Using unlimited objects, create so many that the index field would overflow. diff --git a/testsuites/sptests/sp71/sp71.scn b/testsuites/sptests/sp71/sp71.scn new file mode 100644 index 0000000000..048c5ffbab --- /dev/null +++ b/testsuites/sptests/sp71/sp71.scn @@ -0,0 +1,4 @@ +*** TEST 71 *** +64000 ports created using 8000 per allocation -- need 65535 +Test case hit +*** END OF TEST 71 *** |