|
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 |
}
|