summaryrefslogtreecommitdiffstats
path: root/testsuites/sptests/sp43
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2008-01-31 16:08:52 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2008-01-31 16:08:52 +0000
commit403c5077be7841a39d6f196cf118264d5edf0a94 (patch)
tree7452472a2d2ead89edc706ec03a24de7a78ef470 /testsuites/sptests/sp43
parent2008-01-31 Joel Sherrill <joel.sherrill@OARcorp.com> (diff)
downloadrtems-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.c120
-rw-r--r--testsuites/sptests/sp43/sp43.scnbin2611 -> 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
index 8b954a4c38..96de196d4a 100644
--- a/testsuites/sptests/sp43/sp43.scn
+++ b/testsuites/sptests/sp43/sp43.scn
Binary files differ