Changeset 7fb19bb in rtems
- Timestamp:
- 08/15/96 19:27:08 (27 years ago)
- Branches:
- 4.10, 4.11, 4.8, 4.9, 5, master
- Children:
- 9ac3e76
- Parents:
- 851b18d
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
c/src/tests/psxtests/psx04/init.c
r851b18d r7fb19bb 14 14 #include "system.h" 15 15 #include <signal.h> 16 #include <errno.h> 16 17 17 18 volatile int Signal_occurred; … … 60 61 sigset_t pending_set; 61 62 sigset_t oset; 63 struct timespec timeout; 64 siginfo_t info; 62 65 63 66 puts( "\n\n*** POSIX TEST 4 ***" ); … … 114 117 Signal_occurred = 0; 115 118 116 p rintf( "Init: send SIGUSR1 to process\n" );119 puts( "Init: send SIGUSR1 to process" ); 117 120 status = kill( getpid(), SIGUSR1 ); 118 121 assert( !status ); … … 132 135 assert( !status ); 133 136 134 p rintf( "Init: Block SIGUSR1\n" );137 puts( "Init: Block SIGUSR1" ); 135 138 act.sa_handler = Signal_handler; 136 139 act.sa_flags = 0; … … 143 146 Signal_occurred = 0; 144 147 145 p rintf( "Init: send SIGUSR1 to process\n" );148 puts( "Init: send SIGUSR1 to process" ); 146 149 status = kill( getpid(), SIGUSR1 ); 147 150 assert( !status ); … … 159 162 assert( !status ); 160 163 161 p rintf( "Init: Block SIGUSR1\n" );164 puts( "Init: Block SIGUSR1" ); 162 165 status = sigprocmask( SIG_BLOCK, &mask, NULL ); 163 166 assert( !status ); … … 167 170 printf( "Init: Signals pending 0x%08x\n", pending_set ); 168 171 169 p rintf( "Init: send SIGUSR1 to process\n" );172 puts( "Init: send SIGUSR1 to process" ); 170 173 status = kill( getpid(), SIGUSR1 ); 171 174 assert( !status ); … … 175 178 printf( "Init: Signals pending 0x%08x\n", pending_set ); 176 179 177 p rintf( "Init: Unblock SIGUSR1\n" );180 puts( "Init: Unblock SIGUSR1" ); 178 181 status = sigprocmask( SIG_UNBLOCK, &mask, NULL ); 179 182 assert( !status ); … … 183 186 empty_line(); 184 187 185 p rintf( "Init: create a thread interested in SIGUSR1\n" );188 puts( "Init: create a thread interested in SIGUSR1" ); 186 189 status = pthread_create( &Task1_id, NULL, Task_1, NULL ); 187 190 assert( !status ); 188 191 189 p rintf( "Init: Block SIGUSR1\n" );192 puts( "Init: Block SIGUSR1" ); 190 193 status = sigprocmask( SIG_BLOCK, &mask, NULL ); 191 194 assert( !status ); … … 195 198 printf( "Init: Signals pending 0x%08x\n", pending_set ); 196 199 197 p rintf( "Init: sleep so the other task can block\n" );200 puts( "Init: sleep so the other task can block" ); 198 201 status = sleep( 1 ); 199 202 assert( !status ); … … 201 204 /* switch to task 1 */ 202 205 203 p rintf( "Init: send SIGUSR1 to process\n" );206 puts( "Init: send SIGUSR1 to process" ); 204 207 status = kill( getpid(), SIGUSR1 ); 205 208 assert( !status ); … … 209 212 printf( "Init: Signals pending 0x%08x\n", pending_set ); 210 213 211 p rintf( "Init: sleep so the other task can catch signal\n" );214 puts( "Init: sleep so the other task can catch signal" ); 212 215 status = sleep( 1 ); 213 216 assert( !status ); … … 235 238 assert( !status ); 236 239 237 p rintf( "Init: Unblock SIGALRM\n" );240 puts( "Init: Unblock SIGALRM" ); 238 241 status = sigprocmask( SIG_UNBLOCK, &mask, NULL ); 239 242 assert( !status ); … … 241 244 /* schedule the alarm */ 242 245 243 p rintf( "Init: Firing alarm in 5 seconds\n" );246 puts( "Init: Firing alarm in 5 seconds" ); 244 247 status = alarm( 5 ); 245 248 printf( "Init: %d seconds left on previous alarm\n", status ); 246 249 assert( !status ); 247 250 248 p rintf( "Init: Firing alarm in 2 seconds\n" );251 puts( "Init: Firing alarm in 2 seconds" ); 249 252 status = alarm( 2 ); 250 253 printf( "Init: %d seconds left on previous alarm\n", status ); 251 254 assert( status ); 252 255 253 p rintf( "Init: Wait 4 seconds for alarm\n" );256 puts( "Init: Wait 4 seconds for alarm" ); 254 257 status = sleep( 4 ); 255 258 printf( "Init: %d seconds left in sleep\n", status ); … … 269 272 assert( !status ); 270 273 271 p rintf( "Init: Block SIGUSR1 and SIGUSR2 only\n" );274 puts( "Init: Block SIGUSR1 and SIGUSR2 only" ); 272 275 status = pthread_sigmask( SIG_SETMASK, &mask, &oset ); 273 276 printf( "Init: Previous blocked set was 0x%08x\n", oset ); … … 276 279 /* test inquiry about current blocked set with pthread_sigmask */ 277 280 278 status = pthread_sigmask( NULL, NULL, &oset );281 status = pthread_sigmask( 0, NULL, &oset ); 279 282 printf( "Init: Current blocked set is 0x%08x\n", oset ); 280 283 assert( !status ); … … 285 288 assert( !status ); 286 289 287 p rintf( "Init: Unblock all signals\n" );290 puts( "Init: Unblock all signals" ); 288 291 status = pthread_sigmask( SIG_SETMASK, &mask, &oset ); 289 292 printf( "Init: Previous blocked set was 0x%08x\n", oset ); … … 294 297 empty_line(); 295 298 296 p rintf( "Init: create a thread to send Init SIGUSR1\n" );299 puts( "Init: create a thread to send Init SIGUSR1" ); 297 300 status = pthread_create( &Task2_id, NULL, Task_2, NULL ); 298 301 assert( !status ); … … 301 304 assert( !status ); 302 305 303 p rintf( "Init: sigsuspend for any signal\n" );306 puts( "Init: sigsuspend for any signal" ); 304 307 status = sigsuspend( &mask ); 305 308 assert( status ); … … 310 313 empty_line(); 311 314 312 p rintf( "Init: create a thread to sent Process SIGUSR1 with SA_SIGINFO\n" );315 puts( "Init: create a thread to sent Process SIGUSR1 with SA_SIGINFO" ); 313 316 status = pthread_create( &Task3_id, NULL, Task_3, NULL ); 314 317 assert( !status ); … … 321 324 sigaction( SIGUSR1, &act, NULL ); 322 325 323 p rintf( "Init: sleep so the Task_3 can sigqueue SIGUSR1\n" );326 puts( "Init: sleep so the Task_3 can sigqueue SIGUSR1" ); 324 327 status = sleep( 1 ); 325 328 assert( !status ); … … 337 340 assert( !status ); 338 341 339 p rintf( "Init: Block SIGUSR1\n" );342 puts( "Init: Block SIGUSR1" ); 340 343 status = sigprocmask( SIG_BLOCK, &mask, NULL ); 341 344 assert( !status ); 342 345 343 p rintf( "Init: send SIGUSR1 to process\n" );346 puts( "Init: send SIGUSR1 to process" ); 344 347 status = kill( getpid(), SIGUSR1 ); 345 348 assert( !status ); 346 349 347 p rintf( "Init: sleep so the Task_3 can receive SIGUSR1\n" );350 puts( "Init: sleep so the Task_3 can receive SIGUSR1" ); 348 351 status = sleep( 1 ); 349 352 assert( !status ); … … 357 360 assert( !status ); 358 361 359 p rintf( "Init: Block SIGUSR1\n" );362 puts( "Init: Block SIGUSR1" ); 360 363 status = sigprocmask( SIG_BLOCK, &mask, NULL ); 361 364 assert( !status ); 362 365 363 p rintf( "Init: send SIGUSR1 to process\n" );366 puts( "Init: send SIGUSR1 to process" ); 364 367 status = kill( getpid(), SIGUSR1 ); 365 368 assert( !status ); 366 369 367 p rintf( "Init: sleep so the Task_3 can receive SIGUSR1\n" );370 puts( "Init: sleep so the Task_3 can receive SIGUSR1" ); 368 371 status = sleep( 1 ); 369 372 assert( !status ); … … 377 380 assert( !status ); 378 381 379 p rintf( "Init: Block SIGUSR2\n" );382 puts( "Init: Block SIGUSR2" ); 380 383 status = sigprocmask( SIG_BLOCK, &mask, NULL ); 381 384 assert( !status ); 382 385 383 p rintf( "Init: send SIGUSR2 to process\n" );386 puts( "Init: send SIGUSR2 to process" ); 384 387 status = kill( getpid(), SIGUSR2 ); 385 388 assert( !status ); 386 389 387 p rintf( "Init: sleep so the Task_3 can receive SIGUSR2\n" );390 puts( "Init: sleep so the Task_3 can receive SIGUSR2" ); 388 391 status = sleep( 1 ); 389 392 assert( !status ); … … 391 394 /* Suspend for signal that has already be sent */ 392 395 393 p rintf( "Init: sigsuspend for any signal\n" );396 puts( "Init: sigsuspend for any signal" ); 394 397 status = sigsuspend( &mask ); 395 398 assert( status ); 396 399 printf( "Init: awakended from sigsuspend status=%d \n", status ); 397 400 401 /* generate error cases for psignal */ 402 403 empty_line(); 404 405 status = sigemptyset( NULL ); 406 if ( status != -1 ) 407 printf( "status = %d\n", status ); 408 assert( errno == EFAULT ); 409 puts( "Init: sigemptyset - EFAULT (set invalid)" ); 410 411 status = sigfillset( NULL ); 412 if ( status != -1 ) 413 printf( "status = %d\n", status ); 414 assert( errno == EFAULT ); 415 puts( "Init: sigfillset - EFAULT (set invalid)" ); 416 417 status = sigaddset( NULL, SIGUSR1 ); 418 if ( status != -1 ) 419 printf( "status = %d\n", status ); 420 assert( errno == EFAULT ); 421 puts( "Init: sigaddset - EFAULT (set invalid)" ); 422 423 status = sigaddset( &mask, 0 ); 424 assert( !status ); 425 puts( "Init: sigaddset - SUCCESSFUL (signal = 0)" ); 426 427 status = sigaddset( &mask, 999 ); 428 if ( status != -1 ) 429 printf( "status = %d\n", status ); 430 assert( errno == EINVAL ); 431 puts( "Init: sigaddset - EINVAL (set invalid)" ); 432 433 status = sigdelset( NULL, SIGUSR1 ); 434 if ( status != -1 ) 435 printf( "status = %d\n", status ); 436 assert( errno == EFAULT ); 437 puts( "Init: sigdelset - EFAULT (set invalid)" ); 438 439 status = sigdelset( &mask, 0 ); 440 assert( !status ); 441 puts( "Init: sigdelset - SUCCESSFUL (signal = 0)" ); 442 443 status = sigdelset( &mask, 999 ); 444 if ( status != -1 ) 445 printf( "status = %d\n", status ); 446 assert( errno == EINVAL ); 447 puts( "Init: sigdelset - EINVAL (set invalid)" ); 448 449 status = sigismember( NULL, SIGUSR1 ); 450 if ( status != -1 ) 451 printf( "status = %d\n", status ); 452 assert( errno == EFAULT ); 453 puts( "Init: sigismember - EFAULT (set invalid)" ); 454 455 status = sigismember( &mask, 0 ); 456 assert( !status ); 457 puts( "Init: sigismember - SUCCESSFUL (signal = 0)" ); 458 459 status = sigismember( &mask, 999 ); 460 if ( status != -1 ) 461 printf( "status = %d\n", status ); 462 assert( errno == EINVAL ); 463 puts( "Init: sigismember - EINVAL (signal invalid)" ); 464 465 status = sigaction( 0, &act, 0 ); 466 assert( !status ); 467 puts( "Init: sigaction - SUCCESSFUL (signal = 0)" ); 468 469 status = sigaction( 999, &act, NULL ); 470 if ( status != -1 ) 471 printf( "status = %d\n", status ); 472 assert( errno == EINVAL ); 473 puts( "Init: sigaction - EINVAL (signal invalid)" ); 474 475 status = sigaction( SIGKILL, &act, NULL ); 476 if ( status != -1 ) 477 printf( "status = %d\n", status ); 478 assert( errno == EINVAL ); 479 puts( "Init: sigaction - EINVAL (SIGKILL)" ); 480 481 status = pthread_sigmask( SIG_BLOCK, NULL, NULL ); 482 if ( status != -1 ) 483 printf( "status = %d\n", status ); 484 assert( errno == EFAULT ); 485 puts( "Init: pthread_sigmask - EFAULT (set and oset invalid)" ); 486 487 status = pthread_sigmask( 999, &pending_set, NULL ); 488 if ( status != -1 ) 489 printf( "status = %d\n", status ); 490 assert( errno == EINVAL ); 491 puts( "Init: pthread_sigmask - EINVAL (how invalid)" ); 492 493 status = sigpending( NULL ); 494 if ( status != -1 ) 495 printf( "status = %d\n", status ); 496 assert( errno == EFAULT ); 497 puts( "Init: sigpending - EFAULT (set invalid)" ); 498 499 timeout.tv_nsec = -1; 500 status = sigtimedwait( &mask, &info, &timeout ); 501 if ( status != -1 ) 502 printf( "status = %d\n", status ); 503 assert( errno == EINVAL ); 504 puts( "Init: pthread_sigmask - EINVAL (timout->nsec invalid < 0)" ); 505 506 timeout.tv_nsec = 0x7fffffff; 507 status = sigtimedwait( &mask, &info, &timeout ); 508 if ( status != -1 ) 509 printf( "status = %d\n", status ); 510 assert( errno == EINVAL ); 511 puts( "Init: pthread_sigmask - EINVAL (timout->nsec invalid to large)" ); 512 513 status = pthread_kill( Init_id, 999 ); 514 if ( status != -1 ) 515 printf( "status = %d\n", status ); 516 assert( errno == EINVAL ); 517 puts( "Init: pthread_kill - EINVAL (sig invalid)" ); 518 519 status = pthread_kill( 0, SIGUSR1 ); 520 if ( status != -1 ) 521 printf( "status = %d\n", status ); 522 assert( errno == ENOSYS ); 523 puts( "Init: pthread_kill - ENOSYS (signal SA_SIGINFO)" ); 524 525 status = pthread_kill( 0, SIGUSR2 ); 526 if ( status != -1 ) 527 printf( "status = %d\n", status ); 528 assert( errno == ESRCH ); 529 puts( "Init: pthread_kill - ESRCH (signal SA_SIGINFO)" ); 530 531 status = pthread_kill( Init_id, 0 ); 532 assert( !status ); 533 puts( "Init: pthread_kill - SUCCESSFUL (signal = 0)" ); 534 535 act.sa_handler = SIG_IGN; 536 act.sa_flags = 0; 537 sigaction( SIGUSR2, &act, NULL ); 538 status = pthread_kill( Init_id, SIGUSR2 ); 539 assert( !status ); 540 puts( "Init: pthread_kill - SUCCESSFUL (signal = SIG_IGN)" ); 541 542 status = kill( 0x7fffffff, SIGUSR1 ); 543 if ( status != -1 ) 544 printf( "status = %d\n", status ); 545 assert( errno == ESRCH ); 546 puts( "Init: kill - ESRCH (pid invalid)" ); 547 548 status = kill( getpid(), 0 ); 549 assert( !status ); 550 puts( "Init: kill - SUCCESSFUL (signal = 0)" ); 551 398 552 /* exit this thread */ 399 553 -
testsuites/psxtests/psx04/init.c
r851b18d r7fb19bb 14 14 #include "system.h" 15 15 #include <signal.h> 16 #include <errno.h> 16 17 17 18 volatile int Signal_occurred; … … 60 61 sigset_t pending_set; 61 62 sigset_t oset; 63 struct timespec timeout; 64 siginfo_t info; 62 65 63 66 puts( "\n\n*** POSIX TEST 4 ***" ); … … 114 117 Signal_occurred = 0; 115 118 116 p rintf( "Init: send SIGUSR1 to process\n" );119 puts( "Init: send SIGUSR1 to process" ); 117 120 status = kill( getpid(), SIGUSR1 ); 118 121 assert( !status ); … … 132 135 assert( !status ); 133 136 134 p rintf( "Init: Block SIGUSR1\n" );137 puts( "Init: Block SIGUSR1" ); 135 138 act.sa_handler = Signal_handler; 136 139 act.sa_flags = 0; … … 143 146 Signal_occurred = 0; 144 147 145 p rintf( "Init: send SIGUSR1 to process\n" );148 puts( "Init: send SIGUSR1 to process" ); 146 149 status = kill( getpid(), SIGUSR1 ); 147 150 assert( !status ); … … 159 162 assert( !status ); 160 163 161 p rintf( "Init: Block SIGUSR1\n" );164 puts( "Init: Block SIGUSR1" ); 162 165 status = sigprocmask( SIG_BLOCK, &mask, NULL ); 163 166 assert( !status ); … … 167 170 printf( "Init: Signals pending 0x%08x\n", pending_set ); 168 171 169 p rintf( "Init: send SIGUSR1 to process\n" );172 puts( "Init: send SIGUSR1 to process" ); 170 173 status = kill( getpid(), SIGUSR1 ); 171 174 assert( !status ); … … 175 178 printf( "Init: Signals pending 0x%08x\n", pending_set ); 176 179 177 p rintf( "Init: Unblock SIGUSR1\n" );180 puts( "Init: Unblock SIGUSR1" ); 178 181 status = sigprocmask( SIG_UNBLOCK, &mask, NULL ); 179 182 assert( !status ); … … 183 186 empty_line(); 184 187 185 p rintf( "Init: create a thread interested in SIGUSR1\n" );188 puts( "Init: create a thread interested in SIGUSR1" ); 186 189 status = pthread_create( &Task1_id, NULL, Task_1, NULL ); 187 190 assert( !status ); 188 191 189 p rintf( "Init: Block SIGUSR1\n" );192 puts( "Init: Block SIGUSR1" ); 190 193 status = sigprocmask( SIG_BLOCK, &mask, NULL ); 191 194 assert( !status ); … … 195 198 printf( "Init: Signals pending 0x%08x\n", pending_set ); 196 199 197 p rintf( "Init: sleep so the other task can block\n" );200 puts( "Init: sleep so the other task can block" ); 198 201 status = sleep( 1 ); 199 202 assert( !status ); … … 201 204 /* switch to task 1 */ 202 205 203 p rintf( "Init: send SIGUSR1 to process\n" );206 puts( "Init: send SIGUSR1 to process" ); 204 207 status = kill( getpid(), SIGUSR1 ); 205 208 assert( !status ); … … 209 212 printf( "Init: Signals pending 0x%08x\n", pending_set ); 210 213 211 p rintf( "Init: sleep so the other task can catch signal\n" );214 puts( "Init: sleep so the other task can catch signal" ); 212 215 status = sleep( 1 ); 213 216 assert( !status ); … … 235 238 assert( !status ); 236 239 237 p rintf( "Init: Unblock SIGALRM\n" );240 puts( "Init: Unblock SIGALRM" ); 238 241 status = sigprocmask( SIG_UNBLOCK, &mask, NULL ); 239 242 assert( !status ); … … 241 244 /* schedule the alarm */ 242 245 243 p rintf( "Init: Firing alarm in 5 seconds\n" );246 puts( "Init: Firing alarm in 5 seconds" ); 244 247 status = alarm( 5 ); 245 248 printf( "Init: %d seconds left on previous alarm\n", status ); 246 249 assert( !status ); 247 250 248 p rintf( "Init: Firing alarm in 2 seconds\n" );251 puts( "Init: Firing alarm in 2 seconds" ); 249 252 status = alarm( 2 ); 250 253 printf( "Init: %d seconds left on previous alarm\n", status ); 251 254 assert( status ); 252 255 253 p rintf( "Init: Wait 4 seconds for alarm\n" );256 puts( "Init: Wait 4 seconds for alarm" ); 254 257 status = sleep( 4 ); 255 258 printf( "Init: %d seconds left in sleep\n", status ); … … 269 272 assert( !status ); 270 273 271 p rintf( "Init: Block SIGUSR1 and SIGUSR2 only\n" );274 puts( "Init: Block SIGUSR1 and SIGUSR2 only" ); 272 275 status = pthread_sigmask( SIG_SETMASK, &mask, &oset ); 273 276 printf( "Init: Previous blocked set was 0x%08x\n", oset ); … … 276 279 /* test inquiry about current blocked set with pthread_sigmask */ 277 280 278 status = pthread_sigmask( NULL, NULL, &oset );281 status = pthread_sigmask( 0, NULL, &oset ); 279 282 printf( "Init: Current blocked set is 0x%08x\n", oset ); 280 283 assert( !status ); … … 285 288 assert( !status ); 286 289 287 p rintf( "Init: Unblock all signals\n" );290 puts( "Init: Unblock all signals" ); 288 291 status = pthread_sigmask( SIG_SETMASK, &mask, &oset ); 289 292 printf( "Init: Previous blocked set was 0x%08x\n", oset ); … … 294 297 empty_line(); 295 298 296 p rintf( "Init: create a thread to send Init SIGUSR1\n" );299 puts( "Init: create a thread to send Init SIGUSR1" ); 297 300 status = pthread_create( &Task2_id, NULL, Task_2, NULL ); 298 301 assert( !status ); … … 301 304 assert( !status ); 302 305 303 p rintf( "Init: sigsuspend for any signal\n" );306 puts( "Init: sigsuspend for any signal" ); 304 307 status = sigsuspend( &mask ); 305 308 assert( status ); … … 310 313 empty_line(); 311 314 312 p rintf( "Init: create a thread to sent Process SIGUSR1 with SA_SIGINFO\n" );315 puts( "Init: create a thread to sent Process SIGUSR1 with SA_SIGINFO" ); 313 316 status = pthread_create( &Task3_id, NULL, Task_3, NULL ); 314 317 assert( !status ); … … 321 324 sigaction( SIGUSR1, &act, NULL ); 322 325 323 p rintf( "Init: sleep so the Task_3 can sigqueue SIGUSR1\n" );326 puts( "Init: sleep so the Task_3 can sigqueue SIGUSR1" ); 324 327 status = sleep( 1 ); 325 328 assert( !status ); … … 337 340 assert( !status ); 338 341 339 p rintf( "Init: Block SIGUSR1\n" );342 puts( "Init: Block SIGUSR1" ); 340 343 status = sigprocmask( SIG_BLOCK, &mask, NULL ); 341 344 assert( !status ); 342 345 343 p rintf( "Init: send SIGUSR1 to process\n" );346 puts( "Init: send SIGUSR1 to process" ); 344 347 status = kill( getpid(), SIGUSR1 ); 345 348 assert( !status ); 346 349 347 p rintf( "Init: sleep so the Task_3 can receive SIGUSR1\n" );350 puts( "Init: sleep so the Task_3 can receive SIGUSR1" ); 348 351 status = sleep( 1 ); 349 352 assert( !status ); … … 357 360 assert( !status ); 358 361 359 p rintf( "Init: Block SIGUSR1\n" );362 puts( "Init: Block SIGUSR1" ); 360 363 status = sigprocmask( SIG_BLOCK, &mask, NULL ); 361 364 assert( !status ); 362 365 363 p rintf( "Init: send SIGUSR1 to process\n" );366 puts( "Init: send SIGUSR1 to process" ); 364 367 status = kill( getpid(), SIGUSR1 ); 365 368 assert( !status ); 366 369 367 p rintf( "Init: sleep so the Task_3 can receive SIGUSR1\n" );370 puts( "Init: sleep so the Task_3 can receive SIGUSR1" ); 368 371 status = sleep( 1 ); 369 372 assert( !status ); … … 377 380 assert( !status ); 378 381 379 p rintf( "Init: Block SIGUSR2\n" );382 puts( "Init: Block SIGUSR2" ); 380 383 status = sigprocmask( SIG_BLOCK, &mask, NULL ); 381 384 assert( !status ); 382 385 383 p rintf( "Init: send SIGUSR2 to process\n" );386 puts( "Init: send SIGUSR2 to process" ); 384 387 status = kill( getpid(), SIGUSR2 ); 385 388 assert( !status ); 386 389 387 p rintf( "Init: sleep so the Task_3 can receive SIGUSR2\n" );390 puts( "Init: sleep so the Task_3 can receive SIGUSR2" ); 388 391 status = sleep( 1 ); 389 392 assert( !status ); … … 391 394 /* Suspend for signal that has already be sent */ 392 395 393 p rintf( "Init: sigsuspend for any signal\n" );396 puts( "Init: sigsuspend for any signal" ); 394 397 status = sigsuspend( &mask ); 395 398 assert( status ); 396 399 printf( "Init: awakended from sigsuspend status=%d \n", status ); 397 400 401 /* generate error cases for psignal */ 402 403 empty_line(); 404 405 status = sigemptyset( NULL ); 406 if ( status != -1 ) 407 printf( "status = %d\n", status ); 408 assert( errno == EFAULT ); 409 puts( "Init: sigemptyset - EFAULT (set invalid)" ); 410 411 status = sigfillset( NULL ); 412 if ( status != -1 ) 413 printf( "status = %d\n", status ); 414 assert( errno == EFAULT ); 415 puts( "Init: sigfillset - EFAULT (set invalid)" ); 416 417 status = sigaddset( NULL, SIGUSR1 ); 418 if ( status != -1 ) 419 printf( "status = %d\n", status ); 420 assert( errno == EFAULT ); 421 puts( "Init: sigaddset - EFAULT (set invalid)" ); 422 423 status = sigaddset( &mask, 0 ); 424 assert( !status ); 425 puts( "Init: sigaddset - SUCCESSFUL (signal = 0)" ); 426 427 status = sigaddset( &mask, 999 ); 428 if ( status != -1 ) 429 printf( "status = %d\n", status ); 430 assert( errno == EINVAL ); 431 puts( "Init: sigaddset - EINVAL (set invalid)" ); 432 433 status = sigdelset( NULL, SIGUSR1 ); 434 if ( status != -1 ) 435 printf( "status = %d\n", status ); 436 assert( errno == EFAULT ); 437 puts( "Init: sigdelset - EFAULT (set invalid)" ); 438 439 status = sigdelset( &mask, 0 ); 440 assert( !status ); 441 puts( "Init: sigdelset - SUCCESSFUL (signal = 0)" ); 442 443 status = sigdelset( &mask, 999 ); 444 if ( status != -1 ) 445 printf( "status = %d\n", status ); 446 assert( errno == EINVAL ); 447 puts( "Init: sigdelset - EINVAL (set invalid)" ); 448 449 status = sigismember( NULL, SIGUSR1 ); 450 if ( status != -1 ) 451 printf( "status = %d\n", status ); 452 assert( errno == EFAULT ); 453 puts( "Init: sigismember - EFAULT (set invalid)" ); 454 455 status = sigismember( &mask, 0 ); 456 assert( !status ); 457 puts( "Init: sigismember - SUCCESSFUL (signal = 0)" ); 458 459 status = sigismember( &mask, 999 ); 460 if ( status != -1 ) 461 printf( "status = %d\n", status ); 462 assert( errno == EINVAL ); 463 puts( "Init: sigismember - EINVAL (signal invalid)" ); 464 465 status = sigaction( 0, &act, 0 ); 466 assert( !status ); 467 puts( "Init: sigaction - SUCCESSFUL (signal = 0)" ); 468 469 status = sigaction( 999, &act, NULL ); 470 if ( status != -1 ) 471 printf( "status = %d\n", status ); 472 assert( errno == EINVAL ); 473 puts( "Init: sigaction - EINVAL (signal invalid)" ); 474 475 status = sigaction( SIGKILL, &act, NULL ); 476 if ( status != -1 ) 477 printf( "status = %d\n", status ); 478 assert( errno == EINVAL ); 479 puts( "Init: sigaction - EINVAL (SIGKILL)" ); 480 481 status = pthread_sigmask( SIG_BLOCK, NULL, NULL ); 482 if ( status != -1 ) 483 printf( "status = %d\n", status ); 484 assert( errno == EFAULT ); 485 puts( "Init: pthread_sigmask - EFAULT (set and oset invalid)" ); 486 487 status = pthread_sigmask( 999, &pending_set, NULL ); 488 if ( status != -1 ) 489 printf( "status = %d\n", status ); 490 assert( errno == EINVAL ); 491 puts( "Init: pthread_sigmask - EINVAL (how invalid)" ); 492 493 status = sigpending( NULL ); 494 if ( status != -1 ) 495 printf( "status = %d\n", status ); 496 assert( errno == EFAULT ); 497 puts( "Init: sigpending - EFAULT (set invalid)" ); 498 499 timeout.tv_nsec = -1; 500 status = sigtimedwait( &mask, &info, &timeout ); 501 if ( status != -1 ) 502 printf( "status = %d\n", status ); 503 assert( errno == EINVAL ); 504 puts( "Init: pthread_sigmask - EINVAL (timout->nsec invalid < 0)" ); 505 506 timeout.tv_nsec = 0x7fffffff; 507 status = sigtimedwait( &mask, &info, &timeout ); 508 if ( status != -1 ) 509 printf( "status = %d\n", status ); 510 assert( errno == EINVAL ); 511 puts( "Init: pthread_sigmask - EINVAL (timout->nsec invalid to large)" ); 512 513 status = pthread_kill( Init_id, 999 ); 514 if ( status != -1 ) 515 printf( "status = %d\n", status ); 516 assert( errno == EINVAL ); 517 puts( "Init: pthread_kill - EINVAL (sig invalid)" ); 518 519 status = pthread_kill( 0, SIGUSR1 ); 520 if ( status != -1 ) 521 printf( "status = %d\n", status ); 522 assert( errno == ENOSYS ); 523 puts( "Init: pthread_kill - ENOSYS (signal SA_SIGINFO)" ); 524 525 status = pthread_kill( 0, SIGUSR2 ); 526 if ( status != -1 ) 527 printf( "status = %d\n", status ); 528 assert( errno == ESRCH ); 529 puts( "Init: pthread_kill - ESRCH (signal SA_SIGINFO)" ); 530 531 status = pthread_kill( Init_id, 0 ); 532 assert( !status ); 533 puts( "Init: pthread_kill - SUCCESSFUL (signal = 0)" ); 534 535 act.sa_handler = SIG_IGN; 536 act.sa_flags = 0; 537 sigaction( SIGUSR2, &act, NULL ); 538 status = pthread_kill( Init_id, SIGUSR2 ); 539 assert( !status ); 540 puts( "Init: pthread_kill - SUCCESSFUL (signal = SIG_IGN)" ); 541 542 status = kill( 0x7fffffff, SIGUSR1 ); 543 if ( status != -1 ) 544 printf( "status = %d\n", status ); 545 assert( errno == ESRCH ); 546 puts( "Init: kill - ESRCH (pid invalid)" ); 547 548 status = kill( getpid(), 0 ); 549 assert( !status ); 550 puts( "Init: kill - SUCCESSFUL (signal = 0)" ); 551 398 552 /* exit this thread */ 399 553
Note: See TracChangeset
for help on using the changeset viewer.