test_propagate_export Subroutine

public subroutine test_propagate_export()

Arguments

None

Calls

proc~~test_propagate_export~~CallsGraph proc~test_propagate_export test_propagate_export anyexceptions anyexceptions proc~test_propagate_export->anyexceptions assert_that assert_that proc~test_propagate_export->assert_that false false proc~test_propagate_export->false none~add_primary_spec StateRegistry%add_primary_spec proc~test_propagate_export->none~add_primary_spec none~add_subregistry StateRegistry%add_subregistry proc~test_propagate_export->none~add_subregistry none~get_extension_family StateRegistry%get_extension_family proc~test_propagate_export->none~get_extension_family none~get_primary ExtensionFamily%get_primary proc~test_propagate_export->none~get_primary none~has_virtual_pt StateRegistry%has_virtual_pt proc~test_propagate_export->none~has_virtual_pt none~num_owned_items StateRegistry%num_owned_items proc~test_propagate_export->none~num_owned_items none~propagate_exports~3 StateRegistry%propagate_exports proc~test_propagate_export->none~propagate_exports~3 sourcelocation sourcelocation proc~test_propagate_export->sourcelocation true true proc~test_propagate_export->true none~add_family StateRegistry%add_family none~add_primary_spec->none~add_family none~back~56 StateItemExtensionVector%back none~add_primary_spec->none~back~56 none~push_back~49 StateItemExtensionVector%push_back none~add_primary_spec->none~push_back~49 proc~mapl_return MAPL_Return none~add_primary_spec->proc~mapl_return proc~mapl_verify MAPL_Verify none~add_primary_spec->proc~mapl_verify interface~mapl_assert MAPL_Assert none~add_subregistry->interface~mapl_assert none~get_name~14 StateRegistry%get_name none~add_subregistry->none~get_name~14 none~has_subregistry StateRegistry%has_subregistry none~add_subregistry->none~has_subregistry none~insert~88 RegistryPtrMap%insert none~add_subregistry->none~insert~88 none~add_subregistry->proc~mapl_return none~at~112 VirtualPtFamilyMap%at none~get_extension_family->none~at~112 none~get_extension_family->proc~mapl_return none~get_extension_family->proc~mapl_verify none~get_primary->interface~mapl_assert none~front~56 StateItemExtensionPtrVector%front none~get_primary->none~front~56 none~get_primary->proc~mapl_return none~propagate_exports_virtual_pt StateRegistry%propagate_exports_virtual_pt none~propagate_exports~3->none~propagate_exports_virtual_pt

Source Code

   subroutine test_propagate_export()
      type(StateRegistry), target :: r_child, r_parent
      integer :: status
      type(VirtualConnectionPt) :: v_pt, new_v_pt
      type(ExtensionFamily), pointer :: family
      
      r_parent = StateRegistry('parent')
      r_child = StateRegistry('child')
      call r_parent%add_subregistry(r_child)

      v_pt = VirtualConnectionPt(state_intent='export', short_name='T')
      call r_child%add_primary_spec(v_pt, MockItemSpec('T_child'), _RC)
      call r_parent%propagate_exports(_RC)

      @assert_that(r_parent%num_owned_items(), is(0))
      @assert_that(r_parent%has_virtual_pt(v_pt), is(false()))
      new_v_pt = VirtualConnectionPt(v_pt, 'child')
      @assert_that(r_parent%has_virtual_pt(new_v_pt), is(true()))
      family => r_parent%get_extension_family(new_v_pt, _RC)
      @assert_that(associated(family%get_primary()), is(true()))
            
   end subroutine test_propagate_export