Blame src/ctests/disable_component.c

Packit 577717
/*
Packit 577717
 * File:    disable_component.c
Packit 577717
 * Author:  Vince Weaver
Packit 577717
 *              vweaver1@eecs.utk.edu
Packit 577717
 */
Packit 577717
Packit 577717
/*
Packit 577717
  This tests the functionality of PAPI_disable_component()
Packit 577717
*/
Packit 577717
Packit 577717
#include <stdio.h>
Packit 577717
Packit 577717
#include "papi.h"
Packit 577717
#include "papi_test.h"
Packit 577717
Packit 577717
Packit 577717
int
Packit 577717
main( int argc, char **argv )
Packit 577717
{
Packit 577717
   int retval;
Packit 577717
   const PAPI_component_info_t* cmpinfo;
Packit 577717
   int numcmp, cid, active_components=0;
Packit 577717
Packit 577717
   /* Set TESTS_QUIET variable */
Packit 577717
   tests_quiet( argc, argv );
Packit 577717
Packit 577717
   /* Disable All Compiled-in Components */
Packit 577717
   numcmp = PAPI_num_components(  );
Packit 577717
Packit 577717
   if (!TESTS_QUIET) printf("Compiled-in components:\n");
Packit 577717
   for( cid = 0; cid < numcmp; cid++ ) {
Packit 577717
      cmpinfo = PAPI_get_component_info( cid );
Packit 577717
Packit 577717
      if (!TESTS_QUIET) {
Packit 577717
         printf( "Name:   %-23s %s\n", cmpinfo->name, cmpinfo->description);
Packit 577717
      }
Packit 577717
Packit 577717
      retval=PAPI_disable_component( cid );
Packit 577717
      if (retval!=PAPI_OK) {
Packit 577717
	 test_fail(__FILE__,__LINE__,"Error disabling component",retval);
Packit 577717
      }
Packit 577717
   }
Packit 577717
Packit 577717
Packit 577717
   /* Initialize the library */
Packit 577717
   retval = PAPI_library_init( PAPI_VER_CURRENT );
Packit 577717
   if ( retval != PAPI_VER_CURRENT ) {
Packit 577717
      test_fail( __FILE__, __LINE__, "PAPI_library_init", retval );
Packit 577717
   }
Packit 577717
Packit 577717
   /* Try to disable after init, should fail */
Packit 577717
   retval=PAPI_disable_component( 0 );
Packit 577717
   if (retval==PAPI_OK) {
Packit 577717
      test_fail( __FILE__, __LINE__, "PAPI_disable_component should fail", 
Packit 577717
		 retval );
Packit 577717
   }
Packit 577717
Packit 577717
   if (!TESTS_QUIET) printf("\nAfter init components:\n");
Packit 577717
   for( cid = 0; cid < numcmp; cid++ ) {
Packit 577717
Packit 577717
      cmpinfo = PAPI_get_component_info( cid );
Packit 577717
Packit 577717
      if (!TESTS_QUIET) {
Packit 577717
	printf( "%d %d Name:   %-23s %s\n",
Packit 577717
		cid,
Packit 577717
		PAPI_get_component_index((char *)cmpinfo->name),
Packit 577717
		cmpinfo->name ,cmpinfo->description);
Packit 577717
Packit 577717
      }
Packit 577717
Packit 577717
      if (cid!=PAPI_get_component_index((char *)cmpinfo->name)) {
Packit 577717
         test_fail( __FILE__, __LINE__, "PAPI_get_component_index mismatch",
Packit 577717
		 2 );
Packit 577717
      }
Packit 577717
Packit 577717
Packit 577717
      if (cmpinfo->disabled) {
Packit 577717
	 if (!TESTS_QUIET) {
Packit 577717
            printf("   \\-> Disabled: %s\n",cmpinfo->disabled_reason);
Packit 577717
	 }
Packit 577717
      } else {
Packit 577717
	 active_components++;
Packit 577717
      }
Packit 577717
   }
Packit 577717
Packit 577717
   if (active_components>0) {
Packit 577717
      test_fail( __FILE__, __LINE__, "too many active components", retval );
Packit 577717
   }
Packit 577717
Packit 577717
	test_pass( __FILE__ );
Packit 577717
Packit 577717
	return PAPI_OK;
Packit 577717
}