34 main(
int argc,
char **argv )
39 char event_name1[]=
"PAPI_TOT_CYC";
40 char event_name2[]=
"PAPI_TOT_INS";
62 if (!
quiet) printf(
"Couldn't add %s\n",event_name1);
63 test_skip(__FILE__,__LINE__,
"Couldn't add PAPI_TOT_CYC",0);
68 if (!
quiet) printf(
"Couldn't add %s\n",event_name2);
69 test_skip(__FILE__,__LINE__,
"Couldn't add PAPI_TOT_INS",0);
74 sprintf( add_event_str,
"PAPI_add_event[%s]", event_name2 );
138 printf(
"Test case 1: Non-overlapping start, stop, read.\n" );
139 printf(
"-----------------------------------------------\n" );
141 printf(
"Default domain is: %d (%s)\n",
tmp,
144 printf(
"Default granularity is: %d (%s)\n",
tmp,
146 printf(
"Using %d iterations of c += a*b\n",
NUM_FLOPS );
147 printf(
"-------------------------------------------------------------------------\n" );
149 printf(
"Test type : 1 2 3 4 5\n" );
150 sprintf( add_event_str,
"%s:", event_name2 );
151 printf(
TAB5, add_event_str,
154 printf(
TAB5,
"PAPI_TOT_CYC:",
157 printf(
"-------------------------------------------------------------------------\n" );
159 printf(
"Verification:\n" );
160 printf(
"Row 1 Column 1 at least %d\n",
NUM_FLOPS );
161 printf(
"%% difference between %s 1 & 2: %.2f\n",
163 100.0 * (
float )
values[0][1] /
165 printf(
"%% difference between %s 1 & 2: %.2f\n",
167 100.0 * (
float )
values[0][0] /
169 printf(
"Column 1 approximately equals column 2\n" );
170 printf(
"Column 3 approximately equals 2 * column 2\n" );
171 printf(
"Column 4 approximately equals 3 * column 2\n" );
172 printf(
"Column 4 exactly equals column 5\n" );
179 min = (
long long ) ( (
double )
values[1][0] * .8 );
180 max = (
long long ) ( (
double )
values[1][0] * 1.2 );
184 test_fail( __FILE__, __LINE__,
"Cycle Col1!=Col2", 1 );
187 if ( (
values[2][0] > ( 2 * max )) ||
189 test_fail( __FILE__, __LINE__,
"Cycle Col3!=2*Col2", 1 );
192 if ( (
values[3][0] > ( 3 * max )) ||
194 test_fail( __FILE__, __LINE__,
"Cycle Col3!=3*Col2", 1 );
198 test_fail( __FILE__, __LINE__,
"Cycle Col4!=Col5", 1 );
204 min = (
long long ) ( (
double )
values[1][1] * .9 );
205 max = (
long long ) ( (
double )
values[1][1] * 1.1 );
209 test_fail( __FILE__, __LINE__,
"FLOP Col1!=Col2", 1 );
212 if ( (
values[2][1] > ( 2 * max )) ||
214 test_fail( __FILE__, __LINE__,
"FLOP Col3!=2*Col2", 1 );
217 if ( (
values[3][1] > ( 3 * max )) ||
219 test_fail( __FILE__, __LINE__,
"FLOP Col4!=3*Col2", 1 );
223 test_fail( __FILE__, __LINE__,
"FLOP Col4!=Col5", 1 );
227 test_fail( __FILE__, __LINE__,
"FLOP sanity", 1 );
int PAPI_stop(int EventSet, long long *values)
void test_pass(const char *filename)
int PAPI_reset(int EventSet)
char * stringify_granularity(int granularity)
Return codes and api definitions.
void test_skip(const char *file, int line, const char *call, int retval)
int PAPI_add_named_event(int EventSet, const char *EventName)
int PAPI_library_init(int version)
char * stringify_all_domains(int domains)
int PAPI_get_opt(int option, PAPI_option_t *ptr)
int main(int argc, char **argv)
int PAPI_create_eventset(int *EventSet)
int tests_quiet(int argc, char **argv)
void test_fail(const char *file, int line, const char *call, int retval)
int PAPI_remove_named_event(int EventSet, const char *EventName)
int PAPI_read(int EventSet, long long *values)
int PAPI_start(int EventSet)
static long long values[NUM_EVENTS]
long long ** allocate_test_space(int num_tests, int num_events)