diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2008-01-31 16:08:52 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2008-01-31 16:08:52 +0000 |
commit | 403c5077be7841a39d6f196cf118264d5edf0a94 (patch) | |
tree | 7452472a2d2ead89edc706ec03a24de7a78ef470 /testsuites/sptests/sp43 | |
parent | 2008-01-31 Joel Sherrill <joel.sherrill@OARcorp.com> (diff) | |
download | rtems-403c5077be7841a39d6f196cf118264d5edf0a94.tar.bz2 |
2008-01-31 Joel Sherrill <joel.sherrill@OARcorp.com>
* sp09/screen01.c, sp09/sp09.scn: Add more bad thread Id cases.
* sp40/init.c, sp40/sp40.scn: Add message to say test is TBD.
* sp41/sp41.scn: Now has content.
* sp43/init.c, sp43/sp43.scn: Enhanced to increase coverage of
Object Services recently added to API.
Diffstat (limited to 'testsuites/sptests/sp43')
-rw-r--r-- | testsuites/sptests/sp43/init.c | 120 | ||||
-rw-r--r-- | testsuites/sptests/sp43/sp43.scn | bin | 2611 -> 3429 bytes |
2 files changed, 89 insertions, 31 deletions
diff --git a/testsuites/sptests/sp43/init.c b/testsuites/sptests/sp43/init.c index 6ce8d05a92..56950945ae 100644 --- a/testsuites/sptests/sp43/init.c +++ b/testsuites/sptests/sp43/init.c @@ -23,6 +23,9 @@ #undef rtems_object_id_get_index #undef rtems_object_id_get_node +rtems_id main_task; +rtems_name main_name; + void print_class_info( uint32_t api, uint32_t class, @@ -44,13 +47,33 @@ void print_class_info( ); } +void change_name( + const char *newName +) +{ + rtems_status_code status; + char name[ 5 ]; + char *ptr; + + puts( "rtems_object_set_name - change name of init task" ); + status = rtems_object_set_name( main_task, newName ); + directive_failed( status, "rtems_object_set_name" ); + + status = rtems_object_get_classic_name( main_task, &main_name ); + directive_failed( status, "rtems_object_get_classic_name" ); + put_name( main_name, FALSE ); + puts( " - name returned by rtems_object_get_classic_name" ); + + ptr = rtems_object_get_name( main_task, 5, name ); + rtems_test_assert(ptr != NULL); + printf( "rtems_object_get_name returned (%s) for init task\n", ptr ); +} + rtems_task Init( rtems_task_argument argument ) { rtems_status_code status; - rtems_id main_task; - rtems_name main_name; rtems_id tmpId; rtems_name tmpName; char name[5]; @@ -59,7 +82,6 @@ rtems_task Init( uint32_t part; rtems_object_api_class_information info; - puts( "\n\n*** TEST 43 ***" ); main_task = rtems_task_self(); @@ -69,15 +91,32 @@ rtems_task Init( fatal_directive_status( status, RTEMS_INVALID_ADDRESS, - "rtems_object_get_classic_name" + "rtems_object_get_classic_name #1" + ); + + puts( "rtems_object_get_classic_name - INVALID_ID (bad index)" ); + status = rtems_object_get_classic_name( main_task + 5, &main_name ); + fatal_directive_status( + status, + RTEMS_INVALID_ID, + "rtems_object_get_classic_name #2" + ); + + puts( "rtems_object_get_classic_name - INVALID_ID (unallocated index)" ); + status = rtems_object_get_classic_name( main_task + 1, &main_name ); + fatal_directive_status( + status, + RTEMS_INVALID_ID, + "rtems_object_get_classic_name #4" ); - puts( "rtems_object_get_classic_name - INVALID_ID" ); - status = rtems_object_get_classic_name( main_task + 5, &tmpId ); + puts( "rtems_object_get_classic_name - INVALID_ID (bad API)" ); + tmpId = rtems_build_id( 0xff, OBJECTS_RTEMS_TASKS, 1, 1 ), + status = rtems_object_get_classic_name( tmpId, &main_name ); fatal_directive_status( status, RTEMS_INVALID_ID, - "rtems_object_get_classic_name" + "rtems_object_get_classic_name #5" ); status = rtems_object_get_classic_name( main_task, &main_name ); @@ -118,21 +157,37 @@ rtems_task Init( printf( "rtems_object_get_name returned (%s) for init task\n", ptr ); /* - * rtems_object_set_name - change name of init task + * rtems_object_set_name - errors */ - puts( "rtems_object_set_name - change name of init task" ); - status = rtems_object_set_name( main_task, newName ); - directive_failed( status, "rtems_object_set_name" ); + puts( "rtems_object_set_name - INVALID_ID (bad API)" ); + tmpId = rtems_build_id( 0xff, OBJECTS_RTEMS_TASKS, 1, 1 ), + status = rtems_object_set_name( tmpId, newName ); + fatal_directive_status( + status, + RTEMS_INVALID_ID, + "rtems_object_set_name #1" + ); - status = rtems_object_get_classic_name( main_task, &main_name ); - directive_failed( status, "rtems_object_get_classic_name" ); - put_name( main_name, FALSE ); - puts( " - name returned by rtems_object_get_classic_name" ); + puts( "rtems_object_set_name - INVALID_ID (bad index)" ); + status = rtems_object_set_name( main_task + 10, newName ); + fatal_directive_status( + status, + RTEMS_INVALID_ID, + "rtems_object_set_name #2" + ); - ptr = rtems_object_get_name( main_task, 5, name ); - rtems_test_assert(ptr != NULL); - printf( "rtems_object_get_name returned (%s) for init task\n", ptr ); + /* + * rtems_object_set_name - change name of init task in various ways. + * + * This is strange but pushes the SuperCore code to do different things. + */ + + change_name( "New1" ); + change_name( "Ne1" ); + change_name( "N1" ); + change_name( "N" ); + change_name( "" ); /* * Exercise id build and extraction routines @@ -177,6 +232,10 @@ rtems_task Init( rtems_object_api_minimum_class(0) ); printf( "rtems_object_api_maximum_class(0) returned %d\n", rtems_object_api_maximum_class(0) ); + printf( "rtems_object_api_minimum_class(255) returned %d\n", + rtems_object_api_minimum_class(255) ); + printf( "rtems_object_api_maximum_class(255) returned %d\n", + rtems_object_api_maximum_class(255) ); printf( "rtems_object_api_minimum_class(OBJECTS_INTERNAL_API) returned %d\n", rtems_object_api_minimum_class(OBJECTS_INTERNAL_API) ); @@ -188,31 +247,24 @@ rtems_task Init( printf( "rtems_object_api_maximum_class(OBJECTS_CLASSIC_API) returned %d\n", rtems_object_api_maximum_class(OBJECTS_CLASSIC_API) ); - printf( "rtems_object_api_minimum_class(OBJECTS_POSIX_API) returned %d\n", - rtems_object_api_minimum_class(OBJECTS_POSIX_API) ); - printf( "rtems_object_api_maximum_class(OBJECTS_POSIX_API) returned %d\n", - rtems_object_api_maximum_class(OBJECTS_POSIX_API) ); - printf( "rtems_object_api_minimum_class(OBJECTS_ITRON_API) returned %d\n", rtems_object_api_minimum_class(OBJECTS_ITRON_API) ); printf( "rtems_object_api_maximum_class(OBJECTS_ITRON_API) returned %d\n", rtems_object_api_maximum_class(OBJECTS_ITRON_API) ); - /* * Another screen break for the API and class name tests */ rtems_test_pause(); printf( "rtems_object_get_api_name(0) = %s\n", rtems_object_get_api_name(0) ); - printf( "rtems_object_get_api_name(255) = %s\n", rtems_object_get_api_name(255)); + printf( "rtems_object_get_api_name(255) = %s\n", + rtems_object_get_api_name(255)); printf( "rtems_object_get_api_name(INTERNAL_API) = %s\n", rtems_object_get_api_name(OBJECTS_INTERNAL_API) ); printf( "rtems_object_get_api_name(CLASSIC_API) = %s\n", rtems_object_get_api_name(OBJECTS_CLASSIC_API) ); - printf( "rtems_object_get_api_name(POSIX_API) = %s\n", - rtems_object_get_api_name(OBJECTS_POSIX_API) ); printf( "rtems_object_get_api_name(ITRON_API) = %s\n", rtems_object_get_api_name(OBJECTS_ITRON_API) ); @@ -220,8 +272,12 @@ rtems_task Init( rtems_object_get_api_class_name( 0, OBJECTS_RTEMS_TASKS ) ); printf( "rtems_object_get_api_class_name(CLASSIC_API, 0) = %s\n", rtems_object_get_api_class_name( OBJECTS_CLASSIC_API, 0 ) ); - printf( "rtems_object_get_api_class_name(CLASSIC_API, RTEMS_BARRIERS) = %s\n", - rtems_object_get_api_class_name(OBJECTS_CLASSIC_API, OBJECTS_RTEMS_BARRIERS)); + printf("rtems_object_get_api_class_name(INTERNAL_API, MUTEXES) = %s\n", + rtems_object_get_api_class_name( + OBJECTS_INTERNAL_API, OBJECTS_INTERNAL_MUTEXES)); + printf("rtems_object_get_api_class_name(CLASSIC_API, RTEMS_BARRIERS) = %s\n", + rtems_object_get_api_class_name( + OBJECTS_CLASSIC_API, OBJECTS_RTEMS_BARRIERS)); /* * Another screen break for the information @@ -239,7 +295,8 @@ rtems_task Init( ); puts( "rtems_object_get_class_information - INVALID_NUMBER (bad API)" ); - status = rtems_object_get_class_information(0, OBJECTS_INTERNAL_THREADS, &info); + status = + rtems_object_get_class_information(0, OBJECTS_INTERNAL_THREADS, &info); fatal_directive_status( status, RTEMS_INVALID_NUMBER, @@ -247,7 +304,8 @@ rtems_task Init( ); puts( "rtems_object_get_class_information - INVALID_NUMBER (bad class)" ); - status = rtems_object_get_class_information( OBJECTS_INTERNAL_API, 0, &info ); + status = + rtems_object_get_class_information( OBJECTS_INTERNAL_API, 0, &info ); fatal_directive_status( status, RTEMS_INVALID_NUMBER, diff --git a/testsuites/sptests/sp43/sp43.scn b/testsuites/sptests/sp43/sp43.scn Binary files differindex 8b954a4c38..96de196d4a 100644 --- a/testsuites/sptests/sp43/sp43.scn +++ b/testsuites/sptests/sp43/sp43.scn |