ESMF_FrameworkUTest Program

Uses

  • program~~esmf_frameworkutest~~UsesGraph program~esmf_frameworkutest ESMF_FrameworkUTest module~esmf ESMF program~esmf_frameworkutest->module~esmf module~esmf_testmod ESMF_TestMod program~esmf_frameworkutest->module~esmf_testmod

Calls

program~~esmf_frameworkutest~~CallsGraph program~esmf_frameworkutest ESMF_FrameworkUTest proc~esmf_finalize ESMF_Finalize program~esmf_frameworkutest->proc~esmf_finalize proc~esmf_isfinalized ESMF_IsFinalized program~esmf_frameworkutest->proc~esmf_isfinalized proc~esmf_isinitialized ESMF_IsInitialized program~esmf_frameworkutest->proc~esmf_isinitialized proc~esmf_test ESMF_Test program~esmf_frameworkutest->proc~esmf_test proc~esmf_testend ESMF_TestEnd program~esmf_frameworkutest->proc~esmf_testend proc~esmf_teststart ESMF_TestStart program~esmf_frameworkutest->proc~esmf_teststart c_esmc_getcompliancechecktrace c_esmc_getcompliancechecktrace proc~esmf_finalize->c_esmc_getcompliancechecktrace proc~esmf_calendarfinalize ESMF_CalendarFinalize proc~esmf_finalize->proc~esmf_calendarfinalize proc~esmf_logfinalize ESMF_LogFinalize proc~esmf_finalize->proc~esmf_logfinalize proc~esmf_logflush ESMF_LogFlush proc~esmf_finalize->proc~esmf_logflush proc~esmf_logrc2msg ESMF_LogRc2Msg proc~esmf_finalize->proc~esmf_logrc2msg proc~esmf_logwrite ESMF_LogWrite proc~esmf_finalize->proc~esmf_logwrite proc~esmf_traceclose ESMF_TraceClose proc~esmf_finalize->proc~esmf_traceclose proc~esmf_vmabort ESMF_VMAbort proc~esmf_finalize->proc~esmf_vmabort proc~esmf_vmfinalize ESMF_VMFinalize proc~esmf_finalize->proc~esmf_vmfinalize c_esmc_isfinalized c_esmc_isfinalized proc~esmf_isfinalized->c_esmc_isfinalized proc~esmf_logfounderror ESMF_LogFoundError proc~esmf_isfinalized->proc~esmf_logfounderror c_esmc_isinitialized c_esmc_isinitialized proc~esmf_isinitialized->c_esmc_isinitialized proc~esmf_isinitialized->proc~esmf_logfounderror proc~esmf_test->proc~esmf_logwrite proc~esmf_testend->proc~esmf_finalize proc~esmf_testend->proc~esmf_logwrite interface~esmf_vmget ESMF_VMGet proc~esmf_teststart->interface~esmf_vmget proc~esmf_initialize ESMF_Initialize proc~esmf_teststart->proc~esmf_initialize proc~esmf_logset ESMF_LogSet proc~esmf_teststart->proc~esmf_logset proc~esmf_teststart->proc~esmf_logwrite

Variables

Type Attributes Name Initial
character(len=ESMF_MAXSTR) :: cname
character(len=ESMF_MAXSTR) :: failMsg
character(len=ESMF_MAXSTR) :: name
integer :: rc
integer :: rcF
integer :: rcI
integer :: result = 0
logical :: isFinalized
logical :: isInitialized

Source Code

      program ESMF_FrameworkUTest

!------------------------------------------------------------------------------

#include "ESMF_Macros.inc"

!==============================================================================
!BOP
! !PROGRAM: ESMF_FrameworkUTest - Unit test for Framework.
!
! !DESCRIPTION:
! Tests, cursory and exahustive, for Component Create code.
!
!-------------------------------------------------------------------------
!
! !USES:
    use ESMF_TestMod     ! test methods
    use ESMF
    implicit none
    
