|
Packit |
577717 |
#include "fpapi_test.h"
|
|
Packit |
577717 |
|
|
Packit |
577717 |
program description
|
|
Packit |
577717 |
implicit integer (p)
|
|
Packit |
577717 |
|
|
Packit |
577717 |
integer es1, number
|
|
Packit |
577717 |
integer*8 values(10)
|
|
Packit |
577717 |
integer events(2), eventlist(2)
|
|
Packit |
577717 |
integer eventtotal
|
|
Packit |
577717 |
integer i
|
|
Packit |
577717 |
character*PAPI_MAX_STR_LEN name
|
|
Packit |
577717 |
integer status
|
|
Packit |
577717 |
integer retval
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Integer last_char
|
|
Packit |
577717 |
External last_char
|
|
Packit |
577717 |
integer tests_quiet, get_quiet
|
|
Packit |
577717 |
external get_quiet
|
|
Packit |
577717 |
|
|
Packit |
577717 |
tests_quiet = get_quiet()
|
|
Packit |
577717 |
es1 = PAPI_NULL
|
|
Packit |
577717 |
|
|
Packit |
577717 |
if (tests_quiet .EQ. 0) then
|
|
Packit |
577717 |
print *, "Test case descriptions: Test of functions:"
|
|
Packit |
577717 |
print *, " PAPI_add_events, PAPI_remove_events,"
|
|
Packit |
577717 |
print *, " PAPI_list_events, PAPI_describe_event,"
|
|
Packit |
577717 |
print *, " PAPI_state"
|
|
Packit |
577717 |
end if
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_VER_CURRENT
|
|
Packit |
577717 |
call PAPIf_library_init(retval)
|
|
Packit |
577717 |
if ( retval.NE.PAPI_VER_CURRENT) then
|
|
Packit |
577717 |
call ftest_fail(__FILE__, __LINE__,
|
|
Packit |
577717 |
*'PAPI_library_init', retval)
|
|
Packit |
577717 |
end if
|
|
Packit |
577717 |
|
|
Packit |
577717 |
call PAPIf_create_eventset(es1, retval)
|
|
Packit |
577717 |
if ( retval.NE.PAPI_OK) then
|
|
Packit |
577717 |
call ftest_fail(__FILE__, __LINE__,
|
|
Packit |
577717 |
. 'PAPIf_create_eventset',
|
|
Packit |
577717 |
*retval)
|
|
Packit |
577717 |
end if
|
|
Packit |
577717 |
|
|
Packit |
577717 |
number=2
|
|
Packit |
577717 |
|
|
Packit |
577717 |
call PAPIf_query_event(PAPI_FP_INS, retval)
|
|
Packit |
577717 |
if (retval .NE. PAPI_OK) then
|
|
Packit |
577717 |
events(1) = PAPI_TOT_INS
|
|
Packit |
577717 |
else
|
|
Packit |
577717 |
events(1) = PAPI_FP_INS
|
|
Packit |
577717 |
end if
|
|
Packit |
577717 |
events(2) = PAPI_TOT_CYC
|
|
Packit |
577717 |
|
|
Packit |
577717 |
call PAPIf_add_events( es1, events, number, retval )
|
|
Packit |
577717 |
if ( retval.LT.PAPI_OK) then
|
|
Packit |
577717 |
call ftest_fail(__FILE__, __LINE__,
|
|
Packit |
577717 |
*'PAPIf_add_event', retval)
|
|
Packit |
577717 |
end if
|
|
Packit |
577717 |
|
|
Packit |
577717 |
eventtotal=5
|
|
Packit |
577717 |
call PAPIf_list_events(es1, eventlist, eventtotal, retval)
|
|
Packit |
577717 |
if ( retval.NE.PAPI_OK) then
|
|
Packit |
577717 |
call ftest_fail(__FILE__, __LINE__,
|
|
Packit |
577717 |
*'PAPIf_list_events', retval)
|
|
Packit |
577717 |
end if
|
|
Packit |
577717 |
|
|
Packit |
577717 |
if (tests_quiet .EQ. 0) then
|
|
Packit |
577717 |
print *, " "
|
|
Packit |
577717 |
print *, "Event List:"
|
|
Packit |
577717 |
print *, "---------------------------------------",
|
|
Packit |
577717 |
* "---------------------------"
|
|
Packit |
577717 |
print *, "Event Name Code"
|
|
Packit |
577717 |
end if
|
|
Packit |
577717 |
do i = 1, eventtotal
|
|
Packit |
577717 |
call PAPIf_event_code_to_name (eventlist(i), name, retval)
|
|
Packit |
577717 |
if ( retval.NE.PAPI_OK) then
|
|
Packit |
577717 |
call ftest_fail(__FILE__, __LINE__,
|
|
Packit |
577717 |
*'PAPIf_event_code_to_name', retval)
|
|
Packit |
577717 |
end if
|
|
Packit |
577717 |
if (tests_quiet .EQ. 0) then
|
|
Packit |
577717 |
write (*, 100) name, eventlist(i)
|
|
Packit |
577717 |
end if
|
|
Packit |
577717 |
100 format(A12,O12)
|
|
Packit |
577717 |
end do
|
|
Packit |
577717 |
if (tests_quiet .EQ. 0) then
|
|
Packit |
577717 |
print *, "---------------------------------------",
|
|
Packit |
577717 |
*"---------------------------"
|
|
Packit |
577717 |
end if
|
|
Packit |
577717 |
|
|
Packit |
577717 |
call PAPIf_state(es1, status, retval)
|
|
Packit |
577717 |
if ( retval.NE.PAPI_OK) then
|
|
Packit |
577717 |
call ftest_fail(__FILE__, __LINE__,
|
|
Packit |
577717 |
. 'PAPIf_state', retval)
|
|
Packit |
577717 |
end if
|
|
Packit |
577717 |
|
|
Packit |
577717 |
if (status .NE. PAPI_STOPPED) then
|
|
Packit |
577717 |
print *, "PAPI_state Error"
|
|
Packit |
577717 |
stop
|
|
Packit |
577717 |
end if
|
|
Packit |
577717 |
if (tests_quiet .EQ. 0) then
|
|
Packit |
577717 |
print *, "PAPI_state: PAPI_STOPPED"
|
|
Packit |
577717 |
end if
|
|
Packit |
577717 |
|
|
Packit |
577717 |
call PAPIf_start(es1, retval)
|
|
Packit |
577717 |
if ( retval .NE. PAPI_OK ) then
|
|
Packit |
577717 |
call ftest_fail(__FILE__, __LINE__,
|
|
Packit |
577717 |
. 'PAPIf_start', retval)
|
|
Packit |
577717 |
end if
|
|
Packit |
577717 |
if (tests_quiet .EQ. 0) then
|
|
Packit |
577717 |
print *, "PAPI_start"
|
|
Packit |
577717 |
end if
|
|
Packit |
577717 |
|
|
Packit |
577717 |
call PAPIf_state(es1, status, retval)
|
|
Packit |
577717 |
if ( retval.NE.PAPI_OK) then
|
|
Packit |
577717 |
call ftest_fail(__FILE__, __LINE__,
|
|
Packit |
577717 |
. 'PAPIf_state', retval)
|
|
Packit |
577717 |
end if
|
|
Packit |
577717 |
|
|
Packit |
577717 |
if (status .NE. PAPI_RUNNING) then
|
|
Packit |
577717 |
print *, "PAPI_state Error"
|
|
Packit |
577717 |
stop
|
|
Packit |
577717 |
end if
|
|
Packit |
577717 |
if (tests_quiet .EQ. 0) then
|
|
Packit |
577717 |
print *, "PAPI_state: PAPI_RUNNING"
|
|
Packit |
577717 |
end if
|
|
Packit |
577717 |
|
|
Packit |
577717 |
call fdo_flops(NUM_FLOPS)
|
|
Packit |
577717 |
|
|
Packit |
577717 |
call PAPIf_stop(es1, values, retval)
|
|
Packit |
577717 |
if ( retval .NE. PAPI_OK ) then
|
|
Packit |
577717 |
call ftest_fail(__FILE__, __LINE__,
|
|
Packit |
577717 |
. 'PAPIf_stop', retval)
|
|
Packit |
577717 |
end if
|
|
Packit |
577717 |
|
|
Packit |
577717 |
if (tests_quiet .EQ. 0) then
|
|
Packit |
577717 |
print *, "PAPI_stop"
|
|
Packit |
577717 |
end if
|
|
Packit |
577717 |
|
|
Packit |
577717 |
call PAPIf_state(es1, status, retval)
|
|
Packit |
577717 |
if ( retval.NE.PAPI_OK) then
|
|
Packit |
577717 |
call ftest_fail(__FILE__, __LINE__,
|
|
Packit |
577717 |
. 'PAPIf_state', retval)
|
|
Packit |
577717 |
end if
|
|
Packit |
577717 |
|
|
Packit |
577717 |
if (status .NE. PAPI_STOPPED) then
|
|
Packit |
577717 |
print *, "PAPI_state Error"
|
|
Packit |
577717 |
stop
|
|
Packit |
577717 |
end if
|
|
Packit |
577717 |
if (tests_quiet .EQ. 0) then
|
|
Packit |
577717 |
print *, "PAPI_state: PAPI_STOPPED"
|
|
Packit |
577717 |
end if
|
|
Packit |
577717 |
|
|
Packit |
577717 |
call PAPIf_remove_events( es1, events, number, retval )
|
|
Packit |
577717 |
if ( retval .NE. PAPI_OK ) then
|
|
Packit |
577717 |
call ftest_fail(__FILE__, __LINE__,
|
|
Packit |
577717 |
*'PAPIf_remove_events', retval)
|
|
Packit |
577717 |
end if
|
|
Packit |
577717 |
|
|
Packit |
577717 |
if (tests_quiet .EQ. 0) then
|
|
Packit |
577717 |
call PAPIf_event_code_to_name (eventlist(1), name, retval)
|
|
Packit |
577717 |
if ( retval.NE.PAPI_OK) then
|
|
Packit |
577717 |
call ftest_fail(__FILE__, __LINE__,
|
|
Packit |
577717 |
* 'PAPIf_event_code_to_name', retval)
|
|
Packit |
577717 |
end if
|
|
Packit |
577717 |
print *, " "
|
|
Packit |
577717 |
print *, "Results:"
|
|
Packit |
577717 |
print *, "---------------------------------------",
|
|
Packit |
577717 |
* "---------------------------"
|
|
Packit |
577717 |
print *, "Test type : 1"
|
|
Packit |
577717 |
print *, name, " : ", values(1)
|
|
Packit |
577717 |
print *, "PAPI_TOT_CYC : ", values(2)
|
|
Packit |
577717 |
print *, "---------------------------------------",
|
|
Packit |
577717 |
* "---------------------------"
|
|
Packit |
577717 |
|
|
Packit |
577717 |
print *, " "
|
|
Packit |
577717 |
print *, "Verification:"
|
|
Packit |
577717 |
print *, "1. The events listed by PAPI_describe_event",
|
|
Packit |
577717 |
* "should be exactly the same events added by PAPI_add_events."
|
|
Packit |
577717 |
print *, "2. The PAPI_state should be PAPI_RUNNING after ",
|
|
Packit |
577717 |
* "PAPI_start and before PAPI_stop."
|
|
Packit |
577717 |
print *, "It should be PAPI_STOPPED at other time."
|
|
Packit |
577717 |
end if
|
|
Packit |
577717 |
|
|
Packit |
577717 |
call ftests_pass(__FILE__)
|
|
Packit |
577717 |
end
|