Skip to content

Releases: Goddard-Fortran-Ecosystem/pFUnit

Minor bug fix - cmake logic

18 Mar 16:53
e540371
Compare
Choose a tag to compare

[4.2.4] - 2022-03-18

Fixed

  • Fixed MPI find logic issue exposed by CI testing. Was including PFUNIT::pfunit even if MPI was not found

Fixes to enable nvfortran 22.3

10 Mar 18:59
b85c863
Compare
Choose a tag to compare

This release fixes a few bugs that were detected when attempting to build and run on nvfortran. This version of pFUnit should work with the next release: nvfortran 22.3.

Fixed

  • Incorrect treatment of 128 bit real support for compilers that do not support REAL128.
  • Incorrect compilel flags for PGI

Changed

  • When any tests fail, the driver now invokes Fortran STOP instead of
    Fortran ERROR STOP. This suppresses annoying back traces from
    GFortran.

  • Changed OTHER_SRCS to OTHER_SOURCES in PFUNIT.mk. The previous spelling

  • is deprecated, but preserved to keep backwards compatibility.

Various bug fixes

15 Nov 19:49
d684684
Compare
Choose a tag to compare

Fixed

  • Fix for OpenMP handling in PFUNITCmake.cmake. If you skip OpenMP, it is no
    longer a dependency
  • Updated external modules that contain bugfixes.
  • Fixed cmake logic that fails on enabling tests if using submodules.
  • Allow GFortran to use longer lines. (Impacts some upstream use cases.)

Changed

  • Changed OTHER_SRCS to OTHER_SOURCES in PFUNIT.mk. The previous spelling
    is deprecated, but preserved to keep backwards compatibility.

Fix for CMake race condition

24 Mar 20:51
35b5fe0
Compare
Choose a tag to compare

This release fixes an issue where depending on the compiler there is a race condition when building multiple ctests in the same directory. The duplication of module names for the pFUnit main program (driver.F90) is the main culprit.

Fix for recent instability in building

07 Feb 01:03
a8d22d8
Compare
Choose a tag to compare

Added

  • Improved ability to embed pFUnit in the source tree of other projects.

Changed

  • pFUnit now uses CMake namespaces. Upstream projects should now link
    against PFUNIT::funit (or PFUNIT::pfunit) rather than just funit. Users that
    build test suites using the add_pfunit_ctest() macro should not see an impact.

Fixed

  • The add_pfunit_ctest() macro could fail under several not-so-rare
    circumstances. One way is for CMake to fail to build
    OTHER_SOURCES before the driver as it cannot correctly analyze
    the indirect Fortran USE PFUNIT_EXTRA_INITIALIZE statement. The
    other is when using paralle builds with multiple test suites using
    Intel and the -save-temps flag. Here the compiler would overwrite the
    driver.i90 in the build directory and produce confusing results.

    The solution is to use Cmake configure_file() to preprocess the driver
    directly on a per-suite basis. This will allow CMake+FPP to corretly
    analyze dependencies and avoid reuse of driver.i90.

Enable use add_subdirectory

06 Jan 14:08
e717421
Compare
Choose a tag to compare

Added

  • Enabled use off add_subdirectory and build directory directly.
    This improves the ability to build pFUnit when embedded within
    another project instead of building it as a separate project.

Fixed

  • Bug in assert for relatively equal. Incorrect index for location of of first
    failing element.
  • Workaround for WSL issue in driver.

Added flag for position dependent code

10 Nov 20:04
2cce6d2
Compare
Choose a tag to compare
v4.1.14

Merge pull request #249 from Goddard-Fortran-Ecosystem/feature/positi…

Minor bug fixes

08 Nov 23:47
4f11470
Compare
Choose a tag to compare

There is a ticket opened against Intel Fortran 19.2 which breaks some
fHamcrest functionality. A failing test has been added to the test
suite. 19.1.3 still has this bug. (I have not checked if earlier
compilers also had this problem, but quite possibly they do as
fHamcrest is still under development.)

Changed

  • Separated tests related to RobustRunner into separate test suite. This is to
    facilitate CI, as the tests do intermittently fail under CI, though rarely
    in any development environment used by the main developers.

  • Corrected so that default flags are with aggressive debugging. This had been
    the default in the past, but was apparently lost for NAG to workaround a compiler
    bug in an intermediate release. Also corrected the way the flags are managed
    for Debug vs Release.

Fixed

  • Added workaround for NAG+cmake+OpenMP. An issue has been filed with kitware
    https://gitlab.kitware.com/cmake/cmake/-/issues/21280

  • Missing PRESENT checks for arguments in TestMethod. Not sure how
    these were not being caught - probably related to change mentioned
    above about skipping debug flags with NAG Fortran.

  • Missing RECURSIVE attribute on function in Every.F90. Not necessary
    in F2008, but not all compilers have implemented this yet.

Bug fixes for fhamcrest layer

22 Aug 23:48
9a8e225
Compare
Choose a tag to compare

Fixed

  • Problem with FHamcrest equal_to where when the expected value is a numeric
    array and the actual value is any type except a numeric array the test still
    passes, such as: @assert_that(1, is(equal_to([2, 3, 4]))) passes.

  • Problem with FHamcrest tests causing a segment fault when a test fails that
    involves a complex number.

Workaround for gfortran-10 strict MPI interfaces

05 Aug 13:12
9e3211e
Compare
Choose a tag to compare

Added compiler flag that allows GFortran 10.x to compile with argument mismatches
in MPI layer. This apparently is only an issue for some MPI flavors, with
others importing the correct interface variability via use mpi.