16{
19 long long values1[2],values2[2];
20 const char *
event_names[] = {
"PAPI_TOT_CYC",
"PAPI_TOT_INS"};
22 double instructions_error;
23 long long old_instructions;
25
26
28
29
33 }
34
35
39 }
40
41
44 sprintf( add_event_str,
"PAPI_add_named_event[%s]",
event_names[0] );
45 if (!
quiet) printf(
"Trouble %s\n",add_event_str);
47 }
48
51 sprintf( add_event_str,
"PAPI_add_named_event[%s]",
event_names[1] );
53 }
54
55
59 }
60
61
63
64
68 }
69
70
71 old_instructions=values1[1];
72
74
75 printf( "========================\n" );
76
77
78 sprintf( add_event_str,
"%-12s : \t",
event_names[0] );
79 printf(
TAB1, add_event_str, values1[0] );
80 sprintf( add_event_str,
"%-12s : \t",
event_names[1] );
81 printf(
TAB1, add_event_str, values1[1] );
82 }
83
84
85
88 sprintf( add_event_str,
"PAPI_add_named_event[%s]",
event_names[0] );
90 }
91
92
93
97 }
98
99
101
102
106 }
107
108
109
110
111
112
113
115
116 printf( "==========================\n" );
117 printf( "After removing PAP_TOT_CYC\n");
118 sprintf( add_event_str,
"%-12s : \t",
event_names[1] );
119 printf(
TAB1, add_event_str, values2[0] );
120
121 instructions_error=((double)old_instructions - (double)values2[0])/
122 (double)old_instructions;
123 if (instructions_error>10.0) {
124 printf("Error of %.2f%%\n",instructions_error);
125 test_fail( __FILE__, __LINE__,
"validation", 0 );
126 }
127
128 }
130
131 return 0;
132}
static const char * event_names[2]
add PAPI preset or native hardware event by name to an EventSet
Create a new empty PAPI EventSet.
initialize the PAPI library.
removes a named hardware event from a PAPI event set.
Start counting hardware events in an event set.
Stop counting hardware events in an event set.
int tests_quiet(int argc, char **argv)
void PAPI_NORETURN test_fail(const char *file, int line, const char *call, int retval)
void PAPI_NORETURN test_pass(const char *filename)
void PAPI_NORETURN test_skip(const char *file, int line, const char *call, int retval)