2009-08-19 Joel Sherrill <joel.sherrill@OARcorp.com>

* psx07/init.c, psx07/psx07.scn, psx07/system.h, psx07/task.c: Update
	test to reflect not allowing poriority changes when mutex is locked.
This commit is contained in:
Joel Sherrill
2009-08-19 14:55:24 +00:00
parent 3a12177645
commit 712726d3df
5 changed files with 112 additions and 1 deletions

View File

@@ -1,3 +1,8 @@
2009-08-19 Joel Sherrill <joel.sherrill@OARcorp.com>
* psx07/init.c, psx07/psx07.scn, psx07/system.h, psx07/task.c: Update
test to reflect not allowing poriority changes when mutex is locked.
2009-08-18 Joel Sherrill <joel.sherrill@OARcorp.com>
* psx01/init.c, psx01/psx01.scn: Add test case for nanosleep with NULL

View File

@@ -555,6 +555,40 @@ void *POSIX_Init(
status = pthread_setschedparam( pthread_self(), SCHED_SPORADIC, &schedparam );
fatal_directive_check_status_only( status, EINVAL, "invalid priority" );
/*
* Create a sporadic thread that doesn't need it's priority
* boosted
*/
empty_line();
puts( "Init - pthread_attr_init - SUCCESSFUL" );
status = pthread_attr_init( &attr );
posix_service_failed( status, "pthread_attr_init" );
puts( "Init - pthread_attr_setinheritsched - EXPLICIT - SUCCESSFUL" );
status = pthread_attr_setinheritsched( &attr, PTHREAD_EXPLICIT_SCHED );
assert( !status );
schedparam.ss_replenish_period.tv_sec = 3;
schedparam.ss_replenish_period.tv_nsec = 3;
schedparam.ss_initial_budget.tv_sec = 1;
schedparam.ss_initial_budget.tv_nsec = 1;
schedparam.sched_priority = sched_get_priority_max( SCHED_FIFO );
schedparam.ss_low_priority = sched_get_priority_max( SCHED_FIFO ) - 6;
puts( "Init - pthread_attr_setschedpolicy - SUCCESSFUL" );
status = pthread_attr_setschedpolicy( &attr, SCHED_SPORADIC );
posix_service_failed( status, "pthread_attr_setschedparam");
puts( "Init - pthread_attr_setschedparam - SUCCESSFUL" );
status = pthread_attr_setschedparam( &attr, &schedparam );
posix_service_failed( status, "pthread_attr_setschedparam");
status = pthread_create( &Task2_id, &attr, Task_2, NULL );
assert( !status );
status = pthread_join( Task2_id, NULL );
posix_service_failed( status, " pthread_join");
puts( "*** END OF POSIX TEST 7 ***" );
rtems_test_exit( 0 );

View File

@@ -9,9 +9,18 @@ Init - pthread_create - EINVAL (attr not initialized)
Init - pthread_create - EINVAL (stacksize too small)
Init - pthread_create - EAGAIN (stacksize too large)
Init - pthread_create - EINVAL (invalid inherit scheduler)
Init - pthread_attr_settime - EINVAL ( null attribute )
Init - pthread_attr_gettime - EINVAL ( null attribute )
Init - pthread_attr_settime - EINVAL ( is initialized )
Init - pthread_attr_gettime - EINVAL ( is initialized )
Init - pthread_attr_settime - EINVAL ( invalid clock allowed )
Init - pthread_attr_gettime - EINVAL ( NULL clock allowed )
Init - validate pthread_attr_setcputime - CLOCK_DISABLED
Init - validate pthread_attr_setcputime - CLOCK_ENABLED
Init - pthread_create - ENOTSUP (unsupported system contention scope)
Init - pthread_create - SUCCESSFUL (inherit scheduler)
Task_1 - exitting
Init - pthread_attr_setscope - EINVAL (NULL attr)
Init - pthread_attr_setscope - ENOTSUP
Init - pthread_attr_setscope - EINVAL (not initialized attr)
@@ -22,6 +31,7 @@ Init - pthread_attr_getscope - EINVAL (NULL scope)
Init - pthread_attr_getscope - EINVAL (not initialized attr)
Init - pthread_attr_getscope - SUCCESSFUL
Init - current scope attribute = 0
Init - pthread_attr_setinheritsched - EINVAL (NULL attr)
Init - pthread_attr_setinheritsched - EINVAL (not initialized attr)
Init - pthread_attr_setinheritsched - ENOTSUP (invalid inheritsched)
@@ -31,6 +41,7 @@ Init - pthread_attr_getinheritsched - EINVAL (NULL inheritsched)
Init - pthread_attr_getinheritsched - EINVAL (not initialized attr)
Init - pthread_attr_getinheritsched - SUCCESSFUL
Init - current inherit scheduler attribute = 1
Init - pthread_attr_setschedpolicy - EINVAL (NULL attr)
Init - pthread_attr_setschedpolicy - EINVAL (not initialized attr)
Init - pthread_attr_setschedpolicy - ENOTSUP (invalid schedpolicy)
@@ -40,6 +51,7 @@ Init - pthread_attr_getschedpolicy - EINVAL (NULL schedpolicy)
Init - pthread_attr_getschedpolicy - EINVAL (not initialized attr)
Init - pthread_attr_getschedpolicy - SUCCESSFUL
Init - current scheduler policy attribute = 2
Init - pthread_attr_setstacksize - EINVAL (NULL attr)
Init - pthread_attr_setstacksize - EINVAL (not initialized attr)
Init - pthread_attr_setstacksize - SUCCESSFUL (low stacksize)
@@ -49,6 +61,7 @@ Init - pthread_attr_getstacksize - EINVAL (NULL stacksize)
Init - pthread_attr_getstacksize - EINVAL (not initialized attr)
Init - pthread_attr_getstacksize - SUCCESSFUL
Init - current stack size attribute is OK
Init - pthread_attr_setstackaddr - EINVAL (NULL attr)
Init - pthread_attr_setstackaddr - EINVAL (not initialized attr)
Init - pthread_attr_setstackaddr - SUCCESSFUL
@@ -57,6 +70,7 @@ Init - pthread_attr_getstackaddr - EINVAL (NULL stackaddr)
Init - pthread_attr_getstackaddr - EINVAL (not initialized attr)
Init - pthread_attr_getstackaddr - SUCCESSFUL
Init - current stack address attribute = 0x0
Init - pthread_attr_setdetachstate - EINVAL (NULL attr)
Init - pthread_attr_setdetachstate - EINVAL (not initialized attr)
Init - pthread_attr_setdetachstate - EINVAL (invalid detachstate)
@@ -66,6 +80,7 @@ Init - pthread_attr_getdetachstate - EINVAL (NULL detatchstate)
Init - pthread_attr_getdetachstate - EINVAL (not initialized attr)
Init - pthread_attr_getdetachstate - SUCCESSFUL
Init - current detach state attribute = 1
Init - pthread_attr_getschedparam - SUCCESSFUL
Init - sched priority = 2
Init - ss_low_priority = 0
@@ -78,6 +93,7 @@ Init - pthread_attr_setschedparam - SUCCESSFUL
Init - pthread_attr_getschedparam - EINVAL (NULL attr)
Init - pthread_attr_getschedparam - EINVAL (not initialized attr)
Init - pthread_attr_getschedparam - EINVAL (NULL schedparam)
Init - pthread_getschedparam - EINVAL (NULL policy)
Init - pthread_getschedparam - EINVAL (NULL schedparam)
Init - pthread_getschedparam - ESRCH (bad thread)
@@ -87,6 +103,7 @@ Init - sched priority = 2
Init - ss_low_priority = 0
Init - ss_replenish_period = (0, 0)
Init - ss_initial_budget = (0, 0)
Init - pthread_setschedparam - EINVAL (NULL schedparam)
Init - pthread_setschedparam - EINVAL (invalid priority)
Init - pthread_setschedparam - EINVAL (invalid policy)
@@ -95,4 +112,21 @@ Init - pthread_setschedparam - EINVAL (replenish == 0)
Init - pthread_setschedparam - EINVAL (budget == 0)
Init - pthread_setschedparam - EINVAL (replenish < budget)
Init - pthread_setschedparam - EINVAL (invalid priority)
Init - pthread_attr_init - SUCCESSFUL
Init - pthread_attr_setinheritsched - EXPLICIT - SUCCESSFUL
Init - pthread_attr_setschedpolicy - SUCCESSFUL
Init - pthread_attr_setschedparam - SUCCESSFUL
Time elapsed Task_2: 0 (seconds)
Time elapsed Task_2: 1 (seconds)
Time elapsed Task_2: 2 (seconds)
Time elapsed Task_2: 3 (seconds)
Time elapsed Task_2: 4 (seconds)
Time elapsed Task_2: 5 (seconds)
Time elapsed Task_2: 6 (seconds)
Time elapsed Task_2: 7 (seconds)
Time elapsed Task_2: 8 (seconds)
Time elapsed Task_2: 9 (seconds)
Time elapsed Task_2: 10 (seconds)
Task_2 - exitting
*** END OF POSIX TEST 7 ***

View File

@@ -25,6 +25,11 @@ void *Task_1(
void *argument
);
void *Task_2(
void *argument
);
/* configuration information */
#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
@@ -45,7 +50,7 @@ void *Task_1(
#endif
TEST_EXTERN pthread_t Init_id;
TEST_EXTERN pthread_t Task_id;
TEST_EXTERN pthread_t Task_id, Task2_id;
#undef TEST_EXTERN

View File

@@ -31,3 +31,36 @@ void *Task_1(
return NULL; /* just so the compiler thinks we returned something */
}
void *Task_2(
void *argument
)
{
int i = 0;
time_t now, start;
/*
* Change our priority so we are running at a logically higher
* priority than our "ss_high_priority". This should result in
* our replenishment period not touching our priority.
*/
/*
* Consume time so the cpu budget callout will run.
*
* DO NOT BLOCK!!!
*/
start = time(&start);
while( i <= 10 ) {
do {
now = time(&now);
} while (start == now);
start = time(&start);
printf( "Time elapsed Task_2: %2d (seconds)\n", i++ );
}
puts( "Task_2 - exitting" );
pthread_exit( NULL );
return NULL;
}