From 6f67619ee65456056e2ef5f172fe2228c17d9842 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Tue, 6 Jul 2010 22:27:23 +0000 Subject: 2010-07-06 Joel Sherrill * sp21/Makefile.am, sp21/init.c, sp21/sp21.scn: Add rtems_io_lookup_name() and simplify test. * sp21/system.h, sp21/task1.c: Removed. --- testsuites/sptests/sp21/Makefile.am | 6 +- testsuites/sptests/sp21/init.c | 239 +++++++++++++++++++++++++++++++----- testsuites/sptests/sp21/sp21.scn | 46 +++---- testsuites/sptests/sp21/system.h | 46 ------- testsuites/sptests/sp21/task1.c | 195 ----------------------------- 5 files changed, 231 insertions(+), 301 deletions(-) delete mode 100644 testsuites/sptests/sp21/system.h delete mode 100644 testsuites/sptests/sp21/task1.c (limited to 'testsuites/sptests/sp21') diff --git a/testsuites/sptests/sp21/Makefile.am b/testsuites/sptests/sp21/Makefile.am index 7d73800cdc..1b01adb9dc 100644 --- a/testsuites/sptests/sp21/Makefile.am +++ b/testsuites/sptests/sp21/Makefile.am @@ -2,10 +2,8 @@ ## $Id$ ## -MANAGERS = io semaphore clock - rtems_tests_PROGRAMS = sp21 -sp21_SOURCES = init.c task1.c system.h +sp21_SOURCES = init.c dist_rtems_tests_DATA = sp21.scn dist_rtems_tests_DATA += sp21.doc @@ -14,8 +12,6 @@ include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg include $(top_srcdir)/../automake/compile.am include $(top_srcdir)/../automake/leaf.am -sp21_LDADD = $(MANAGERS_NOT_WANTED:%=$(PROJECT_LIB)/no-%.rel) - AM_CPPFLAGS += -I$(top_srcdir)/../support/include LINK_OBJS = $(sp21_OBJECTS) $(sp21_LDADD) diff --git a/testsuites/sptests/sp21/init.c b/testsuites/sptests/sp21/init.c index 0266567d75..cd6aef6a33 100644 --- a/testsuites/sptests/sp21/init.c +++ b/testsuites/sptests/sp21/init.c @@ -1,17 +1,5 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989-1999. +/* + * COPYRIGHT (c) 1989-2010. * On-Line Applications Research Corporation (OAR). * * The license and distribution terms for this file may be @@ -21,32 +9,217 @@ * $Id$ */ -#define CONFIGURE_INIT -#include "system.h" +#include +#include + + +#define PRIurtems_device_major_number PRIu32 + +#define STUB_DRIVER_MAJOR 0x2 +#define NO_DRIVER_MAJOR 0x3 +#define INVALID_DRIVER_MAJOR \ + (rtems_configuration_get_number_of_device_drivers() + 1) + +/* driver entries to use with io_register */ +rtems_driver_address_table GoodDriver = DEVNULL_DRIVER_TABLE_ENTRY; +rtems_driver_address_table BadDriver_Nothing = { + NULL, NULL, NULL, NULL, NULL, NULL +}; + +void do_test_io_manager(void) +{ + rtems_status_code status; + rtems_device_major_number registered; + rtems_device_major_number registered_worked; + + puts( "----- TESTING THE NULL DRIVER CHECKS -----" ); + + status = rtems_io_initialize( NO_DRIVER_MAJOR, 0, NULL ); + directive_failed( status, "rtems_io_initialize" ); + puts( "rtems_io_initialize - NULL DRIVER RTEMS_SUCCESSFUL" ); + + status = rtems_io_open( NO_DRIVER_MAJOR, 0, NULL ); + directive_failed( status, "rtems_io_open" ); + puts( "rtems_io_open - NULL DRIVER RTEMS_SUCCESSFUL" ); + + status = rtems_io_close( NO_DRIVER_MAJOR, 0, NULL ); + directive_failed( status, "rtems_io_close" ); + puts( "rtems_io_close - NULL DRIVER RTEMS_SUCCESSFUL" ); + + status = rtems_io_read( NO_DRIVER_MAJOR, 0, NULL ); + directive_failed( status, "rtems_io_read" ); + puts( "rtems_io_read - NULL DRIVER RTEMS_SUCCESSFUL" ); + + status = rtems_io_write( NO_DRIVER_MAJOR, 0, NULL ); + directive_failed( status, "rtems_io_write" ); + puts( "rtems_io_write - NULL DRIVER RTEMS_SUCCESSFUL" ); + + status = rtems_io_control( NO_DRIVER_MAJOR, 0, NULL ); + directive_failed( status, "rtems_io_control" ); + puts( "rtems_io_control - NULL DRIVER RTEMS_SUCCESSFUL" ); + + puts( "----- TESTING THE I/O MANAGER DIRECTIVES -----" ); + + status = rtems_io_initialize( STUB_DRIVER_MAJOR, 0, NULL ); + directive_failed( status, "rtems_io_initialize" ); + puts( "rtems_io_initialize - STUB DRIVER RTEMS_SUCCESSFUL" ); + + status = rtems_io_open( STUB_DRIVER_MAJOR, 0, NULL ); + directive_failed( status, "rtems_io_open" ); + puts( "rtems_io_open - STUB DRIVER RTEMS_SUCCESSFUL" ); + + status = rtems_io_close( STUB_DRIVER_MAJOR, 0, NULL ); + directive_failed( status, "rtems_io_close" ); + puts( "rtems_io_close - STUB DRIVER RTEMS_SUCCESSFUL" ); + + status = rtems_io_read( STUB_DRIVER_MAJOR, 0, NULL ); + directive_failed( status, "rtems_io_read" ); + puts( "rtems_io_read - STUB DRIVER RTEMS_SUCCESSFUL" ); + + status = rtems_io_write( STUB_DRIVER_MAJOR, 0, NULL ); + directive_failed( status, "rtems_io_write" ); + puts( "rtems_io_write - STUB DRIVER RTEMS_SUCCESSFUL" ); + + status = rtems_io_control( STUB_DRIVER_MAJOR, 0, NULL ); + directive_failed( status, "rtems_io_control" ); + puts( "rtems_io_control - STUB DRIVER RTEMS_SUCCESSFUL" ); + + /* + * Invalid major number + */ + puts( "----- RETURNING INVALID MAJOR NUMBER -----" ); + + status = rtems_io_initialize( INVALID_DRIVER_MAJOR, 0, NULL ); + fatal_directive_status( + status, + RTEMS_INVALID_NUMBER, + "rtems_io_initialize" + ); + puts( "rtems_io_initialize - RTEMS_INVALID_NUMBER" ); + + status = rtems_io_open( INVALID_DRIVER_MAJOR, 0, NULL ); + fatal_directive_status( + status, + RTEMS_INVALID_NUMBER, + "rtems_io_open" + ); + puts( "rtems_io_open - RTEMS_INVALID_NUMBER" ); + + /* + * Exercise the io register driver directive + */ + puts( "----- EXERCISE DRIVER REGISTER -----" ); + + status = rtems_io_register_driver( 0, &GoodDriver, NULL ); + fatal_directive_status( + status, + RTEMS_INVALID_ADDRESS, + "rtems_io_register_driver" + ); + puts( + "rtems_io_register_driver - RTEMS_INVALID_ADDRESS - NULL registered" + ); + + status = rtems_io_register_driver( 0, NULL, ®istered ); + fatal_directive_status( + status, + RTEMS_INVALID_ADDRESS, + "rtems_io_register_driver" + ); + puts( + "rtems_io_register_driver - RTEMS_INVALID_ADDRESS - NULL device" + ); + + status = rtems_io_register_driver( 0, &BadDriver_Nothing, ®istered ); + fatal_directive_status( + status, + RTEMS_INVALID_ADDRESS, + "rtems_io_register_driver" + ); + puts( + "rtems_io_register_driver - RTEMS_INVALID_ADDRESS - no callouts" + ); + + status = rtems_io_register_driver( + INVALID_DRIVER_MAJOR, &GoodDriver, ®istered ); + fatal_directive_status( + status, + RTEMS_INVALID_NUMBER, + "rtems_io_register_driver" + ); + puts( "rtems_io_register_driver - RTEMS_INVALID_NUMBER - bad major" ); + + /* this has to succeed to overwrite NULL driver entry required above. */ + status = rtems_io_register_driver( 0, &GoodDriver, ®istered_worked ); + directive_failed( status, "rtems_io_register_driver" ); + puts( "rtems_io_register_driver - RTEMS_SUCCESSFUL - overwrite NULL" ); + + status = rtems_io_register_driver( 0, &GoodDriver, ®istered ); + if ( status == RTEMS_SUCCESSFUL ) + printf( + "registered major = %" PRIurtems_device_major_number "\n", registered ); + fatal_directive_status( + status, + RTEMS_TOO_MANY, + "rtems_io_register_driver" + ); + puts( "rtems_io_register_driver - RTEMS_TOO_MANY - no slots" ); + + /* there should be a driver at major 1 -- clock, console, or stub */ + status = rtems_io_register_driver( 1, &GoodDriver, ®istered ); + fatal_directive_status( + status, + RTEMS_RESOURCE_IN_USE, + "rtems_io_register_driver" + ); + puts( + "rtems_io_register_driver - RTEMS_RESOURCE_IN_USE - major in use" + ); + + /* this should unregister the device driver we registered above */ + status = rtems_io_unregister_driver( registered_worked ); + directive_failed( status, "rtems_io_unregister_driver" ); + puts( "rtems_io_unregister_driver - RTEMS_SUCCESSFUL" ); +} + +void do_test_io_lookup_name(void) +{ + rtems_status_code sc; + rtems_driver_name_t info; + + puts( "rtems_io_lookup_name( \"\", &info )" ); + sc = rtems_io_lookup_name( "", &info ); + fatal_directive_status( sc, RTEMS_UNSATISFIED, "lookup empty string" ); + + puts( "rtems_io_lookup_name( \"/dev/null\", &info )" ); + sc = rtems_io_lookup_name( "/dev/null", &info ); + directive_failed( sc, "lookup /dev/null" ); +} rtems_task Init( rtems_task_argument argument ) { - rtems_status_code status; - puts( "\n\n*** TEST 21 ***" ); - Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' ); + do_test_io_manager(); - status = rtems_task_create( - Task_name[ 1 ], - 1, - RTEMS_MINIMUM_STACK_SIZE, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create of TA1" ); - - status = rtems_task_start( Task_id[ 1 ], Task_1, 0 ); - directive_failed( status, "rtems_task_start of TA1" ); + do_test_io_lookup_name(); - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); + puts( "*** END OF TEST 21 ***" ); + rtems_test_exit( 0 ); } + +/* configuration information */ + +#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER +#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER +#define CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER +#define CONFIGURE_APPLICATION_NEEDS_NULL_DRIVER + +#define CONFIGURE_MAXIMUM_TASKS 1 +#define CONFIGURE_RTEMS_INIT_TASKS_TABLE + +#define CONFIGURE_INIT +#include +/* end of file */ diff --git a/testsuites/sptests/sp21/sp21.scn b/testsuites/sptests/sp21/sp21.scn index 239d8a30ec..0cb3e41e85 100644 --- a/testsuites/sptests/sp21/sp21.scn +++ b/testsuites/sptests/sp21/sp21.scn @@ -1,28 +1,30 @@ *** TEST 21 *** ----- TESTING THE NULL DRIVER CHECKS ----- -TA1 - rtems_io_initialize - NULL DRIVER RTEMS_SUCCESSFUL -TA1 - rtems_io_open - NULL DRIVER RTEMS_SUCCESSFUL -TA1 - rtems_io_close - NULL DRIVER RTEMS_SUCCESSFUL -TA1 - rtems_io_read - NULL DRIVER RTEMS_SUCCESSFUL -TA1 - rtems_io_write - NULL DRIVER RTEMS_SUCCESSFUL -TA1 - rtems_io_control - NULL DRIVER RTEMS_SUCCESSFUL +rtems_io_initialize - NULL DRIVER RTEMS_SUCCESSFUL +rtems_io_open - NULL DRIVER RTEMS_SUCCESSFUL +rtems_io_close - NULL DRIVER RTEMS_SUCCESSFUL +rtems_io_read - NULL DRIVER RTEMS_SUCCESSFUL +rtems_io_write - NULL DRIVER RTEMS_SUCCESSFUL +rtems_io_control - NULL DRIVER RTEMS_SUCCESSFUL ----- TESTING THE I/O MANAGER DIRECTIVES ----- -TA1 - rtems_io_initialize - STUB DRIVER RTEMS_SUCCESSFUL -TA1 - rtems_io_open - STUB DRIVER RTEMS_SUCCESSFUL -TA1 - rtems_io_close - STUB DRIVER RTEMS_SUCCESSFUL -TA1 - rtems_io_read - STUB DRIVER RTEMS_SUCCESSFUL -TA1 - rtems_io_write - STUB DRIVER RTEMS_SUCCESSFUL -TA1 - rtems_io_control - STUB DRIVER RTEMS_SUCCESSFUL +rtems_io_initialize - STUB DRIVER RTEMS_SUCCESSFUL +rtems_io_open - STUB DRIVER RTEMS_SUCCESSFUL +rtems_io_close - STUB DRIVER RTEMS_SUCCESSFUL +rtems_io_read - STUB DRIVER RTEMS_SUCCESSFUL +rtems_io_write - STUB DRIVER RTEMS_SUCCESSFUL +rtems_io_control - STUB DRIVER RTEMS_SUCCESSFUL ----- RETURNING INVALID MAJOR NUMBER ----- -TA1 - rtems_io_initialize - RTEMS_INVALID_NUMBER -TA1 - rtems_io_open - RTEMS_INVALID_NUMBER +rtems_io_initialize - RTEMS_INVALID_NUMBER +rtems_io_open - RTEMS_INVALID_NUMBER ----- EXERCISE DRIVER REGISTER ----- -TA1 - rtems_io_register_driver - RTEMS_INVALID_ADDRESS - NULL registered -TA1 - rtems_io_register_driver - RTEMS_INVALID_ADDRESS - NULL device -TA1 - rtems_io_register_driver - RTEMS_INVALID_ADDRESS - no callouts -TA1 - rtems_io_register_driver - RTEMS_INVALID_NUMBER - bad major -TA1 - rtems_io_register_driver - RTEMS_SUCCESSFUL - overwrite NULL -TA1 - rtems_io_register_driver - RTEMS_TOO_MANY - no slots -TA1 - rtems_io_register_driver - RTEMS_RESOURCE_IN_USE - major in use -TA1 - rtems_io_unregister_driver - RTEMS_SUCCESSFUL +rtems_io_register_driver - RTEMS_INVALID_ADDRESS - NULL registered +rtems_io_register_driver - RTEMS_INVALID_ADDRESS - NULL device +rtems_io_register_driver - RTEMS_INVALID_ADDRESS - no callouts +rtems_io_register_driver - RTEMS_INVALID_NUMBER - bad major +rtems_io_register_driver - RTEMS_SUCCESSFUL - overwrite NULL +rtems_io_register_driver - RTEMS_TOO_MANY - no slots +rtems_io_register_driver - RTEMS_RESOURCE_IN_USE - major in use +rtems_io_unregister_driver - RTEMS_SUCCESSFUL +rtems_io_lookup_name( "", &info ) +rtems_io_lookup_name( "/dev/null", &info ) *** END OF TEST 21 *** diff --git a/testsuites/sptests/sp21/system.h b/testsuites/sptests/sp21/system.h deleted file mode 100644 index d50859308c..0000000000 --- a/testsuites/sptests/sp21/system.h +++ /dev/null @@ -1,46 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989-1999. - * 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 - -/* functions */ - -rtems_task Init( - rtems_task_argument argument -); - -rtems_task Task_1( - rtems_task_argument argument -); - -/* configuration information */ - -#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER -#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER -#define CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER -#define CONFIGURE_APPLICATION_NEEDS_NULL_DRIVER - -#define CONFIGURE_MAXIMUM_TASKS 2 - -#define CONFIGURE_RTEMS_INIT_TASKS_TABLE - -#include - -/* global variables */ - -TEST_EXTERN rtems_id Task_id[ 4 ]; /* array of task ids */ -TEST_EXTERN rtems_name Task_name[ 4 ]; /* array of task names */ - -/* end of include file */ diff --git a/testsuites/sptests/sp21/task1.c b/testsuites/sptests/sp21/task1.c deleted file mode 100644 index 91d9d1b0e9..0000000000 --- a/testsuites/sptests/sp21/task1.c +++ /dev/null @@ -1,195 +0,0 @@ -/* Task_1 - * - * This routine serves as a test task. It tests the I/O manager. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989-2002. - * 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 "system.h" - -/* rtems_device_major_number is a typedef to uint32_t */ -#define PRIurtems_device_major_number PRIu32 - -#define STUB_DRIVER_MAJOR 0x2 -#define NO_DRIVER_MAJOR 0x3 -#define INVALID_DRIVER_MAJOR \ - (rtems_configuration_get_number_of_device_drivers() + 1) - -/* driver entries to use with io_register */ -rtems_driver_address_table GoodDriver = DEVNULL_DRIVER_TABLE_ENTRY; -rtems_driver_address_table BadDriver_Nothing = { - NULL, NULL, NULL, NULL, NULL, NULL -}; - -rtems_task Task_1( - rtems_task_argument argument -) -{ - rtems_status_code status; - rtems_device_major_number registered; - rtems_device_major_number registered_worked; - - puts( "----- TESTING THE NULL DRIVER CHECKS -----" ); - - status = rtems_io_initialize( NO_DRIVER_MAJOR, 0, NULL ); - directive_failed( status, "rtems_io_initialize" ); - puts( "TA1 - rtems_io_initialize - NULL DRIVER RTEMS_SUCCESSFUL" ); - - status = rtems_io_open( NO_DRIVER_MAJOR, 0, NULL ); - directive_failed( status, "rtems_io_open" ); - puts( "TA1 - rtems_io_open - NULL DRIVER RTEMS_SUCCESSFUL" ); - - status = rtems_io_close( NO_DRIVER_MAJOR, 0, NULL ); - directive_failed( status, "rtems_io_close" ); - puts( "TA1 - rtems_io_close - NULL DRIVER RTEMS_SUCCESSFUL" ); - - status = rtems_io_read( NO_DRIVER_MAJOR, 0, NULL ); - directive_failed( status, "rtems_io_read" ); - puts( "TA1 - rtems_io_read - NULL DRIVER RTEMS_SUCCESSFUL" ); - - status = rtems_io_write( NO_DRIVER_MAJOR, 0, NULL ); - directive_failed( status, "rtems_io_write" ); - puts( "TA1 - rtems_io_write - NULL DRIVER RTEMS_SUCCESSFUL" ); - - status = rtems_io_control( NO_DRIVER_MAJOR, 0, NULL ); - directive_failed( status, "rtems_io_control" ); - puts( "TA1 - rtems_io_control - NULL DRIVER RTEMS_SUCCESSFUL" ); - - puts( "----- TESTING THE I/O MANAGER DIRECTIVES -----" ); - - status = rtems_io_initialize( STUB_DRIVER_MAJOR, 0, NULL ); - directive_failed( status, "rtems_io_initialize" ); - puts( "TA1 - rtems_io_initialize - STUB DRIVER RTEMS_SUCCESSFUL" ); - - status = rtems_io_open( STUB_DRIVER_MAJOR, 0, NULL ); - directive_failed( status, "rtems_io_open" ); - puts( "TA1 - rtems_io_open - STUB DRIVER RTEMS_SUCCESSFUL" ); - - status = rtems_io_close( STUB_DRIVER_MAJOR, 0, NULL ); - directive_failed( status, "rtems_io_close" ); - puts( "TA1 - rtems_io_close - STUB DRIVER RTEMS_SUCCESSFUL" ); - - status = rtems_io_read( STUB_DRIVER_MAJOR, 0, NULL ); - directive_failed( status, "rtems_io_read" ); - puts( "TA1 - rtems_io_read - STUB DRIVER RTEMS_SUCCESSFUL" ); - - status = rtems_io_write( STUB_DRIVER_MAJOR, 0, NULL ); - directive_failed( status, "rtems_io_write" ); - puts( "TA1 - rtems_io_write - STUB DRIVER RTEMS_SUCCESSFUL" ); - - status = rtems_io_control( STUB_DRIVER_MAJOR, 0, NULL ); - directive_failed( status, "rtems_io_control" ); - puts( "TA1 - rtems_io_control - STUB DRIVER RTEMS_SUCCESSFUL" ); - - - /* - * Invalid major number - */ - puts( "----- RETURNING INVALID MAJOR NUMBER -----" ); - - status = rtems_io_initialize( INVALID_DRIVER_MAJOR, 0, NULL ); - fatal_directive_status( - status, - RTEMS_INVALID_NUMBER, - "rtems_io_initialize" - ); - puts( "TA1 - rtems_io_initialize - RTEMS_INVALID_NUMBER" ); - - status = rtems_io_open( INVALID_DRIVER_MAJOR, 0, NULL ); - fatal_directive_status( - status, - RTEMS_INVALID_NUMBER, - "rtems_io_open" - ); - puts( "TA1 - rtems_io_open - RTEMS_INVALID_NUMBER" ); - - /* - * Exercise the io register driver directive - */ - puts( "----- EXERCISE DRIVER REGISTER -----" ); - - status = rtems_io_register_driver( 0, &GoodDriver, NULL ); - fatal_directive_status( - status, - RTEMS_INVALID_ADDRESS, - "rtems_io_register_driver" - ); - puts( - "TA1 - rtems_io_register_driver - RTEMS_INVALID_ADDRESS - NULL registered" - ); - - status = rtems_io_register_driver( 0, NULL, ®istered ); - fatal_directive_status( - status, - RTEMS_INVALID_ADDRESS, - "rtems_io_register_driver" - ); - puts( - "TA1 - rtems_io_register_driver - RTEMS_INVALID_ADDRESS - NULL device" - ); - - status = rtems_io_register_driver( 0, &BadDriver_Nothing, ®istered ); - fatal_directive_status( - status, - RTEMS_INVALID_ADDRESS, - "rtems_io_register_driver" - ); - puts( - "TA1 - rtems_io_register_driver - RTEMS_INVALID_ADDRESS - no callouts" - ); - - status = rtems_io_register_driver( - INVALID_DRIVER_MAJOR, &GoodDriver, ®istered ); - fatal_directive_status( - status, - RTEMS_INVALID_NUMBER, - "rtems_io_register_driver" - ); - puts( "TA1 - rtems_io_register_driver - RTEMS_INVALID_NUMBER - bad major" ); - - /* this has to succeed to overwrite NULL driver entry required above. */ - status = rtems_io_register_driver( 0, &GoodDriver, ®istered_worked ); - directive_failed( status, "rtems_io_register_driver" ); - puts( "TA1 - rtems_io_register_driver - RTEMS_SUCCESSFUL - overwrite NULL" ); - - status = rtems_io_register_driver( 0, &GoodDriver, ®istered ); - if ( status == RTEMS_SUCCESSFUL ) - printf( "registered major = %" PRIurtems_device_major_number "\n", registered ); - fatal_directive_status( - status, - RTEMS_TOO_MANY, - "rtems_io_register_driver" - ); - puts( "TA1 - rtems_io_register_driver - RTEMS_TOO_MANY - no slots" ); - - /* there should be a driver at major 1 -- clock, console, or stub */ - status = rtems_io_register_driver( 1, &GoodDriver, ®istered ); - fatal_directive_status( - status, - RTEMS_RESOURCE_IN_USE, - "rtems_io_register_driver" - ); - puts( - "TA1 - rtems_io_register_driver - RTEMS_RESOURCE_IN_USE - major in use" - ); - - /* this should unregister the device driver we registered above */ - status = rtems_io_unregister_driver( registered_worked ); - directive_failed( status, "rtems_io_unregister_driver" ); - puts( "TA1 - rtems_io_unregister_driver - RTEMS_SUCCESSFUL" ); - - puts( "*** END OF TEST 21 ***" ); - rtems_test_exit( 0 ); -} -- cgit v1.2.3