julienne_test_fixture_m.f90 Source File


This file depends on

sourcefile~~julienne_test_fixture_m.f90~~EfferentGraph sourcefile~julienne_test_fixture_m.f90 julienne_test_fixture_m.f90 sourcefile~julienne_test_m.f90 julienne_test_m.F90 sourcefile~julienne_test_fixture_m.f90->sourcefile~julienne_test_m.f90 sourcefile~julienne_command_line_m.f90 julienne_command_line_m.f90 sourcefile~julienne_test_m.f90->sourcefile~julienne_command_line_m.f90 sourcefile~julienne_test_description_m.f90 julienne_test_description_m.f90 sourcefile~julienne_test_m.f90->sourcefile~julienne_test_description_m.f90 sourcefile~julienne_test_result_m.f90 julienne_test_result_m.f90 sourcefile~julienne_test_m.f90->sourcefile~julienne_test_result_m.f90 sourcefile~julienne_user_defined_collectives_m.f90 julienne_user_defined_collectives_m.f90 sourcefile~julienne_test_m.f90->sourcefile~julienne_user_defined_collectives_m.f90 sourcefile~julienne_test_description_m.f90->sourcefile~julienne_test_result_m.f90 sourcefile~julienne_string_m.f90 julienne_string_m.F90 sourcefile~julienne_test_description_m.f90->sourcefile~julienne_string_m.f90 sourcefile~julienne_test_diagnosis_m.f90 julienne_test_diagnosis_m.F90 sourcefile~julienne_test_description_m.f90->sourcefile~julienne_test_diagnosis_m.f90 sourcefile~julienne_test_result_m.f90->sourcefile~julienne_string_m.f90 sourcefile~julienne_test_result_m.f90->sourcefile~julienne_test_diagnosis_m.f90 sourcefile~julienne_test_diagnosis_m.f90->sourcefile~julienne_string_m.f90

Files dependent on this one

sourcefile~~julienne_test_fixture_m.f90~~AfferentGraph sourcefile~julienne_test_fixture_m.f90 julienne_test_fixture_m.f90 sourcefile~julienne_m.f90 julienne_m.f90 sourcefile~julienne_m.f90->sourcefile~julienne_test_fixture_m.f90 sourcefile~julienne_test_harness_m.f90 julienne_test_harness_m.f90 sourcefile~julienne_m.f90->sourcefile~julienne_test_harness_m.f90 sourcefile~julienne_test_fixture_s.f90 julienne_test_fixture_s.F90 sourcefile~julienne_test_fixture_s.f90->sourcefile~julienne_test_fixture_m.f90 sourcefile~julienne_test_harness_m.f90->sourcefile~julienne_test_fixture_m.f90 sourcefile~assertions.f90 assertions.F90 sourcefile~assertions.f90->sourcefile~julienne_m.f90 sourcefile~check-for-command-line-argument.f90 check-for-command-line-argument.f90 sourcefile~check-for-command-line-argument.f90->sourcefile~julienne_m.f90 sourcefile~get-command-line-flag-value.f90 get-command-line-flag-value.f90 sourcefile~get-command-line-flag-value.f90->sourcefile~julienne_m.f90 sourcefile~julienne_test_harness_s.f90 julienne_test_harness_s.F90 sourcefile~julienne_test_harness_s.f90->sourcefile~julienne_test_harness_m.f90 sourcefile~julienne_test_suite_s.f90 julienne_test_suite_s.F90 sourcefile~julienne_test_suite_s.f90->sourcefile~julienne_m.f90 sourcefile~scaffold.f90 scaffold.F90 sourcefile~scaffold.f90->sourcefile~julienne_m.f90

Source Code

! Copyright (c) 2024-2025, The Regents of the University of California and Sourcery Institute
! Terms of use are as specified in LICENSE.txt

module julienne_test_fixture_m
  !! Define a wrapper type for the test_t type to facilitate creating a polymorphic 
  !! array of test_t objects.
  use julienne_test_m, only : test_t

  implicit none

  private
  public :: test_fixture_t

  type test_fixture_t
    private
    class(test_t), allocatable :: test_
  contains
    procedure report
  end type

  interface test_fixture_t

    module function component_constructor(test) result(test_fixture) ! can be pure in Fortran 2023
      !! Construct a test_fixture_t object from its components
      implicit none
      class(test_t), intent(in) :: test
      type(test_fixture_t) test_fixture
    end function

  end interface

  interface

    module subroutine report(self, passes, tests, skips)
      !! Print the test results and increment the tallies of passing tests, total tests, and skipped tests.
      implicit none
      class(test_fixture_t), intent(in) :: self 
      integer, intent(inout) :: passes, tests, skips
    end subroutine

  end interface

end module julienne_test_fixture_m