Blame src/ftests/description.F

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