63 lines
		
	
	
		
			969 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			969 B
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * File: cancel6.c
 | |
|  *
 | |
|  * Test Synopsis: Test if pause is a cancellation point.
 | |
|  *
 | |
|  * Test Method (Validation or Falsification):
 | |
|  * - 
 | |
|  *
 | |
|  * Requirements Tested:
 | |
|  * -
 | |
|  *
 | |
|  * Features Tested:
 | |
|  * - 
 | |
|  *
 | |
|  * Cases Tested:
 | |
|  * - 
 | |
|  *
 | |
|  * Description:
 | |
|  * - 
 | |
|  *
 | |
|  * Environment:
 | |
|  * - 
 | |
|  *
 | |
|  * Input:
 | |
|  * - None.
 | |
|  *
 | |
|  * Output:
 | |
|  * - File name, Line number, and failed expression on failure.
 | |
|  * - No output on success.
 | |
|  *
 | |
|  * Assumptions:
 | |
|  * - have working pthread_create, pthread_cancel, pthread_setcancelstate
 | |
|  *   pthread_join
 | |
|  *
 | |
|  * Pass Criteria:
 | |
|  * - Process returns zero exit status.
 | |
|  *
 | |
|  * Fail Criteria:
 | |
|  * - Process returns non-zero exit status.
 | |
|  */
 | |
| 
 | |
| #include "test.h"
 | |
| 
 | |
| static void *Thread(void *punused)
 | |
| {
 | |
|   pause ();
 | |
| 
 | |
|   return NULL;
 | |
| }
 | |
| 
 | |
| int main (void)
 | |
| {
 | |
|   void * result;
 | |
|   pthread_t t;
 | |
| 
 | |
|   assert (pthread_create (&t, NULL, Thread, NULL) == 0);
 | |
|   assert (pthread_cancel (t) == 0);
 | |
|   assert (pthread_join (t, &result) == 0);
 | |
|   assert (result == PTHREAD_CANCELED);
 | |
| 
 | |
|   return 0;
 | |
| }
 |