1 #include "tls_test_frame.h" 2 3 /* Call external program without output redirecting. */ tls_test_wait_external_test_process(TLS_TEST_EXTERNAL_TEST_PROCESS * test_process_ptr,INT * exit_status_ptr)4INT tls_test_wait_external_test_process( TLS_TEST_EXTERNAL_TEST_PROCESS* test_process_ptr, INT* exit_status_ptr) 5 { 6 /* Validate pointers. */ 7 return_value_if_fail( NULL != test_process_ptr, TLS_TEST_INVALID_POINTER); 8 return_value_if_fail( NULL != exit_status_ptr, TLS_TEST_INVALID_POINTER); 9 10 INT process_status = 0, status; 11 status = waitpid( test_process_ptr -> tls_test_external_test_process_id, &process_status, 0); 12 return_value_if_fail( -1 != status, TLS_TEST_SYSTEM_CALL_FAILED); 13 14 *exit_status_ptr = 0; 15 if ( WIFEXITED( process_status)) 16 { 17 *exit_status_ptr = WEXITSTATUS( process_status); 18 } 19 else if ( WIFSIGNALED( process_status)) 20 { 21 *exit_status_ptr = -WTERMSIG( process_status); 22 } 23 return TLS_TEST_SUCCESS; 24 } 25