|
Packit |
577717 |
/****************************/
|
|
Packit |
577717 |
/* THIS IS OPEN SOURCE CODE */
|
|
Packit |
577717 |
/****************************/
|
|
Packit |
577717 |
|
|
Packit |
577717 |
/**
|
|
Packit |
577717 |
* @author Jose Pedro Oliveira
|
|
Packit |
577717 |
*
|
|
Packit |
577717 |
* test case for the linux-net component
|
|
Packit |
577717 |
*
|
|
Packit |
577717 |
* @brief
|
|
Packit |
577717 |
* Prints the values of several net events specified by names
|
|
Packit |
577717 |
*/
|
|
Packit |
577717 |
|
|
Packit |
577717 |
#include <stdio.h>
|
|
Packit |
577717 |
#include <stdlib.h>
|
|
Packit |
577717 |
#include <string.h>
|
|
Packit |
577717 |
|
|
Packit |
577717 |
#include "papi.h"
|
|
Packit |
577717 |
#include "papi_test.h"
|
|
Packit |
577717 |
|
|
Packit |
577717 |
/*
|
|
Packit |
577717 |
#define IFNAME "eth0"
|
|
Packit |
577717 |
*/
|
|
Packit |
577717 |
#define IFNAME "lo"
|
|
Packit |
577717 |
#define PINGADDR "127.0.0.1"
|
|
Packit |
577717 |
|
|
Packit |
577717 |
#define NUM_EVENTS 4
|
|
Packit |
577717 |
|
|
Packit |
577717 |
int main (int argc, char **argv)
|
|
Packit |
577717 |
{
|
|
Packit |
577717 |
int i, retval;
|
|
Packit |
577717 |
int EventSet = PAPI_NULL;
|
|
Packit |
577717 |
char *event_name[NUM_EVENTS] = {
|
|
Packit |
577717 |
IFNAME ":rx:bytes",
|
|
Packit |
577717 |
IFNAME ":rx:packets",
|
|
Packit |
577717 |
IFNAME ":tx:bytes",
|
|
Packit |
577717 |
IFNAME ":tx:packets",
|
|
Packit |
577717 |
};
|
|
Packit |
577717 |
int event_code[NUM_EVENTS] = { 0, 0, 0, 0};
|
|
Packit |
577717 |
long long event_value[NUM_EVENTS];
|
|
Packit |
577717 |
int total_events=0;
|
|
Packit |
577717 |
|
|
Packit |
577717 |
/* Set TESTS_QUIET variable */
|
|
Packit |
577717 |
tests_quiet( argc, argv );
|
|
Packit |
577717 |
|
|
Packit |
577717 |
/* PAPI Initialization */
|
|
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 failed\n",retval);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
if (!TESTS_QUIET) {
|
|
Packit |
577717 |
printf("Net events by name\n");
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
/* Map names to codes */
|
|
Packit |
577717 |
for ( i=0; i
|
|
Packit |
577717 |
retval = PAPI_event_name_to_code( event_name[i], &event_code[i]);
|
|
Packit |
577717 |
if ( retval != PAPI_OK ) {
|
|
Packit |
577717 |
test_fail( __FILE__, __LINE__, "PAPI_event_name_to_code", retval );
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
total_events++;
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
/* Create and populate the EventSet */
|
|
Packit |
577717 |
EventSet = PAPI_NULL;
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_create_eventset( &EventSet );
|
|
Packit |
577717 |
if (retval != PAPI_OK) {
|
|
Packit |
577717 |
test_fail(__FILE__, __LINE__, "PAPI_create_eventset()", retval);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_add_events( EventSet, event_code, NUM_EVENTS);
|
|
Packit |
577717 |
if (retval != PAPI_OK) {
|
|
Packit |
577717 |
test_fail(__FILE__, __LINE__, "PAPI_add_events()", retval);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_start( EventSet );
|
|
Packit |
577717 |
if (retval != PAPI_OK) {
|
|
Packit |
577717 |
test_fail(__FILE__, __LINE__, "PAPI_start()", retval);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
/* generate some traffic
|
|
Packit |
577717 |
* the operation should take more than one second in order
|
|
Packit |
577717 |
* to guarantee that the network counters are updated */
|
|
Packit |
577717 |
retval = system("ping -c 4 " PINGADDR " > /dev/null");
|
|
Packit |
577717 |
if (retval < 0) {
|
|
Packit |
577717 |
test_fail(__FILE__, __LINE__, "Unable to start ping", retval);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_stop( EventSet, event_value );
|
|
Packit |
577717 |
if (retval != PAPI_OK) {
|
|
Packit |
577717 |
test_fail(__FILE__, __LINE__, "PAPI_start()", retval);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
if (!TESTS_QUIET) {
|
|
Packit |
577717 |
for ( i=0; i
|
|
Packit |
577717 |
printf("%#x %-24s = %lld\n",
|
|
Packit |
577717 |
event_code[i], event_name[i], event_value[i]);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_cleanup_eventset( EventSet );
|
|
Packit |
577717 |
if (retval != PAPI_OK) {
|
|
Packit |
577717 |
test_fail(__FILE__, __LINE__, "PAPI_cleanup_eventset()", retval);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_destroy_eventset( &EventSet );
|
|
Packit |
577717 |
if (retval != PAPI_OK) {
|
|
Packit |
577717 |
test_fail(__FILE__, __LINE__, "PAPI_destroy_eventset()", retval);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
test_pass( __FILE__ );
|
|
Packit |
577717 |
|
|
Packit |
577717 |
return 0;
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
// vim:set ai ts=4 sw=4 sts=4 et:
|