Blame src/ctests/fork.c

Packit Service a1973e
/*
Packit Service a1973e
* File:    fork.c
Packit Service a1973e
* Author:  Philip Mucci
Packit Service a1973e
*          mucci@cs.utk.edu
Packit Service a1973e
* Mods:    <your name here>
Packit Service a1973e
*          <your email address>
Packit Service a1973e
*/
Packit Service a1973e
Packit Service a1973e
/* This file performs the following test:
Packit Service a1973e
Packit Service a1973e
   PAPI_library_init()
Packit Service a1973e
         fork();
Packit Service a1973e
         /    \
Packit Service a1973e
     parent   child
Packit Service a1973e
     wait()   PAPI_library_init()
Packit Service a1973e
Packit Service a1973e
 */
Packit Service a1973e
Packit Service a1973e
#include <stdio.h>
Packit Service a1973e
#include <stdlib.h>
Packit Service a1973e
#include <unistd.h>
Packit Service a1973e
#include <sys/wait.h>
Packit Service a1973e
Packit Service a1973e
#include "papi.h"
Packit Service a1973e
#include "papi_test.h"
Packit Service a1973e
Packit Service a1973e
Packit Service a1973e
int
Packit Service a1973e
main( int argc, char **argv )
Packit Service a1973e
{
Packit Service a1973e
	int retval;
Packit Service a1973e
	int status;
Packit Service a1973e
Packit Service a1973e
	tests_quiet( argc, argv );	/* Set TESTS_QUIET variable */
Packit Service a1973e
Packit Service a1973e
	retval = PAPI_library_init( PAPI_VER_CURRENT );
Packit Service a1973e
	if ( retval != PAPI_VER_CURRENT )
Packit Service a1973e
		test_fail( __FILE__, __LINE__, "main PAPI_library_init", retval );
Packit Service a1973e
Packit Service a1973e
	if ( fork(  ) == 0 ) {
Packit Service a1973e
		retval = PAPI_library_init( PAPI_VER_CURRENT );
Packit Service a1973e
		if ( retval != PAPI_VER_CURRENT )
Packit Service a1973e
			test_fail( __FILE__, __LINE__, "forked PAPI_library_init", retval );
Packit Service a1973e
		exit( 0 );
Packit Service a1973e
	} else {
Packit Service a1973e
		wait( &status );
Packit Service a1973e
		if ( WEXITSTATUS( status ) != 0 )
Packit Service a1973e
			test_fail( __FILE__, __LINE__, "fork", WEXITSTATUS( status ) );
Packit Service a1973e
	}
Packit Service a1973e
Packit Service a1973e
	test_pass( __FILE__ );
Packit Service a1973e
Packit Service a1973e
	return 0;
Packit Service a1973e
Packit Service a1973e
}