PAPI  5.6.0.0
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
vmware_basic.c File Reference
Include dependency graph for vmware_basic.c:

Go to the source code of this file.

Macros

#define NUM_EVENTS   1
 Tests basic vmware functionality. More...
 

Functions

int main (int argc, char **argv)
 

Macro Definition Documentation

#define NUM_EVENTS   1
Author
Vince Weaver

test case for vmware component

Definition at line 18 of file vmware_basic.c.

Function Documentation

int main ( int  argc,
char **  argv 
)

Definition at line 20 of file vmware_basic.c.

21 {
22 
23  int retval,cid,numcmp;
24  int EventSet = PAPI_NULL;
25  long long values[NUM_EVENTS];
26  int code;
28  int total_events=0;
29  int r;
30  const PAPI_component_info_t *cmpinfo = NULL;
31 
32  /* Set TESTS_QUIET variable */
33  tests_quiet( argc, argv );
34 
35  /* PAPI Initialization */
37  if ( retval != PAPI_VER_CURRENT ) {
38  test_fail(__FILE__, __LINE__,"PAPI_library_init failed\n",retval);
39  }
40 
41  if (!TESTS_QUIET) {
42  printf("Trying all vmware events\n");
43  }
44 
45  /* Find our Component */
46 
47  numcmp = PAPI_num_components();
48 
49  for(cid=0; cid<numcmp; cid++) {
50 
51  if ( (cmpinfo = PAPI_get_component_info(cid)) == NULL) {
52  test_fail(__FILE__, __LINE__,"PAPI_get_component_info failed\n", 0);
53  }
54 
55  if (strstr(cmpinfo->name,"vmware")) {
56  if (!TESTS_QUIET) printf("\tFound vmware component %d - %s\n", cid, cmpinfo->name);
57  }
58  else {
59  continue;
60  }
61 
62  PAPI_event_info_t info;
63 
64  /* Try all events one by one */
65 
66  code = PAPI_NATIVE_MASK;
67 
68  r = PAPI_enum_cmp_event( &code, PAPI_ENUM_FIRST, cid );
69 
70  while ( r == PAPI_OK ) {
71 
72  retval=PAPI_get_event_info(code,&info);
73  if (retval!=PAPI_OK) {
74  printf("Error getting event info\n");
75  test_fail( __FILE__, __LINE__,
76  "PAPI_get_event_info", retval );
77  }
78 
79  retval = PAPI_event_code_to_name( code, event_name );
80  if ( retval != PAPI_OK ) {
81  printf("Error translating %#x\n",code);
82  test_fail( __FILE__, __LINE__,
83  "PAPI_event_code_to_name", retval );
84  }
85 
86  if (!TESTS_QUIET) printf(" %s ",event_name);
87 
88  EventSet = PAPI_NULL;
89 
90  retval = PAPI_create_eventset( &EventSet );
91  if (retval != PAPI_OK) {
92  test_fail(__FILE__, __LINE__,
93  "PAPI_create_eventset()",retval);
94  }
95 
96  retval = PAPI_add_event( EventSet, code );
97  if (retval != PAPI_OK) {
98  test_fail(__FILE__, __LINE__,
99  "PAPI_add_event()",retval);
100  }
101 
102  /* start */
103  retval = PAPI_start( EventSet);
104  if (retval != PAPI_OK) {
105  test_fail(__FILE__, __LINE__, "PAPI_start()",retval);
106  }
107 
108  /* do something */
109  usleep(100);
110 
111  /* stop */
112  retval = PAPI_stop( EventSet, values);
113  if (retval != PAPI_OK) {
114  test_fail(__FILE__, __LINE__, "PAPI_start()",retval);
115  }
116 
117  if (!TESTS_QUIET) printf(" value: %lld %s\n",values[0],
118  info.units);
119 
120  retval = PAPI_cleanup_eventset( EventSet );
121  if (retval != PAPI_OK) {
122  test_fail(__FILE__, __LINE__,
123  "PAPI_cleanup_eventset()",retval);
124  }
125 
126  retval = PAPI_destroy_eventset( &EventSet );
127  if (retval != PAPI_OK) {
128  test_fail(__FILE__, __LINE__,
129  "PAPI_destroy_eventset()",retval);
130  }
131 
132  total_events++;
133 
134  r = PAPI_enum_cmp_event( &code, PAPI_ENUM_EVENTS, cid );
135  }
136  }
137 
138  if (total_events==0) {
139  test_skip(__FILE__,__LINE__,"No vmware events found",0);
140  }
141 
142  if (!TESTS_QUIET) {
143  printf("\n");
144  }
145 
146  test_pass( __FILE__ );
147 
148  return 0;
149 }
char event_name[2][PAPI_MAX_STR_LEN]
Definition: data_range.c:29
char name[PAPI_MAX_STR_LEN]
Definition: papi.h:629
int PAPI_stop(int EventSet, long long *values)
Definition: papi.c:2314
#define PAPI_NATIVE_MASK
const PAPI_component_info_t * PAPI_get_component_info(int cidx)
Definition: papi.c:796
void test_pass(const char *filename)
Definition: test_utils.c:432
int PAPI_add_event(int EventSet, int EventCode)
Definition: papi.c:1663
#define NUM_EVENTS
Tests basic vmware functionality.
Definition: vmware_basic.c:18
#define PAPI_NULL
Definition: papi.h:292
int PAPI_num_components(void)
Definition: papi.c:4387
int EventSet
return PAPI_OK
Definition: linux-nvml.c:497
int int argc
Definition: iozone.c:1609
int PAPI_get_event_info(int EventCode, PAPI_event_info_t *info)
Definition: papi.c:835
void test_skip(const char *file, int line, const char *call, int retval)
Definition: test_utils.c:559
char ** argv
Definition: iozone.c:1610
int PAPI_library_init(int version)
Definition: papi.c:500
int PAPI_enum_cmp_event(int *EventCode, int modifier, int cidx)
Definition: papi.c:1357
int PAPI_cleanup_eventset(int EventSet)
Definition: papi.c:2890
int PAPI_create_eventset(int *EventSet)
Definition: papi.c:1464
int PAPI_event_code_to_name(int EventCode, char *out)
Definition: papi.c:915
printf("\tTry: -i 0 -i 1 \n\n")
int TESTS_QUIET
Definition: test_utils.c:18
int tests_quiet(int argc, char **argv)
Definition: test_utils.c:376
void test_fail(const char *file, int line, const char *call, int retval)
Definition: test_utils.c:468
int PAPI_destroy_eventset(int *EventSet)
Definition: papi.c:2014
#define PAPI_MAX_STR_LEN
Definition: papi.h:465
int PAPI_start(int EventSet)
Definition: papi.c:2096
static long long values[NUM_EVENTS]
Definition: init_fini.c:10
ssize_t retval
Definition: libasync.c:338
#define PAPI_VER_CURRENT
Definition: papi.h:225
char units[PAPI_MIN_STR_LEN]
Definition: papi.h:975

Here is the call graph for this function: