Back to home page

LXR

 
 

    


File indexing completed on 2025-05-11 08:24:45

0001 /* SPDX-License-Identifier: BSD-2-Clause */
0002 
0003 /**
0004  *  @file
0005  *
0006  *  Extension create fails
0007  */
0008 
0009 /*
0010  *  COPYRIGHT (c) 1989-2012.
0011  *  On-Line Applications Research Corporation (OAR).
0012  *
0013  * Redistribution and use in source and binary forms, with or without
0014  * modification, are permitted provided that the following conditions
0015  * are met:
0016  * 1. Redistributions of source code must retain the above copyright
0017  *    notice, this list of conditions and the following disclaimer.
0018  * 2. Redistributions in binary form must reproduce the above copyright
0019  *    notice, this list of conditions and the following disclaimer in the
0020  *    documentation and/or other materials provided with the distribution.
0021  *
0022  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
0023  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
0024  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
0025  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
0026  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
0027  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
0028  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
0029  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
0030  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
0031  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
0032  * POSSIBILITY OF SUCH DAMAGE.
0033  */
0034 
0035 #ifdef HAVE_CONFIG_H
0036 #include "config.h"
0037 #endif
0038 
0039 #include <tmacros.h>
0040 
0041 const char rtems_test_name[] = "SP 56";
0042 
0043 /* forward declarations to avoid warnings */
0044 rtems_task Init(rtems_task_argument argument);
0045 bool task_create(Thread_Control *executing, Thread_Control *created);
0046 
0047 bool task_create(
0048   Thread_Control *executing,
0049   Thread_Control *created
0050 )
0051 {
0052   return false;
0053 }
0054 
0055 rtems_extensions_table Extensions = {
0056   task_create,               /* task create user extension */
0057   NULL,                      /* task start user extension */
0058   NULL,                      /* task restart user extension */
0059   NULL,                      /* task delete user extension */
0060   NULL,                      /* task switch user extension */
0061   NULL,                      /* task begin user extension */
0062   NULL,                      /* task exitted user extension */
0063   NULL                       /* fatal error user extension */
0064 };
0065 
0066 rtems_task Init(
0067   rtems_task_argument ignored
0068 )
0069 {
0070   rtems_status_code    status;
0071   rtems_id             extension;
0072   rtems_id             task_id;
0073 
0074   TEST_BEGIN();
0075 
0076   puts( "Init - rtems_extension_create - OK" );
0077   status = rtems_extension_create(
0078     rtems_build_name( 'E', 'X', 'T', ' ' ),
0079     &Extensions,
0080     &extension
0081   );
0082   directive_failed( status, "rtems_extension_create" );
0083 
0084   puts( "Init - rtems_task_create - create extension fails - UNSATISFIED" );
0085   status = rtems_task_create(
0086      rtems_build_name( 'T', 'A', '1', ' ' ),
0087      1,
0088      RTEMS_MINIMUM_STACK_SIZE,
0089      RTEMS_TIMESLICE,
0090      RTEMS_FLOATING_POINT,
0091      &task_id
0092   );
0093   fatal_directive_status( status, RTEMS_UNSATISFIED, "rtems_task_create" );
0094 
0095   puts( "Init - rtems_extension_delete - OK" );
0096   status = rtems_extension_delete( extension );
0097   directive_failed( status, "rtems_extension_delete" );
0098   TEST_END();
0099   rtems_test_exit(0);
0100 }
0101 
0102 /* configuration information */
0103 
0104 #define CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER
0105 #define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
0106 
0107 #define CONFIGURE_MAXIMUM_TASKS             2
0108 #define CONFIGURE_MAXIMUM_USER_EXTENSIONS   1
0109 #define CONFIGURE_INITIAL_EXTENSIONS RTEMS_TEST_INITIAL_EXTENSION
0110 
0111 #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
0112 
0113 #define CONFIGURE_INIT
0114 #include <rtems/confdefs.h>
0115 
0116 /* global variables */