!   ! Local variables
    integer :: rc, rcI, rcF
    character(ESMF_MAXSTR) :: cname
    logical :: isInitialized, isFinalized

    ! individual test failure message
    character(ESMF_MAXSTR) :: failMsg
    character(ESMF_MAXSTR) :: name
    integer :: result = 0

#ifdef ESMF_TESTEXHAUSTIVE
#endif

!-------------------------------------------------------------------------------
!   The unit tests are divided into Sanity and Exhaustive. The Sanity tests are
!   always run. When the environment variable, EXHAUSTIVE, is set to ON then
!   the EXHAUSTIVE and sanity tests both run. If the EXHAUSTIVE variable is set
!   to OFF, then only the sanity unit tests.
!   Special strings (Non-exhaustive and exhaustive) have been
!   added to allow a script to count the number and types of unit tests.
!-------------------------------------------------------------------------------

    ! special case here to call before ESMF_TestStart()        
    isInitialized = ESMF_IsInitialized(rc=rcI)
    isFinalized   = ESMF_IsFinalized(rc=rcF)

    call ESMF_TestStart(ESMF_SRCLINE, rc=rc)
    if (rc /= ESMF_SUCCESS) call ESMF_Finalize(endflag=ESMF_END_ABORT)

    !-----------------------------------------------------------------------------
    !NEX_UTest
    write(name, *) "Testing IsInitialized() before ESMF_Initialize() was called"
    write(failMsg, *) "Did not return ESMF_SUCCESS"
    call ESMF_Test((rcI.eq.ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE)

    !-----------------------------------------------------------------------------
    !NEX_UTest
    write(name, *) "Testing IsInitialized() before ESMF_Initialize() was called"
    write(failMsg, *) "Did not return .false."
    call ESMF_Test((isInitialized .eqv. .false.), name, failMsg, result, ESMF_SRCLINE)

    !-----------------------------------------------------------------------------
    !NEX_UTest
    write(name, *) "Testing IsFinalized() before ESMF_Initialize() was called"
    write(failMsg, *) "Did not return ESMF_SUCCESS"
    call ESMF_Test((rcF.eq.ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE)

    !-----------------------------------------------------------------------------
    !NEX_UTest
    write(name, *) "Testing IsFinalized() before ESMF_Initialize() was called"
    write(failMsg, *) "Did not return .false."
    call ESMF_Test((isFinalized .eqv. .false.), name, failMsg, result, ESMF_SRCLINE)

    !-----------------------------------------------------------------------------
    !NEX_UTest
    write(name, *) "Testing IsInitialized() after ESMF_Initialize() was called"
    write(failMsg, *) "Did not return ESMF_SUCCESS"
    isInitialized = ESMF_IsInitialized(rc=rc)
    call ESMF_Test((rc.eq.ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE)

    !-----------------------------------------------------------------------------
    !NEX_UTest
    write(name, *) "Testing IsInitialized() after ESMF_Initialize() was called"
    write(failMsg, *) "Did not return .true."
    call ESMF_Test((isInitialized .eqv. .true.), name, failMsg, result, ESMF_SRCLINE)

    !-----------------------------------------------------------------------------
    !NEX_UTest
    write(name, *) "Testing IsFinalized() after ESMF_Initialize() was called"
    write(failMsg, *) "Did not return ESMF_SUCCESS"
    isFinalized   = ESMF_IsFinalized(rc=rc)
    call ESMF_Test((rc.eq.ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE)

    !-----------------------------------------------------------------------------
    !NEX_UTest
    write(name, *) "Testing IsFinalized() after ESMF_Initialize() was called"
    write(failMsg, *) "Did not return .false."
    call ESMF_Test((isFinalized .eqv. .false.), name, failMsg, result, ESMF_SRCLINE)

#ifdef ESMF_TESTEXHAUSTIVE
    !TODO: somehow figure out how to test anything _after_ ESMF_Finalize()
#endif

    call ESMF_TestEnd(ESMF_SRCLINE)

    end program ESMF_FrameworkUTest