|
Packit |
577717 |
/* This file performs the following test: event_code_to_name */
|
|
Packit |
577717 |
|
|
Packit |
577717 |
#include <stdio.h>
|
|
Packit |
577717 |
#include <stdlib.h>
|
|
Packit |
577717 |
|
|
Packit |
577717 |
#include "papi.h"
|
|
Packit |
577717 |
#include "papi_test.h"
|
|
Packit |
577717 |
|
|
Packit |
577717 |
static void
|
|
Packit |
577717 |
test_continue( const char *call, int retval )
|
|
Packit |
577717 |
{
|
|
Packit |
577717 |
if (!TESTS_QUIET) {
|
|
Packit |
577717 |
printf( "Expected error in %s: %s\n", call,
|
|
Packit |
577717 |
PAPI_strerror(retval) );
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
int
|
|
Packit |
577717 |
main( int argc, char **argv )
|
|
Packit |
577717 |
{
|
|
Packit |
577717 |
int retval;
|
|
Packit |
577717 |
int code = PAPI_TOT_CYC, last;
|
|
Packit |
577717 |
char event_name[PAPI_MAX_STR_LEN];
|
|
Packit |
577717 |
const PAPI_component_info_t *cmp_info;
|
|
Packit |
577717 |
int quiet;
|
|
Packit |
577717 |
|
|
Packit |
577717 |
/* Set TESTS_QUIET variable */
|
|
Packit |
577717 |
quiet=tests_quiet( argc, argv );
|
|
Packit |
577717 |
|
|
Packit |
577717 |
|
|
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 |
if (!quiet) {
|
|
Packit |
577717 |
printf( "Test case code2name.c: "
|
|
Packit |
577717 |
"Check limits and indexing of event tables.\n");
|
|
Packit |
577717 |
printf( "Looking for PAPI_TOT_CYC...\n" );
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_event_code_to_name( code, event_name );
|
|
Packit |
577717 |
if ( retval != PAPI_OK ) {
|
|
Packit |
577717 |
test_fail( __FILE__, __LINE__, "PAPI_event_code_to_name", retval );
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
if (!quiet) printf( "Found |%s|\n", event_name );
|
|
Packit |
577717 |
|
|
Packit |
577717 |
code = PAPI_FP_OPS;
|
|
Packit |
577717 |
|
|
Packit |
577717 |
if (!quiet) {
|
|
Packit |
577717 |
printf( "Looking for highest defined preset event "
|
|
Packit |
577717 |
"(PAPI_FP_OPS): %#x...\n",code );
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_event_code_to_name( code, event_name );
|
|
Packit |
577717 |
if ( retval != PAPI_OK )
|
|
Packit |
577717 |
test_fail( __FILE__, __LINE__, "PAPI_event_code_to_name", retval );
|
|
Packit |
577717 |
|
|
Packit |
577717 |
if (!quiet) printf( "Found |%s|\n", event_name );
|
|
Packit |
577717 |
|
|
Packit |
577717 |
code = PAPI_PRESET_MASK | ( PAPI_MAX_PRESET_EVENTS - 1 );
|
|
Packit |
577717 |
|
|
Packit |
577717 |
if (!quiet) {
|
|
Packit |
577717 |
printf( "Looking for highest allocated preset event:"
|
|
Packit |
577717 |
" %#x...\n", code );
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_event_code_to_name( code, event_name );
|
|
Packit |
577717 |
if ( retval != PAPI_OK ) {
|
|
Packit |
577717 |
test_continue( "PAPI_event_code_to_name", retval );
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
else {
|
|
Packit |
577717 |
if (!quiet) printf( "Found |%s|\n", event_name );
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
code = PAPI_PRESET_MASK | ( unsigned int ) PAPI_NATIVE_AND_MASK;
|
|
Packit |
577717 |
|
|
Packit |
577717 |
if (!quiet) {
|
|
Packit |
577717 |
printf( "Looking for highest possible preset event:"
|
|
Packit |
577717 |
" %#x...\n", code );
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_event_code_to_name( code, event_name );
|
|
Packit |
577717 |
|
|
Packit |
577717 |
if ( retval != PAPI_OK ) {
|
|
Packit |
577717 |
test_continue( "PAPI_event_code_to_name", retval );
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
else {
|
|
Packit |
577717 |
if (!quiet) printf( "Found |%s|\n", event_name );
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
/* Find the first defined native event in component 0 */
|
|
Packit |
577717 |
/* For platform independence, always ASK FOR the first event */
|
|
Packit |
577717 |
/* Don't just assume it'll be the first numeric value */
|
|
Packit |
577717 |
code = PAPI_NATIVE_MASK;
|
|
Packit |
577717 |
PAPI_enum_event( &code, PAPI_ENUM_FIRST );
|
|
Packit |
577717 |
|
|
Packit |
577717 |
if (!quiet) {
|
|
Packit |
577717 |
printf( "Looking for first native event: %#x...\n", code );
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_event_code_to_name( code, event_name );
|
|
Packit |
577717 |
if ( retval != PAPI_OK ) {
|
|
Packit |
577717 |
if (!quiet) printf("Could not find first native event\n");
|
|
Packit |
577717 |
test_skip( __FILE__, __LINE__, "PAPI_event_code_to_name", retval );
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
else {
|
|
Packit |
577717 |
if (!quiet) printf( "Found |%s|\n", event_name );
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
/* Find the last defined native event */
|
|
Packit |
577717 |
|
|
Packit |
577717 |
/* FIXME: hardcoded cmp 0 */
|
|
Packit |
577717 |
cmp_info = PAPI_get_component_info( 0 );
|
|
Packit |
577717 |
if ( cmp_info == NULL ) {
|
|
Packit |
577717 |
test_fail( __FILE__, __LINE__,
|
|
Packit |
577717 |
"PAPI_get_component_info", PAPI_ECMP );
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
code = PAPI_NATIVE_MASK;
|
|
Packit |
577717 |
last = code;
|
|
Packit |
577717 |
PAPI_enum_event( &code, PAPI_ENUM_FIRST );
|
|
Packit |
577717 |
|
|
Packit |
577717 |
while ( PAPI_enum_event( &code, PAPI_ENUM_EVENTS ) == PAPI_OK ) {
|
|
Packit |
577717 |
last=code;
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
code = last;
|
|
Packit |
577717 |
if (!quiet) printf( "Looking for last native event: %#x...\n", code );
|
|
Packit |
577717 |
retval = PAPI_event_code_to_name( code, event_name );
|
|
Packit |
577717 |
if ( retval != PAPI_OK ) {
|
|
Packit |
577717 |
test_fail( __FILE__, __LINE__, "PAPI_event_code_to_name", retval );
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
else {
|
|
Packit |
577717 |
if (!quiet) printf( "Found |%s|\n", event_name );
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
/* Highly doubtful we have this many natives */
|
|
Packit |
577717 |
/* Turn on all bits *except* PRESET bit and COMPONENT bits */
|
|
Packit |
577717 |
code = PAPI_PRESET_AND_MASK;
|
|
Packit |
577717 |
if (!quiet) printf( "Looking for highest definable native event: %#x...\n", code );
|
|
Packit |
577717 |
retval = PAPI_event_code_to_name( code, event_name );
|
|
Packit |
577717 |
if ( retval != PAPI_OK ) {
|
|
Packit |
577717 |
test_continue( "PAPI_event_code_to_name", retval );
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
else {
|
|
Packit |
577717 |
if (!quiet) printf( "Found |%s|\n", event_name );
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
if ( ( retval == PAPI_ENOCMP) || ( retval == PAPI_ENOEVNT ) || ( retval == PAPI_OK ) ) {
|
|
Packit |
577717 |
test_pass( __FILE__ );
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
test_fail( __FILE__, __LINE__, "PAPI_event_code_to_name", PAPI_EBUG );
|
|
Packit |
577717 |
|
|
Packit |
577717 |
return 1;
|
|
Packit |
577717 |
}
|