Changeset c123a084 in rtems
- Timestamp:
- 08/07/96 15:52:30 (27 years ago)
- Branches:
- 4.10, 4.11, 4.8, 4.9, 5, master
- Children:
- cc757fe
- Parents:
- 4bab8e2d
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
c/src/tests/psxtests/psx07/init.c
r4bab8e2d rc123a084 15 15 #include <errno.h> 16 16 17 void print_schedparam( 18 char *prefix, 19 struct sched_param *schedparam 20 ) 21 { 22 printf( "%ssched priority = %d\n", prefix, schedparam->sched_priority ); 23 #if defined(_POSIX_SPORADIC_SERVER) 24 printf( "%sss_low_priority = %d\n", prefix, schedparam->ss_low_priority ); 25 printf( "%sss_replenish_period = (%ld, %ld)\n", prefix, 26 schedparam->ss_replenish_period.tv_sec, 27 schedparam->ss_replenish_period.tv_nsec ); 28 printf( "%sss_initial_budget = (%ld, %ld)\n", prefix, 29 schedparam->ss_initial_budget.tv_sec, 30 schedparam->ss_initial_budget.tv_nsec ); 31 #else 32 printf( "%s_POSIX_SPORADIC_SERVER is not defined\n" ); 33 #endif 34 } 35 17 36 void *POSIX_Init( 18 37 void *argument 19 38 ) 20 39 { 21 int status; 22 int scope; 23 int inheritsched; 24 int schedpolicy; 25 size_t stacksize; 26 void *stackaddr; 27 int detachstate; 28 pthread_attr_t attr; 29 pthread_attr_t destroyed_attr; 40 int status; 41 int scope; 42 int inheritsched; 43 int schedpolicy; 44 size_t stacksize; 45 void *stackaddr; 46 int detachstate; 47 struct sched_param schedparam; 48 pthread_attr_t attr; 49 pthread_attr_t destroyed_attr; 30 50 31 51 puts( "\n\n*** POSIX TEST 7 ***" ); … … 268 288 printf( "Init: current detach state attribute = %d\n", detachstate ); 269 289 290 /* exercise get and set scheduling parameters */ 291 292 empty_line(); 293 294 puts( "Init: pthread_attr_getschedparam - SUCCESSFUL" ); 295 status = pthread_attr_getschedparam( &attr, &schedparam ); 296 assert( !status ); 297 298 print_schedparam( "Init: ", &schedparam ); 299 300 puts( "Init: pthread_attr_setschedparam - EINVAL (NULL attr)" ); 301 status = pthread_attr_setschedparam( NULL, &schedparam ); 302 assert( status == EINVAL ); 303 304 puts( "Init: pthread_attr_setschedparam - EINVAL (not initialized attr)" ); 305 status = pthread_attr_setschedparam( &destroyed_attr, &schedparam ); 306 assert( status == EINVAL ); 307 308 puts( "Init: pthread_attr_setschedparam - EINVAL (NULL schedparam)" ); 309 status = pthread_attr_setschedparam( &attr, NULL ); 310 assert( status == EINVAL ); 311 312 puts( "Init: pthread_attr_setschedparam - SUCCESSFUL" ); 313 status = pthread_attr_setschedparam( &attr, &schedparam ); 314 assert( !status ); 315 316 puts( "Init: pthread_attr_getschedparam - EINVAL (NULL attr)" ); 317 status = pthread_attr_getschedparam( NULL, &schedparam ); 318 assert( status == EINVAL ); 319 320 puts( "Init: pthread_attr_getschedparam - EINVAL (not initialized attr)" ); 321 status = pthread_attr_getschedparam( &destroyed_attr, &schedparam ); 322 assert( status == EINVAL ); 323 324 puts( "Init: pthread_attr_getschedparam - EINVAL (NULL schedparam)" ); 325 status = pthread_attr_getschedparam( &attr, NULL ); 326 assert( status == EINVAL ); 327 328 /* exercise pthread_getschedparam */ 329 330 empty_line(); 331 332 puts( "Init: pthread_getschedparam - EINVAL (NULL policy)" ); 333 status = pthread_getschedparam( pthread_self(), NULL, &schedparam ); 334 assert( status == EINVAL ); 335 336 puts( "Init: pthread_getschedparam - EINVAL (NULL schedparam)" ); 337 status = pthread_getschedparam( pthread_self(), &schedpolicy, NULL ); 338 assert( status == EINVAL ); 339 340 puts( "Init: pthread_getschedparam - ESRCH (bad thread)" ); 341 status = pthread_getschedparam( -1, &schedpolicy, &schedparam ); 342 assert( status == ESRCH ); 343 344 puts( "Init: pthread_getschedparam - SUCCESSFUL" ); 345 status = pthread_getschedparam( pthread_self(), &schedpolicy, &schedparam ); 346 assert( !status ); 347 348 printf( "Init: policy = %d\n", schedpolicy ); 349 350 print_schedparam( "Init: ", &schedparam ); 351 352 /* exercise pthread_setschedparam */ 353 354 empty_line(); 355 356 puts( "Init: pthread_setschedparam - EINVAL (NULL schedparam)" ); 357 status = pthread_setschedparam( pthread_self(), SCHED_OTHER, NULL ); 358 assert( status == EINVAL ); 359 360 schedparam.sched_priority = -1; 361 362 puts( "Init: pthread_setschedparam - EINVAL (invalid priority)" ); 363 status = pthread_setschedparam( pthread_self(), SCHED_OTHER, NULL ); 364 assert( status == EINVAL ); 365 366 schedparam.sched_priority = 128; 367 368 puts( "Init: pthread_setschedparam - EINVAL (invalid policy)" ); 369 status = pthread_setschedparam( pthread_self(), -1, &schedparam ); 370 assert( status == EINVAL ); 371 372 puts( "Init: pthread_setschedparam - ESRCH (invalid thread)" ); 373 status = pthread_setschedparam( -1, SCHED_OTHER, &schedparam ); 374 assert( status == ESRCH ); 375 376 /* now get sporadic server errors */ 377 378 schedparam.ss_replenish_period.tv_sec = 1; 379 schedparam.ss_replenish_period.tv_nsec = 0; 380 schedparam.ss_initial_budget.tv_sec = 1; 381 schedparam.ss_initial_budget.tv_nsec = 1; 382 383 puts( "Init: pthread_setschedparam - EINVAL (replenish < budget)" ); 384 status = pthread_setschedparam( pthread_self(), SCHED_SPORADIC, &schedparam ); 385 assert( status == EINVAL ); 386 387 schedparam.ss_replenish_period.tv_sec = 2; 388 schedparam.ss_replenish_period.tv_nsec = 0; 389 schedparam.ss_initial_budget.tv_sec = 1; 390 schedparam.ss_initial_budget.tv_nsec = 0; 391 schedparam.ss_low_priority = -1; 392 393 puts( "Init: pthread_setschedparam - EINVAL (invalid priority)" ); 394 status = pthread_setschedparam( pthread_self(), SCHED_SPORADIC, &schedparam ); 395 assert( status == EINVAL ); 396 397 270 398 puts( "*** END OF POSIX TEST 7 ***" ); 271 399 exit( 0 ); -
testsuites/psxtests/psx07/init.c
r4bab8e2d rc123a084 15 15 #include <errno.h> 16 16 17 void print_schedparam( 18 char *prefix, 19 struct sched_param *schedparam 20 ) 21 { 22 printf( "%ssched priority = %d\n", prefix, schedparam->sched_priority ); 23 #if defined(_POSIX_SPORADIC_SERVER) 24 printf( "%sss_low_priority = %d\n", prefix, schedparam->ss_low_priority ); 25 printf( "%sss_replenish_period = (%ld, %ld)\n", prefix, 26 schedparam->ss_replenish_period.tv_sec, 27 schedparam->ss_replenish_period.tv_nsec ); 28 printf( "%sss_initial_budget = (%ld, %ld)\n", prefix, 29 schedparam->ss_initial_budget.tv_sec, 30 schedparam->ss_initial_budget.tv_nsec ); 31 #else 32 printf( "%s_POSIX_SPORADIC_SERVER is not defined\n" ); 33 #endif 34 } 35 17 36 void *POSIX_Init( 18 37 void *argument 19 38 ) 20 39 { 21 int status; 22 int scope; 23 int inheritsched; 24 int schedpolicy; 25 size_t stacksize; 26 void *stackaddr; 27 int detachstate; 28 pthread_attr_t attr; 29 pthread_attr_t destroyed_attr; 40 int status; 41 int scope; 42 int inheritsched; 43 int schedpolicy; 44 size_t stacksize; 45 void *stackaddr; 46 int detachstate; 47 struct sched_param schedparam; 48 pthread_attr_t attr; 49 pthread_attr_t destroyed_attr; 30 50 31 51 puts( "\n\n*** POSIX TEST 7 ***" ); … … 268 288 printf( "Init: current detach state attribute = %d\n", detachstate ); 269 289 290 /* exercise get and set scheduling parameters */ 291 292 empty_line(); 293 294 puts( "Init: pthread_attr_getschedparam - SUCCESSFUL" ); 295 status = pthread_attr_getschedparam( &attr, &schedparam ); 296 assert( !status ); 297 298 print_schedparam( "Init: ", &schedparam ); 299 300 puts( "Init: pthread_attr_setschedparam - EINVAL (NULL attr)" ); 301 status = pthread_attr_setschedparam( NULL, &schedparam ); 302 assert( status == EINVAL ); 303 304 puts( "Init: pthread_attr_setschedparam - EINVAL (not initialized attr)" ); 305 status = pthread_attr_setschedparam( &destroyed_attr, &schedparam ); 306 assert( status == EINVAL ); 307 308 puts( "Init: pthread_attr_setschedparam - EINVAL (NULL schedparam)" ); 309 status = pthread_attr_setschedparam( &attr, NULL ); 310 assert( status == EINVAL ); 311 312 puts( "Init: pthread_attr_setschedparam - SUCCESSFUL" ); 313 status = pthread_attr_setschedparam( &attr, &schedparam ); 314 assert( !status ); 315 316 puts( "Init: pthread_attr_getschedparam - EINVAL (NULL attr)" ); 317 status = pthread_attr_getschedparam( NULL, &schedparam ); 318 assert( status == EINVAL ); 319 320 puts( "Init: pthread_attr_getschedparam - EINVAL (not initialized attr)" ); 321 status = pthread_attr_getschedparam( &destroyed_attr, &schedparam ); 322 assert( status == EINVAL ); 323 324 puts( "Init: pthread_attr_getschedparam - EINVAL (NULL schedparam)" ); 325 status = pthread_attr_getschedparam( &attr, NULL ); 326 assert( status == EINVAL ); 327 328 /* exercise pthread_getschedparam */ 329 330 empty_line(); 331 332 puts( "Init: pthread_getschedparam - EINVAL (NULL policy)" ); 333 status = pthread_getschedparam( pthread_self(), NULL, &schedparam ); 334 assert( status == EINVAL ); 335 336 puts( "Init: pthread_getschedparam - EINVAL (NULL schedparam)" ); 337 status = pthread_getschedparam( pthread_self(), &schedpolicy, NULL ); 338 assert( status == EINVAL ); 339 340 puts( "Init: pthread_getschedparam - ESRCH (bad thread)" ); 341 status = pthread_getschedparam( -1, &schedpolicy, &schedparam ); 342 assert( status == ESRCH ); 343 344 puts( "Init: pthread_getschedparam - SUCCESSFUL" ); 345 status = pthread_getschedparam( pthread_self(), &schedpolicy, &schedparam ); 346 assert( !status ); 347 348 printf( "Init: policy = %d\n", schedpolicy ); 349 350 print_schedparam( "Init: ", &schedparam ); 351 352 /* exercise pthread_setschedparam */ 353 354 empty_line(); 355 356 puts( "Init: pthread_setschedparam - EINVAL (NULL schedparam)" ); 357 status = pthread_setschedparam( pthread_self(), SCHED_OTHER, NULL ); 358 assert( status == EINVAL ); 359 360 schedparam.sched_priority = -1; 361 362 puts( "Init: pthread_setschedparam - EINVAL (invalid priority)" ); 363 status = pthread_setschedparam( pthread_self(), SCHED_OTHER, NULL ); 364 assert( status == EINVAL ); 365 366 schedparam.sched_priority = 128; 367 368 puts( "Init: pthread_setschedparam - EINVAL (invalid policy)" ); 369 status = pthread_setschedparam( pthread_self(), -1, &schedparam ); 370 assert( status == EINVAL ); 371 372 puts( "Init: pthread_setschedparam - ESRCH (invalid thread)" ); 373 status = pthread_setschedparam( -1, SCHED_OTHER, &schedparam ); 374 assert( status == ESRCH ); 375 376 /* now get sporadic server errors */ 377 378 schedparam.ss_replenish_period.tv_sec = 1; 379 schedparam.ss_replenish_period.tv_nsec = 0; 380 schedparam.ss_initial_budget.tv_sec = 1; 381 schedparam.ss_initial_budget.tv_nsec = 1; 382 383 puts( "Init: pthread_setschedparam - EINVAL (replenish < budget)" ); 384 status = pthread_setschedparam( pthread_self(), SCHED_SPORADIC, &schedparam ); 385 assert( status == EINVAL ); 386 387 schedparam.ss_replenish_period.tv_sec = 2; 388 schedparam.ss_replenish_period.tv_nsec = 0; 389 schedparam.ss_initial_budget.tv_sec = 1; 390 schedparam.ss_initial_budget.tv_nsec = 0; 391 schedparam.ss_low_priority = -1; 392 393 puts( "Init: pthread_setschedparam - EINVAL (invalid priority)" ); 394 status = pthread_setschedparam( pthread_self(), SCHED_SPORADIC, &schedparam ); 395 assert( status == EINVAL ); 396 397 270 398 puts( "*** END OF POSIX TEST 7 ***" ); 271 399 exit( 0 );
Note: See TracChangeset
for help on using the changeset viewer.