source: rtems/testsuites/sptests/sp54/init.c @ 6b0873f

5
Last change on this file since 6b0873f was 6b0873f, checked in by Sebastian Huber <sebastian.huber@…>, on 02/14/20 at 07:40:41

config: Remove CONFIGURE_HAS_OWN_INIT_TASK_TABLE

The CONFIGURE_HAS_OWN_INIT_TASK_TABLE and
CONFIGURE_POSIX_HAS_OWN_INIT_THREAD_TABLE are the last *_HAS_OWN_*
configuration options. These two options are probably unused, see also:

Removing them simplifies the configuration. If there is a real user need
which shows up after the removal, we can resurrect them on demand.

Using CONFIGURE_HAS_OWN_INIT_TASK_TABLE would have required the use of
the undocumented CONFIGURE_INIT_TASK_TABLE and
CONFIGURE_INIT_TASK_TABLE_SIZE configuration options.

Update #3873.

  • Property mode set to 100644
File size: 2.3 KB
Line 
1/**
2 *  @@file
3 *
4 *  Odd Id Cases where API configured but No Threads
5 *    + Possibly Valid Id passed to directive
6 */
7
8/*
9 *  COPYRIGHT (c) 1989-2012.
10 *  On-Line Applications Research Corporation (OAR).
11 *
12 *  The license and distribution terms for this file may be
13 *  found in the file LICENSE in this distribution or at
14 *  http://www.rtems.org/license/LICENSE.
15 */
16
17#ifdef HAVE_CONFIG_H
18#include "config.h"
19#endif
20
21#include <tmacros.h>
22
23const char rtems_test_name[] = "SP 54";
24
25static void *Init( uintptr_t ignored )
26{
27  rtems_status_code                    status;
28  rtems_task_priority                  pri;
29  rtems_id                             id;
30  const rtems_api_configuration_table *config;
31
32  /*
33   *  It is possible that since this thread prints and there is no idle
34   *  task, that the system could fail miserably. :(
35   */
36  TEST_BEGIN();
37
38  puts( "Init - use valid id of API class with no objects" );
39  status = rtems_task_set_priority(
40    rtems_build_id(0x2,0x1,0x01,0x0001) /* 0xa010001 */,
41    RTEMS_CURRENT_PRIORITY,
42    &pri
43  );
44  fatal_directive_status( status, RTEMS_INVALID_ID, "rtems_task_set_priority" );
45
46  puts( "Init - lookup name within API class with no objects" );
47  status = rtems_task_ident(
48    rtems_build_id( 0, 0, 0x12, 0x3456) /* 0x123456 */,
49    RTEMS_SEARCH_ALL_NODES,
50    &id
51  );
52  fatal_directive_status( status, RTEMS_INVALID_NAME, "rtems_task_ident" );
53
54  rtems_test_assert( rtems_configuration_get_do_zero_of_workspace() );
55
56  config = rtems_configuration_get_rtems_api_configuration();
57  rtems_test_assert( config->number_of_initialization_tasks == 0 );
58  rtems_test_assert( config->User_initialization_tasks_table == NULL );
59
60  TEST_END();
61  rtems_test_exit(0);
62}
63
64/* configuration information */
65
66#define CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER
67#define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
68
69/*
70 *  In this application, the initialization task performs the system
71 *  initialization and then transforms itself into the idle task.
72 */
73#define CONFIGURE_IDLE_TASK_BODY Init
74#define CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION
75
76#define CONFIGURE_DIRTY_MEMORY
77
78/*
79 *  Ensure we test the case where memory is zero.
80 */
81#define CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY
82
83#define CONFIGURE_INIT
84#include <rtems/confdefs.h>
85
86/* global variables */
Note: See TracBrowser for help on using the repository browser.