Files
hdf5/test/CMakeTests.cmake
Larry Knox e2578640fe Merge issue 839 changes to hdf5 1 10 (#841)
* Revert addition of & to 2 parameters in DSetCreatPropList::setVirtual to
maintain binary compatibility.

* Fix H5Eget_auto2/H5Eauto_is_v2 to not clear error stack (#625)

* Removes gratuitous (double)x.yF casts (#632)

* Committing clang-format changes

* Removes gratuitous (double)x.yF casts

* Committing clang-format changes

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>

* Cleans up a const warning left over from previous constification (#633)

* Committing clang-format changes

* Adds consts to a few global variables

* Cleans up a const warning left over from previous constification

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>

* Purges UFAIL from the library (#637)

* Committing clang-format changes

* Purges UFAIL from the library

* H5HL_insert change requested in PR

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>

* Bmr dev hdffv 11223 (#640)

* Fixed HDFFV-11223 (CVE-2018-14460)

Description
    - Added checks against buffer size to prevent segfault, in case of data
      corruption, for sdim->size and sdim->max.
    - Renamed data files in an existing test to shorten their length
      as agreed with other developers previously.
Platforms tested:
    Linux/64 (jelly)

* Committing clang-format changes

* Updated for test files

* Updated for HDFFV-11223

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>

* Committing clang-format changes

* Restore "error:" in line 2666.

* Revert "Fix H5Eget_auto2/H5Eauto_is_v2 to not clear error stack (#625)"

This reverts commit 426b504848.

* Snapshot version 1.10 release 8-1. Update version to 1.10.8-2.

Squashed commit of the following:

commit 60734e63fe
Author: Allen Byrne <50328838+byrnHDF@users.noreply.github.com>
Date:   Thu Jun 24 14:20:39 2021 -0500

    Hdf5 1 10 Fix tools test (#796)

    * HDFFV-10865 - merge from dev, HDFArray perf fix.

    * Remove duplicate setting

    * Whitespace changes after clang format

    * Undo version 11 clang format changes

    * Merge CMake changes from develop

    * test testing script merge from develop

    * Update supported platforms

    * PR#3 merge from develop

    * Merge gcc 10 diagnostics option from develop

    * Merge #318 OSX changes from develop

    * Merge small changes from develop

    * Minor non-space formatting changes

    * #386 copyright corrections for java folder

    * Merges from develop

    #358 patches from vtk
    #361 fix header guard spelling

    * Merge updates

    #358 patches from vtk
    #361 fix header guard spelling

    * format fix

    * Fix missing underscore and make H5public.h closer to dev

    * Merges from develop

    #340 clang -Wformat-security warnings
    #360 Fixed uninitialized warnings
    header guard underscore cleanup
    JNI cleanup

    * format alignment

    * Add missing test ref file

    * Merge #380 from develop

    * Finish java merges from develop

    * Fix java issues with tests and javadoc

    * Correct use of attribute access plist

    * Remove debug code

    * Remove unused variable

    * Change file access to read only for java tests

    * Split clang format operations.

    * More javadoc comments

    * Remove pre-split setting

    * format source

    * Change windows TS to use older VS.

    * Mostly all javadoc fixes, one argument rename.

    * synch file

    * Merge of long double fix and compiler flags

    * HDFFV-11229 merge changes from develop

    * HDFFV-11229 correct test script

    * HDFFV-11229 update autotools test script for two ref files

    * HDFFV-11229 merge dev changes for long double display in tools

    * Committing clang-format changes

    * minor whitespace

    * remove unneeded macro

    * Committing clang-format changes

    * Add "option" command for clang options

    * Rework CMake add_custom to use the BYPRODUCTS argument

    Update pkgconfig scripts for parallel builds.
    Fix install COPYING file reference.
    Remove unused round defines.
    Change CMake default setting of BUILD_CPP to off.

    * Fortran target depends

    * Remove incorrect source attribute

    * Revert define removal

    * printf specifiers and VS2015 min changes

    * Committing clang-format changes

    * Add time struct

    * TRILAB-227 and tools debug merges from develop

    * Merge various changes from dev

    * Issue #669 remove version from pkgcfg filename

    * remove version from h5cc script

    * doxygen changes merged from develop

    * Committing clang-format changes

    * Merge CMake fortran ninja changes from dev

    * Enable fortran to gcc yaml

    * Refactor Fortran CMake config tests and CMake test args

    * Merge warnings files fixes from develop

    * Fix cmake configure path

    * Update missing release note info.

    * Update code owners

    * Add known problem

    * Use only core library for testing dynamic plugins.

    CMake uses H5_HAVE_DIRECT instead of DIRECT_VFD

    Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>

commit bfb780a444
Author: Allen Byrne <50328838+byrnHDF@users.noreply.github.com>
Date:   Wed Jun 23 14:11:46 2021 -0500

    Hdf5 1 10 Release Note (#786)

    * HDFFV-10865 - merge from dev, HDFArray perf fix.

    * Remove duplicate setting

    * Whitespace changes after clang format

    * Undo version 11 clang format changes

    * Merge CMake changes from develop

    * test testing script merge from develop

    * Update supported platforms

    * PR#3 merge from develop

    * Merge gcc 10 diagnostics option from develop

    * Merge #318 OSX changes from develop

    * Merge small changes from develop

    * Minor non-space formatting changes

    * #386 copyright corrections for java folder

    * Merges from develop

    #358 patches from vtk
    #361 fix header guard spelling

    * Merge updates

    #358 patches from vtk
    #361 fix header guard spelling

    * format fix

    * Fix missing underscore and make H5public.h closer to dev

    * Merges from develop

    #340 clang -Wformat-security warnings
    #360 Fixed uninitialized warnings
    header guard underscore cleanup
    JNI cleanup

    * format alignment

    * Add missing test ref file

    * Merge #380 from develop

    * Finish java merges from develop

    * Fix java issues with tests and javadoc

    * Correct use of attribute access plist

    * Remove debug code

    * Remove unused variable

    * Change file access to read only for java tests

    * Split clang format operations.

    * More javadoc comments

    * Remove pre-split setting

    * format source

    * Change windows TS to use older VS.

    * Mostly all javadoc fixes, one argument rename.

    * synch file

    * Merge of long double fix and compiler flags

    * HDFFV-11229 merge changes from develop

    * HDFFV-11229 correct test script

    * HDFFV-11229 update autotools test script for two ref files

    * HDFFV-11229 merge dev changes for long double display in tools

    * Committing clang-format changes

    * minor whitespace

    * remove unneeded macro

    * Committing clang-format changes

    * Add "option" command for clang options

    * Rework CMake add_custom to use the BYPRODUCTS argument

    Update pkgconfig scripts for parallel builds.
    Fix install COPYING file reference.
    Remove unused round defines.
    Change CMake default setting of BUILD_CPP to off.

    * Fortran target depends

    * Remove incorrect source attribute

    * Revert define removal

    * printf specifiers and VS2015 min changes

    * Committing clang-format changes

    * Add time struct

    * TRILAB-227 and tools debug merges from develop

    * Merge various changes from dev

    * Issue #669 remove version from pkgcfg filename

    * remove version from h5cc script

    * doxygen changes merged from develop

    * Committing clang-format changes

    * Merge CMake fortran ninja changes from dev

    * Enable fortran to gcc yaml

    * Refactor Fortran CMake config tests and CMake test args

    * Merge warnings files fixes from develop

    * Fix cmake configure path

    * Update missing release note info.

    * Update code owners

    * Add known problem

    Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>

commit 9f50407368
Author: Allen Byrne <50328838+byrnHDF@users.noreply.github.com>
Date:   Tue Jun 22 07:03:26 2021 -0500

    Hdf5 1 10 Update missing release note info. (#778)

    * HDFFV-10865 - merge from dev, HDFArray perf fix.

    * Remove duplicate setting

    * Whitespace changes after clang format

    * Undo version 11 clang format changes

    * Merge CMake changes from develop

    * test testing script merge from develop

    * Update supported platforms

    * PR#3 merge from develop

    * Merge gcc 10 diagnostics option from develop

    * Merge #318 OSX changes from develop

    * Merge small changes from develop

    * Minor non-space formatting changes

    * #386 copyright corrections for java folder

    * Merges from develop

    #358 patches from vtk
    #361 fix header guard spelling

    * Merge updates

    #358 patches from vtk
    #361 fix header guard spelling

    * format fix

    * Fix missing underscore and make H5public.h closer to dev

    * Merges from develop

    #340 clang -Wformat-security warnings
    #360 Fixed uninitialized warnings
    header guard underscore cleanup
    JNI cleanup

    * format alignment

    * Add missing test ref file

    * Merge #380 from develop

    * Finish java merges from develop

    * Fix java issues with tests and javadoc

    * Correct use of attribute access plist

    * Remove debug code

    * Remove unused variable

    * Change file access to read only for java tests

    * Split clang format operations.

    * More javadoc comments

    * Remove pre-split setting

    * format source

    * Change windows TS to use older VS.

    * Mostly all javadoc fixes, one argument rename.

    * synch file

    * Merge of long double fix and compiler flags

    * HDFFV-11229 merge changes from develop

    * HDFFV-11229 correct test script

    * HDFFV-11229 update autotools test script for two ref files

    * HDFFV-11229 merge dev changes for long double display in tools

    * Committing clang-format changes

    * minor whitespace

    * remove unneeded macro

    * Committing clang-format changes

    * Add "option" command for clang options

    * Rework CMake add_custom to use the BYPRODUCTS argument

    Update pkgconfig scripts for parallel builds.
    Fix install COPYING file reference.
    Remove unused round defines.
    Change CMake default setting of BUILD_CPP to off.

    * Fortran target depends

    * Remove incorrect source attribute

    * Revert define removal

    * printf specifiers and VS2015 min changes

    * Committing clang-format changes

    * Add time struct

    * TRILAB-227 and tools debug merges from develop

    * Merge various changes from dev

    * Issue #669 remove version from pkgcfg filename

    * remove version from h5cc script

    * doxygen changes merged from develop

    * Committing clang-format changes

    * Merge CMake fortran ninja changes from dev

    * Enable fortran to gcc yaml

    * Refactor Fortran CMake config tests and CMake test args

    * Merge warnings files fixes from develop

    * Fix cmake configure path

    * Update missing release note info.

    * Update code owners

    Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>

commit 2e80c9cdec
Author: Dana Robinson <43805+derobins@users.noreply.github.com>
Date:   Fri Jun 18 06:42:23 2021 -0700

    Brings hash table IDs feature from develop/1.12 (#768)

    * Brings updated tid test from develop

    * Adds empty H5Iint.c and H5Idbg.c files

    * H5I renaming to match 1.12/develop

    * Splits off H5I debug code to H5Idbg.c

    * Splits internal H5I.c functionality to H5Iint.c

    * Header cleanup

    * More renaming cleanup to match develop/1.12

    * Adds "save last ID" optimization

    * Adds uthash.h

    * Adds hash table IDs from develop/1.12

    * Committing clang-format changes

    Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>

commit 1e29bcbfe2
Author: Allen Byrne <50328838+byrnHDF@users.noreply.github.com>
Date:   Thu Jun 17 11:21:43 2021 -0500

    Hdf5 1 10 Fix cmake configure path (#762)

    * HDFFV-10865 - merge from dev, HDFArray perf fix.

    * Remove duplicate setting

    * Whitespace changes after clang format

    * Undo version 11 clang format changes

    * Merge CMake changes from develop

    * test testing script merge from develop

    * Update supported platforms

    * PR#3 merge from develop

    * Merge gcc 10 diagnostics option from develop

    * Merge #318 OSX changes from develop

    * Merge small changes from develop

    * Minor non-space formatting changes

    * #386 copyright corrections for java folder

    * Merges from develop

    #358 patches from vtk
    #361 fix header guard spelling

    * Merge updates

    #358 patches from vtk
    #361 fix header guard spelling

    * format fix

    * Fix missing underscore and make H5public.h closer to dev

    * Merges from develop

    #340 clang -Wformat-security warnings
    #360 Fixed uninitialized warnings
    header guard underscore cleanup
    JNI cleanup

    * format alignment

    * Add missing test ref file

    * Merge #380 from develop

    * Finish java merges from develop

    * Fix java issues with tests and javadoc

    * Correct use of attribute access plist

    * Remove debug code

    * Remove unused variable

    * Change file access to read only for java tests

    * Split clang format operations.

    * More javadoc comments

    * Remove pre-split setting

    * format source

    * Change windows TS to use older VS.

    * Mostly all javadoc fixes, one argument rename.

    * synch file

    * Merge of long double fix and compiler flags

    * HDFFV-11229 merge changes from develop

    * HDFFV-11229 correct test script

    * HDFFV-11229 update autotools test script for two ref files

    * HDFFV-11229 merge dev changes for long double display in tools

    * Committing clang-format changes

    * minor whitespace

    * remove unneeded macro

    * Committing clang-format changes

    * Add "option" command for clang options

    * Rework CMake add_custom to use the BYPRODUCTS argument

    Update pkgconfig scripts for parallel builds.
    Fix install COPYING file reference.
    Remove unused round defines.
    Change CMake default setting of BUILD_CPP to off.

    * Fortran target depends

    * Remove incorrect source attribute

    * Revert define removal

    * printf specifiers and VS2015 min changes

    * Committing clang-format changes

    * Add time struct

    * TRILAB-227 and tools debug merges from develop

    * Merge various changes from dev

    * Issue #669 remove version from pkgcfg filename

    * remove version from h5cc script

    * doxygen changes merged from develop

    * Committing clang-format changes

    * Merge CMake fortran ninja changes from dev

    * Enable fortran to gcc yaml

    * Refactor Fortran CMake config tests and CMake test args

    * Merge warnings files fixes from develop

    * Fix cmake configure path

    Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>

commit 475cdaf431
Author: Allen Byrne <50328838+byrnHDF@users.noreply.github.com>
Date:   Wed Jun 16 15:45:58 2021 -0500

    Hdf5 1 10 merge warnings changes (#756)

    * HDFFV-10865 - merge from dev, HDFArray perf fix.

    * Remove duplicate setting

    * Whitespace changes after clang format

    * Undo version 11 clang format changes

    * Merge CMake changes from develop

    * test testing script merge from develop

    * Update supported platforms

    * PR#3 merge from develop

    * Merge gcc 10 diagnostics option from develop

    * Merge #318 OSX changes from develop

    * Merge small changes from develop

    * Minor non-space formatting changes

    * #386 copyright corrections for java folder

    * Merges from develop

    #358 patches from vtk
    #361 fix header guard spelling

    * Merge updates

    #358 patches from vtk
    #361 fix header guard spelling

    * format fix

    * Fix missing underscore and make H5public.h closer to dev

    * Merges from develop

    #340 clang -Wformat-security warnings
    #360 Fixed uninitialized warnings
    header guard underscore cleanup
    JNI cleanup

    * format alignment

    * Add missing test ref file

    * Merge #380 from develop

    * Finish java merges from develop

    * Fix java issues with tests and javadoc

    * Correct use of attribute access plist

    * Remove debug code

    * Remove unused variable

    * Change file access to read only for java tests

    * Split clang format operations.

    * More javadoc comments

    * Remove pre-split setting

    * format source

    * Change windows TS to use older VS.

    * Mostly all javadoc fixes, one argument rename.

    * synch file

    * Merge of long double fix and compiler flags

    * HDFFV-11229 merge changes from develop

    * HDFFV-11229 correct test script

    * HDFFV-11229 update autotools test script for two ref files

    * HDFFV-11229 merge dev changes for long double display in tools

    * Committing clang-format changes

    * minor whitespace

    * remove unneeded macro

    * Committing clang-format changes

    * Add "option" command for clang options

    * Rework CMake add_custom to use the BYPRODUCTS argument

    Update pkgconfig scripts for parallel builds.
    Fix install COPYING file reference.
    Remove unused round defines.
    Change CMake default setting of BUILD_CPP to off.

    * Fortran target depends

    * Remove incorrect source attribute

    * Revert define removal

    * printf specifiers and VS2015 min changes

    * Committing clang-format changes

    * Add time struct

    * TRILAB-227 and tools debug merges from develop

    * Merge various changes from dev

    * Issue #669 remove version from pkgcfg filename

    * remove version from h5cc script

    * doxygen changes merged from develop

    * Committing clang-format changes

    * Merge CMake fortran ninja changes from dev

    * Enable fortran to gcc yaml

    * Refactor Fortran CMake config tests and CMake test args

    * Merge warnings files fixes from develop

    Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>

commit e25980e7f3
Author: Allen Byrne <50328838+byrnHDF@users.noreply.github.com>
Date:   Tue Jun 8 14:37:13 2021 -0500

    Hdf5 1 10 merges of CMake changes (#738)

    * HDFFV-10865 - merge from dev, HDFArray perf fix.

    * Remove duplicate setting

    * Whitespace changes after clang format

    * Undo version 11 clang format changes

    * Merge CMake changes from develop

    * test testing script merge from develop

    * Update supported platforms

    * PR#3 merge from develop

    * Merge gcc 10 diagnostics option from develop

    * Merge #318 OSX changes from develop

    * Merge small changes from develop

    * Minor non-space formatting changes

    * #386 copyright corrections for java folder

    * Merges from develop

    #358 patches from vtk
    #361 fix header guard spelling

    * Merge updates

    #358 patches from vtk
    #361 fix header guard spelling

    * format fix

    * Fix missing underscore and make H5public.h closer to dev

    * Merges from develop

    #340 clang -Wformat-security warnings
    #360 Fixed uninitialized warnings
    header guard underscore cleanup
    JNI cleanup

    * format alignment

    * Add missing test ref file

    * Merge #380 from develop

    * Finish java merges from develop

    * Fix java issues with tests and javadoc

    * Correct use of attribute access plist

    * Remove debug code

    * Remove unused variable

    * Change file access to read only for java tests

    * Split clang format operations.

    * More javadoc comments

    * Remove pre-split setting

    * format source

    * Change windows TS to use older VS.

    * Mostly all javadoc fixes, one argument rename.

    * synch file

    * Merge of long double fix and compiler flags

    * HDFFV-11229 merge changes from develop

    * HDFFV-11229 correct test script

    * HDFFV-11229 update autotools test script for two ref files

    * HDFFV-11229 merge dev changes for long double display in tools

    * Committing clang-format changes

    * minor whitespace

    * remove unneeded macro

    * Committing clang-format changes

    * Add "option" command for clang options

    * Rework CMake add_custom to use the BYPRODUCTS argument

    Update pkgconfig scripts for parallel builds.
    Fix install COPYING file reference.
    Remove unused round defines.
    Change CMake default setting of BUILD_CPP to off.

    * Fortran target depends

    * Remove incorrect source attribute

    * Revert define removal

    * printf specifiers and VS2015 min changes

    * Committing clang-format changes

    * Add time struct

    * TRILAB-227 and tools debug merges from develop

    * Merge various changes from dev

    * Issue #669 remove version from pkgcfg filename

    * remove version from h5cc script

    * doxygen changes merged from develop

    * Committing clang-format changes

    * Merge CMake fortran ninja changes from dev

    * Enable fortran to gcc yaml

    * Refactor Fortran CMake config tests and CMake test args

    Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>

commit 061b23ac00
Author: Larry Knox <lrknox@hdfgroup.org>
Date:   Thu Jun 3 16:07:23 2021 -0500

    Partial merge issue #642 develop branch PRs to Hdf5 1 10 (#718)

    * Revert addition of & to 2 parameters in DSetCreatPropList::setVirtual to
    maintain binary compatibility.

    * Fix H5Eget_auto2/H5Eauto_is_v2 to not clear error stack (#625)

    * Removes gratuitous (double)x.yF casts (#632)

    * Committing clang-format changes

    * Removes gratuitous (double)x.yF casts

    * Committing clang-format changes

    Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>

    * Cleans up a const warning left over from previous constification (#633)

    * Committing clang-format changes

    * Adds consts to a few global variables

    * Cleans up a const warning left over from previous constification

    Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>

    * Purges UFAIL from the library (#637)

    * Committing clang-format changes

    * Purges UFAIL from the library

    * H5HL_insert change requested in PR

    Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>

    * Bmr dev hdffv 11223 (#640)

    * Fixed HDFFV-11223 (CVE-2018-14460)

    Description
        - Added checks against buffer size to prevent segfault, in case of data
          corruption, for sdim->size and sdim->max.
        - Renamed data files in an existing test to shorten their length
          as agreed with other developers previously.
    Platforms tested:
        Linux/64 (jelly)

    * Committing clang-format changes

    * Updated for test files

    * Updated for HDFFV-11223

    Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>

    * Committing clang-format changes

    * Restore "error:" in line 2666.

    * Revert "Fix H5Eget_auto2/H5Eauto_is_v2 to not clear error stack (#625)"

    This reverts commit 426b504848.

    Co-authored-by: jhendersonHDF <jhenderson@hdfgroup.org>
    Co-authored-by: Dana Robinson <43805+derobins@users.noreply.github.com>
    Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
    Co-authored-by: bmribler <39579120+bmribler@users.noreply.github.com>

* (fix) Segmentation fault when using a compound type. (#143)

* (fix) Segmentation fault when using a compound type.

In the case when a compounded attribute is written to dataset
followed by writing the data with a data transform function
to the dataset will result in a segmentation fault. It turns out
the data is classified as compounded while it is not. Now, the
state is always reset first to not compounded followed by the
existing check if the variable is compounded.

* (fix) Removed undesired comment lines.

* (fix) Segmentation fault when using a compound type: added test.

* (fix) Added the missing cmpd_transform.c file to MANIFEST.

* (fix) cmpd_dtransform test: autotools and source header.

Added the cmp_dtransform test to the autotools configuration and
updated the HDF Group copyright header.

Co-authored-by: Jan-Willem Blokland <Jan-Willem.Blokland@Shell.com>

* (fix) H5Z_xform_create function and scientific notation (#144)

* (fix) H5Z_xform_create function and scientific notation

Implemented a more sophisticated check to support scientific notation
in the expression of the H5Zset_data_transform function.

* (fix) H5Z_xform_create and scientific notation: Added test.

Added a test to demonstrate that the parsing of expression
which includes scientific notation works correctly. Improved
inline comment.

Co-authored-by: Jan-Willem Blokland <Jan-Willem.Blokland@Shell.com>

* Adds const to a few global variables (#623)

* Committing clang-format changes

* Adds consts to a few global variables

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>

* Made private my_yyinput function static (#618)

This prevents it being exported as a public symbol.

* Reduces overly-pedantic casting in the public headers (#644)

* Committing clang-format changes

* Fixes overly pedantic casting in public headers

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>

* Use internal version of H5Eprint2 to avoid possible stack overflow (#661)

* Fixes for a couple of trivial warnings (#676)

* Committing clang-format changes

* Trivial warning fixes:

* Removes an unused done target in H5Tbit.c
* Add (void) to quiet "ignored return value" warnings in the generators
  (which generally ignore errors)

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>

* Removes alternative function enter/leave macro scheme (#678)

* Committing clang-format changes

* Converted BEGIN_FUNC, etc. macros to FUNC_ENTER

* Rips out the BEGIN_FUNC, etc. macros

* Removes 'end if', etc. comments from H5HL package

* Committing clang-format changes

* Fixes an H5EA iterate issue

* Fixes an issue in the H5FA iterator code

* Further cleanup in bin/trace after macro removal

* Iterator changes in H5EA and H5FA

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>

* Various CMake changes (#679)

* Committing clang-format changes

* Several CMake updates:

* Removes unused HDF5_ENABLE_HSIZET
* Switches TEST_SHELL_SCRIPTS to ON
* Sets SH_PROGRAM to bash instead of sh

* Set default build type back to RelWithDebInfo

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>

* Revert "Removes alternative function enter/leave macro scheme (#678)"

This reverts commit edddb11b79.

* err_compat test cleanup (#681)

* Committing clang-format changes

* Cleans up err_compat test and output

* Formatted source

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>

* Sets the memory alloc sanity check option to disabled in autotools (#686)

* Revert "Sets the memory alloc sanity check option to disabled in autotools (#686)"

This reverts commit 652ffca586.

(Only for release branch).

* Removes alternative function enter/leave macro scheme (#678)

* Committing clang-format changes

* Converted BEGIN_FUNC, etc. macros to FUNC_ENTER

* Rips out the BEGIN_FUNC, etc. macros

* Removes 'end if', etc. comments from H5HL package

* Committing clang-format changes

* Fixes an H5EA iterate issue

* Fixes an issue in the H5FA iterator code

* Further cleanup in bin/trace after macro removal

* Iterator changes in H5EA and H5FA

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>

* Committing clang-format changes

Co-authored-by: jhendersonHDF <jhenderson@hdfgroup.org>
Co-authored-by: Dana Robinson <43805+derobins@users.noreply.github.com>
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: bmribler <39579120+bmribler@users.noreply.github.com>
Co-authored-by: Jan-Willem Blokland <J.W.S.Blokland@XS4All.nl>
Co-authored-by: Jan-Willem Blokland <Jan-Willem.Blokland@Shell.com>
Co-authored-by: Sean McBride <sean@rogue-research.com>
2021-07-16 10:57:51 -05:00

1034 lines
34 KiB
CMake

# Copyright by The HDF Group.
# All rights reserved.
#
# This file is part of HDF5. The full HDF5 copyright notice, including
# terms governing use, modification, and redistribution, is contained in
# the COPYING file, which can be found at the root of the source code
# distribution tree, or in https://www.hdfgroup.org/licenses.
# If you do not have access to either file, you may request a copy from
# help@hdfgroup.org.
#
##############################################################################
##############################################################################
### T E S T I N G ###
##############################################################################
##############################################################################
# make test dir
file (MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/H5TEST")
file (MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/H5TEST/testfiles")
file (MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/H5TEST/testfiles/plist_files")
# --------------------------------------------------------------------
# Copy all the HDF5 files from the source directory into the test directory
# --------------------------------------------------------------------
set (HDF5_TEST_FILES
tnullspace.h5
)
add_custom_command (
TARGET accum_swmr_reader
POST_BUILD
COMMAND ${CMAKE_COMMAND}
ARGS -E copy_if_different "$<TARGET_FILE:accum_swmr_reader>" "${PROJECT_BINARY_DIR}/H5TEST/accum_swmr_reader"
)
foreach (h5_tfile ${HDF5_TEST_FILES})
HDFTEST_COPY_FILE("${HDF5_TOOLS_DIR}/testfiles/${h5_tfile}" "${PROJECT_BINARY_DIR}/H5TEST/${h5_tfile}" "HDF5_TEST_LIB_files")
endforeach ()
# --------------------------------------------------------------------
# Copy all the HDF5 files from the test directory into the source directory
# --------------------------------------------------------------------
set (HDF5_REFERENCE_FILES
err_compat_1
err_compat_2
error_test_1
error_test_2
links_env.out
)
foreach (ref_file ${HDF5_REFERENCE_FILES})
HDFTEST_COPY_FILE("${HDF5_TEST_SOURCE_DIR}/testfiles/${ref_file}" "${PROJECT_BINARY_DIR}/H5TEST/${ref_file}" "HDF5_TEST_LIB_files")
endforeach ()
# --------------------------------------------------------------------
# Copy test files from test/testfiles/plist_files dir to test dir
# --------------------------------------------------------------------
set (HDF5_REFERENCE_PLIST_FILES
acpl_32be
acpl_32le
acpl_64be
acpl_64le
dapl_32be
dapl_32le
dapl_64be
dapl_64le
dcpl_32be
dcpl_32le
dcpl_64be
dcpl_64le
dxpl_32be
dxpl_32le
dxpl_64be
dxpl_64le
fapl_32be
fapl_32le
fapl_64be
fapl_64le
fcpl_32be
fcpl_32le
fcpl_64be
fcpl_64le
gcpl_32be
gcpl_32le
gcpl_64be
gcpl_64le
lapl_32be
lapl_32le
lapl_64be
lapl_64le
lcpl_32be
lcpl_32le
lcpl_64be
lcpl_64le
ocpl_32be
ocpl_32le
ocpl_64be
ocpl_64le
ocpypl_32be
ocpypl_32le
ocpypl_64be
ocpypl_64le
strcpl_32be
strcpl_32le
strcpl_64be
strcpl_64le
)
foreach (plistfile ${HDF5_REFERENCE_PLIST_FILES})
HDFTEST_COPY_FILE("${HDF5_TEST_SOURCE_DIR}/testfiles/plist_files/${plistfile}" "${PROJECT_BINARY_DIR}/H5TEST/testfiles/plist_files/${plistfile}" "HDF5_TEST_LIB_files")
HDFTEST_COPY_FILE("${HDF5_TEST_SOURCE_DIR}/testfiles/plist_files/def_${plistfile}" "${PROJECT_BINARY_DIR}/H5TEST/testfiles/plist_files/def_${plistfile}" "HDF5_TEST_LIB_files")
endforeach ()
# --------------------------------------------------------------------
#-- Copy all the HDF5 files from the test directory into the source directory
# --------------------------------------------------------------------
set (HDF5_REFERENCE_TEST_FILES
aggr.h5
bad_compound.h5
bad_offset.h5
be_data.h5
be_extlink1.h5
be_extlink2.h5
bounds_ref_earliest_latest.h5
bounds_ref_latest_latest.h5
bounds_ref_v110_v110.h5
bounds_ref_v112_v112.h5
bounds_ref_v18_v18.h5
bounds_sel_earliest_latest.h5
bounds_sel_latest_latest.h5
bounds_sel_v110_v110.h5
bounds_sel_v112_v112.h5
btree_idx_1_6.h5
btree_idx_1_8.h5
corrupt_stab_msg.h5
deflate.h5
family_v16_00000.h5
family_v16_00001.h5
family_v16_00002.h5
family_v16_00003.h5
file_image_core_test.h5
filespace_1_6.h5
filespace_1_8.h5
fill_old.h5
fill18.h5
filter_error.h5
fsm_aggr_nopersist.h5
fsm_aggr_persist.h5
group_old.h5
h5fc_ext1_i.h5
h5fc_ext1_f.h5
h5fc_ext2_if.h5
h5fc_ext2_sf.h5
h5fc_ext3_isf.h5
h5fc_ext_none.h5
le_data.h5
le_extlink1.h5
le_extlink2.h5
corrupted_name_len.h5
mergemsg.h5
multi_file_v16-r.h5
multi_file_v16-s.h5
noencoder.h5
none.h5
paged_nopersist.h5
paged_persist.h5
specmetaread.h5
tarrold.h5
tbad_msg_count.h5
tbogus.h5
test_filters_be.h5
test_filters_le.h5
th5s.h5
tlayouto.h5
tmtimen.h5
tmtimeo.h5
tsizeslheap.h5
)
foreach (h5_file ${HDF5_REFERENCE_TEST_FILES})
HDFTEST_COPY_FILE("${HDF5_TEST_SOURCE_DIR}/${h5_file}" "${HDF5_TEST_BINARY_DIR}/H5TEST/${h5_file}" "HDF5_TEST_LIB_files")
endforeach ()
add_custom_target(HDF5_TEST_LIB_files ALL COMMENT "Copying files needed by HDF5_TEST_LIB tests" DEPENDS ${HDF5_TEST_LIB_files_list})
set (testhdf5_CLEANFILES
coord.h5
dtypes10.h5
sys_file1
tattr.h5
tfile1.h5
tfile2.h5
tfile3.h5
tfile4.h5
tfile5.h5
tfile6.h5
tfile7.h5
tfilespace.h5
th5o_file
th5s1.h5
tselect.h5
tsohm.h5
tsohm_dst.h5
tsohm_src.h5
)
# Remove any output file left over from previous test run
add_test (
NAME H5TEST-testhdf5-clear-objects
COMMAND ${CMAKE_COMMAND} -E remove ${testhdf5_CLEANFILES}
WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST
)
set_tests_properties (H5TEST-testhdf5-clear-objects PROPERTIES FIXTURES_SETUP clear_testhdf5)
add_test (NAME H5TEST-testhdf5-base COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:testhdf5> -x heap -x file -x select)
set_tests_properties (H5TEST-testhdf5-base PROPERTIES
FIXTURES_REQUIRED clear_testhdf5
ENVIRONMENT "HDF5_ALARM_SECONDS=3600;srcdir=${HDF5_TEST_BINARY_DIR}/H5TEST"
WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST
)
add_test (NAME H5TEST-testhdf5-heap COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:testhdf5> -o heap)
set_tests_properties (H5TEST-testhdf5-heap PROPERTIES
FIXTURES_REQUIRED clear_testhdf5
ENVIRONMENT "HDF5_ALARM_SECONDS=3600;srcdir=${HDF5_TEST_BINARY_DIR}/H5TEST"
WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST
)
add_test (NAME H5TEST-testhdf5-file COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:testhdf5> -o file)
set_tests_properties (H5TEST-testhdf5-file PROPERTIES
FIXTURES_REQUIRED clear_testhdf5
ENVIRONMENT "HDF5_ALARM_SECONDS=3600;srcdir=${HDF5_TEST_BINARY_DIR}/H5TEST"
WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST
)
add_test (NAME H5TEST-testhdf5-select COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:testhdf5> -o select)
set_tests_properties (H5TEST-testhdf5-select PROPERTIES
FIXTURES_REQUIRED clear_testhdf5
ENVIRONMENT "HDF5_ALARM_SECONDS=3600;srcdir=${HDF5_TEST_BINARY_DIR}/H5TEST"
WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST
)
##############################################################################
##############################################################################
### T H E T E S T S M A C R O S ###
##############################################################################
##############################################################################
set (test_CLEANFILES
accum.h5
cmpd_dset.h5
compact_dataset.h5
dataset.h5
dset_offset.h5
max_compact_dataset.h5
simple.h5
set_local.h5
random_chunks.h5
huge_chunks.h5
chunk_cache.h5
big_chunk.h5
chunk_fast.h5
chunk_expand.h5
chunk_fixed.h5
copy_dcpl_newfile.h5
partial_chunks.h5
layout_extend.h5
zero_chunk.h5
chunk_single.h5
swmr_non_latest.h5
earray_hdr_fd.h5
farray_hdr_fd.h5
bt2_hdr_fd.h5
storage_size.h5
dls_01_strings.h5
extend.h5
istore.h5
extlinks*.h5
frspace.h5
links*.h5
sys_file1
tfile*.h5
th5s*.h5
lheap.h5
fheap.h5
ohdr.h5
ohdr_min_a.h5
ohdr_min_b.h5
min_dset_ohdr_testfile.h5
stab.h5
extern_*.h5
extern_*.raw
gheap*.h5
dt_arith1
dt_arith2
links.h5
links*.h5
extlinks16A00000.h5
extlinks16A00001.h5
extlinks16A00002.h5
extlinks16B-b.h5
extlinks16B-g.h5
extlinks16B-l.h5
extlinks16B-r.h5
extlinks16B-s.h5
extlinks19B00000.h5
extlinks19B00001.h5
extlinks19B00002.h5
extlinks19B00003.h5
extlinks19B00004.h5
extlinks19B00005.h5
extlinks19B00006.h5
extlinks19B00007.h5
extlinks19B00008.h5
extlinks19B00009.h5
extlinks19B00010.h5
extlinks19B00011.h5
extlinks19B00012.h5
extlinks19B00013.h5
extlinks19B00014.h5
extlinks19B00015.h5
extlinks19B00016.h5
extlinks19B00017.h5
extlinks19B00018.h5
extlinks19B00019.h5
extlinks19B00020.h5
extlinks19B00021.h5
extlinks19B00022.h5
extlinks19B00023.h5
extlinks19B00024.h5
extlinks19B00025.h5
extlinks19B00026.h5
extlinks19B00027.h5
extlinks19B00028.h5
big.data
big*.h5
stdio.h5
sec2.h5
dtypes0.h5
dtypes1.h5
dtypes2.h5
dtypes3.h5
dtypes4.h5
dtypes5.h5
dtypes6.h5
dtypes7.h5
dtypes8.h5
dtypes9.h5
dtypes10.h5
dt_arith1.h5
dt_arith2.h5
tattr.h5
tselect.h5
mtime.h5
unlink.h5
unicode.h5
coord.h5
fillval_*.h5
fillval.raw
mount_*.h5
testmeta.h5
ttime.h5
trefer1.h5
trefer2.h5
trefer3.h5
tvltypes.h5
tvlstr.h5
tvlstr2.h5
twriteorder.dat
enum1.h5
titerate.h5
ttsafe.h5
tarray1.h5
tgenprop.h5
tmisc*.h5
set_extent1.h5
set_extent2.h5
set_extent3.h5
set_extent4.h5
set_extent5.h5
ext1.bin
ext2.bin
getname.h5
getname1.h5
getname2.h5
getname3.h5
sec2_file.h5
direct_file.h5
family_file000*.h5
new_family_v16_000*.h5
multi_file-r.h5
multi_file-s.h5
core_file
filter_plugin.h5
new_move_a.h5
new_move_b.h5
ntypes.h5
dangle.h5
error_test.h5
err_compat.h5
dtransform.h5
test_filters.h5
get_file_name.h5
tstint1.h5
tstint2.h5
unlink_chunked.h5
btree2.h5
btree2_tmp.h5
objcopy_src.h5
objcopy_dst.h5
objcopy_ext.dat
trefer1.h5
trefer2.h5
app_ref.h5
farray.h5
farray_tmp.h5
earray.h5
earray_tmp.h5
efc0.h5
efc1.h5
efc2.h5
efc3.h5
efc4.h5
efc5.h5
log_vfd_out.log
new_multi_file_v16-r.h5
new_multi_file_v16-s.h5
split_get_file_image_test-m.h5
split_get_file_image_test-r.h5
file_image_core_test.h5.copy
unregister_filter_1.h5
unregister_filter_2.h5
vds_virt.h5
vds_dapl.h5
vds_src_0.h5
vds_src_1.h5
swmr_data.h5
use_use_append_chunk.h5
use_append_mchunks.h5
use_disable_mdc_flushes.h5
tbogus.h5.copy
flushrefresh.h5
flushrefresh_VERIFICATION_START
flushrefresh_VERIFICATION_CHECKPOINT1
flushrefresh_VERIFICATION_CHECKPOINT2
flushrefresh_VERIFICATION_DONE
filenotclosed.h5
del_many_dense_attrs.h5
atomic_data
accum_swmr_big.h5
ohdr_swmr.h5
test_swmr*.h5
cache_logging.h5
cache_logging.out
vds_swmr.h5
vds_swmr_src_*.h5
tmp_vds_env/vds_src_2.h5
direct_chunk.h5
splitter*.h5
splitter.log
mirror_rw/*
mirror_wo/*
)
# Remove any output file left over from previous test run
add_test (
NAME H5TEST-clear-objects
COMMAND ${CMAKE_COMMAND} -E remove ${test_CLEANFILES}
WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST
)
set_tests_properties (H5TEST-clear-objects PROPERTIES FIXTURES_SETUP clear_H5TEST)
set (H5TEST_SEPARATE_TESTS
testhdf5
cache
cache_image
external_env
flush1
flush2
vds_env
)
foreach (h5_test ${H5_TESTS})
if (NOT h5_test IN_LIST H5TEST_SEPARATE_TESTS)
if (HDF5_ENABLE_USING_MEMCHECKER)
add_test (NAME H5TEST-${h5_test} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:${h5_test}>)
set_tests_properties (H5TEST-${h5_test} PROPERTIES
FIXTURES_REQUIRED clear_objects
ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/H5TEST"
WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST
)
else ()
if ("${h5_test}" STREQUAL "big" AND CYGWIN)
add_test (NAME H5TEST-${h5_test}
COMMAND ${CMAKE_COMMAND} -E echo "SKIP ${test}"
)
else ()
add_test (NAME H5TEST-${h5_test} COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
-D "TEST_PROGRAM=$<TARGET_FILE:${h5_test}>"
-D "TEST_ARGS:STRING="
-D "TEST_EXPECT=0"
-D "TEST_SKIP_COMPARE=TRUE"
-D "TEST_OUTPUT=${h5_test}.txt"
-D "TEST_LIBRARY_DIRECTORY=${CMAKE_TEST_OUTPUT_DIRECTORY}"
#-D "TEST_REFERENCE=${test}.out"
-D "TEST_FOLDER=${HDF5_TEST_BINARY_DIR}/H5TEST"
-P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake"
)
endif ()
set_tests_properties (H5TEST-${h5_test} PROPERTIES
FIXTURES_REQUIRED clear_H5TEST
ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/H5TEST"
WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST
)
endif ()
endif ()
endforeach ()
set_tests_properties (H5TEST-fheap PROPERTIES TIMEOUT ${CTEST_VERY_LONG_TIMEOUT})
set_tests_properties (H5TEST-big PROPERTIES TIMEOUT ${CTEST_VERY_LONG_TIMEOUT})
set_tests_properties (H5TEST-btree2 PROPERTIES TIMEOUT ${CTEST_VERY_LONG_TIMEOUT})
set_tests_properties (H5TEST-objcopy PROPERTIES TIMEOUT ${CTEST_VERY_LONG_TIMEOUT})
#-- Adding test for cache
if (NOT CYGWIN)
add_test (
NAME H5TEST-cache-clear-objects
COMMAND ${CMAKE_COMMAND} -E remove cache_test.h5
WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST
)
set_tests_properties (H5TEST-cache-clear-objects PROPERTIES FIXTURES_SETUP clear_cache)
if (HDF5_ENABLE_USING_MEMCHECKER)
add_test (NAME H5TEST-cache COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:cache>)
else ()
add_test (NAME H5TEST-cache COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
-D "TEST_PROGRAM=$<TARGET_FILE:cache>"
-D "TEST_ARGS:STRING="
-D "TEST_EXPECT=0"
-D "TEST_SKIP_COMPARE=TRUE"
-D "TEST_OUTPUT=cache.txt"
#-D "TEST_REFERENCE=cache.out"
-D "TEST_FOLDER=${HDF5_TEST_BINARY_DIR}/H5TEST"
-P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake"
)
endif ()
set_tests_properties (H5TEST-cache PROPERTIES
FIXTURES_REQUIRED clear_cache
ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/H5TEST;HDF5TestExpress=${HDF_TEST_EXPRESS}"
WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST
)
set_tests_properties (H5TEST-cache PROPERTIES TIMEOUT ${CTEST_VERY_LONG_TIMEOUT})
endif ()
if (TEST_CACHE_IMAGE)
#-- Adding test for cache_image
add_test (
NAME H5TEST-cache_image-clear-objects
COMMAND ${CMAKE_COMMAND} -E remove cache_image_test.h5
WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST
)
set_tests_properties (H5TEST-cache_image-clear-objects PROPERTIES FIXTURES_SETUP clear_cache_image)
add_test (NAME H5TEST_cache_image COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:cache_image>)
set_tests_properties (H5TEST-cache_image PROPERTIES
FIXTURES_REQUIRED clear_cache_image
ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/H5TEST;HDF5TestExpress=${HDF_TEST_EXPRESS}"
WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST
)
endif ()
#-- Adding test for external_env
add_test (
NAME H5TEST-external_env-clear-objects
COMMAND ${CMAKE_COMMAND} -E remove
extern_1r.raw
extern_2r.raw
extern_3r.raw
extern_4r.raw
extern_1w.raw
extern_2w.raw
extern_3w.raw
extern_4w.raw
WORKING_DIRECTORY
${HDF5_TEST_BINARY_DIR}/H5TEST
)
set_tests_properties (H5TEST-external_env-clear-objects PROPERTIES FIXTURES_SETUP clear_external_env)
if (HDF5_ENABLE_USING_MEMCHECKER)
add_test (NAME H5TEST-external_env COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:external_env>)
else ()
add_test (NAME H5TEST-external_env COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
-D "TEST_PROGRAM=$<TARGET_FILE:external_env>"
-D "TEST_ARGS:STRING="
-D "TEST_ENV_VAR:STRING=HDF5_EXTFILE_PREFIX"
-D "TEST_ENV_VALUE:STRING=\${ORIGIN}"
-D "TEST_EXPECT=0"
-D "TEST_SKIP_COMPARE=TRUE"
-D "TEST_OUTPUT=external_env.txt"
#-D "TEST_REFERENCE=external_env.out"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/H5TEST"
-P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake"
)
endif ()
set_tests_properties (H5TEST-external_env PROPERTIES
FIXTURES_REQUIRED clear_external_env
ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/H5TEST;HDF5TestExpress=${HDF_TEST_EXPRESS}"
WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST
)
#-- Adding test for vds_env
add_test (
NAME H5TEST-vds_env-clear-objects
COMMAND ${CMAKE_COMMAND} -E remove
vds_virt_0.h5
vds_virt_3.h5
vds_src_2.h5
WORKING_DIRECTORY
${HDF5_TEST_BINARY_DIR}/H5TEST
)
set_tests_properties (H5TEST-vds_env-clear-objects PROPERTIES FIXTURES_SETUP clear_vds_env)
if (HDF5_ENABLE_USING_MEMCHECKER)
add_test (NAME H5TEST-vds_env COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:vds_env>)
else ()
add_test (NAME H5TEST-vds_env COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
-D "TEST_PROGRAM=$<TARGET_FILE:vds_env>"
-D "TEST_ARGS:STRING="
-D "TEST_ENV_VAR:STRING=HDF5_VDS_PREFIX"
-D "TEST_ENV_VALUE:STRING=\${ORIGIN}/tmp_vds_env"
-D "TEST_EXPECT=0"
-D "TEST_SKIP_COMPARE=TRUE"
-D "TEST_OUTPUT=vds_env.txt"
#-D "TEST_REFERENCE=vds_env.out"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/H5TEST"
-P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake"
)
endif ()
set_tests_properties (H5TEST-vds_env PROPERTIES
FIXTURES_REQUIRED clear_vds_env
ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/H5TEST;HDF5TestExpress=${HDF_TEST_EXPRESS}"
WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST
)
#-- Adding test for flush1/2
add_test (NAME H5TEST-flush-clear-objects
COMMAND ${CMAKE_COMMAND} -E remove
flush.h5
flush-swmr.h5
noflush.h5
noflush-swmr.h5
flush_extend.h5
flush_extend-swmr.h5
noflush_extend.h5
noflush_extend-swmr.h5
WORKING_DIRECTORY
${HDF5_TEST_BINARY_DIR}/H5TEST
)
set_tests_properties (H5TEST-flush-clear-objects PROPERTIES FIXTURES_SETUP clear_flush)
if (HDF5_ENABLE_USING_MEMCHECKER)
add_test (NAME H5TEST-flush1 COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:flush1>)
else ()
add_test (NAME H5TEST-flush1 COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
-D "TEST_PROGRAM=$<TARGET_FILE:flush1>"
-D "TEST_ARGS:STRING="
-D "TEST_EXPECT=0"
-D "TEST_SKIP_COMPARE=TRUE"
-D "TEST_OUTPUT=flush1.txt"
-D "TEST_FOLDER=${HDF5_TEST_BINARY_DIR}/H5TEST"
-P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake"
)
endif ()
set_tests_properties (H5TEST-flush1 PROPERTIES
FIXTURES_REQUIRED clear_flush
ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/H5TEST;HDF5TestExpress=${HDF_TEST_EXPRESS}"
WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST
)
if (HDF5_ENABLE_USING_MEMCHECKER)
add_test (NAME H5TEST-flush2 COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:flush2>)
else ()
add_test (NAME H5TEST-flush2 COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
-D "TEST_PROGRAM=$<TARGET_FILE:flush2>"
-D "TEST_ARGS:STRING="
-D "TEST_EXPECT=0"
-D "TEST_SKIP_COMPARE=TRUE"
-D "TEST_OUTPUT=flush2.txt"
-D "TEST_FOLDER=${HDF5_TEST_BINARY_DIR}/H5TEST"
-P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake"
)
endif ()
set_tests_properties (H5TEST-flush2 PROPERTIES
FIXTURES_REQUIRED clear_flush
DEPENDS H5TEST-flush1
)
#-- Adding test for tcheck_version
add_test (NAME H5TEST-tcheck_version-major COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:tcheck_version> "-tM")
set_tests_properties (H5TEST-tcheck_version-major PROPERTIES
WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST
WILL_FAIL "true"
)
add_test (NAME H5TEST-tcheck_version-minor COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:tcheck_version> "-tm")
set_tests_properties (H5TEST-tcheck_version-minor PROPERTIES
WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST
WILL_FAIL "true"
)
add_test (NAME H5TEST-tcheck_version-release COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:tcheck_version> "-tr")
set_tests_properties (H5TEST-tcheck_version-release PROPERTIES
WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST
WILL_FAIL "true"
)
##############################################################################
##############################################################################
### A D D I T I O N A L T E S T S ###
##############################################################################
##############################################################################
# H5_CHECK_TESTS
#---------------
# error_test
# err_compat
# testmeta
# atomic_writer
# atomic_reader
# links_env
# filenotclosed
# del_many_dense_attrs
# flushrefresh
##############################################################################
# autotools script tests
# error_test and err_compat are built at the same time as the other tests, but executed by testerror.sh.
# NOT CONVERTED accum_swmr_reader is used by accum.c.
# NOT CONVERTED atomic_writer and atomic_reader are standalone programs.
# links_env is used by testlinks_env.sh
# filenotclosed and del_many_dense_attrs are used by testabort_fail.sh
# NOT CONVERTED flushrefresh is used by testflushrefresh.sh.
# NOT CONVERTED use_append_chunk, use_append_mchunks and use_disable_mdc_flushes are used by test_usecases.sh
# NOT CONVERTED swmr_* files (besides swmr.c) are used by testswmr.sh.
# NOT CONVERTED vds_swmr_* files are used by testvdsswmr.sh
# NOT CONVERTED 'make check' doesn't run them directly, so they are not included in TEST_PROG.
# NOT CONVERTED Also build testmeta, which is used for timings test. It builds quickly,
# NOT CONVERTED and this lets automake keep all its test programs in one place.
##############################################################################
#-- Adding test for filenotclosed
add_test (
NAME H5TEST-filenotclosed-clear-objects
COMMAND ${CMAKE_COMMAND} -E remove filenotclosed.h5
WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST
)
set_tests_properties (H5TEST-filenotclosed-clear-objects PROPERTIES FIXTURES_SETUP clear_filenotclosed)
add_test (NAME H5TEST-filenotclosed COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:filenotclosed>)
set_tests_properties (H5TEST-filenotclosed PROPERTIES
FIXTURES_REQUIRED clear_filenotclosed
ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/H5TEST"
WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST
)
#-- Adding test for del_many_dense_attrs
add_test (
NAME H5TEST-del_many_dense_attrs-clear-objects
COMMAND ${CMAKE_COMMAND} -E remove del_many_dense_attrs.h5
WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST
)
set_tests_properties (H5TEST-del_many_dense_attrs-clear-objects PROPERTIES FIXTURES_SETUP clear_del_many_dense_attrs)
add_test (NAME H5TEST-del_many_dense_attrs COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:del_many_dense_attrs>)
set_tests_properties (H5TEST-del_many_dense_attrs PROPERTIES
FIXTURES_REQUIRED clear_del_many_dense_attrs
ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/H5TEST"
WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST
)
#-- Adding test for err_compat
if (HDF5_ENABLE_DEPRECATED_SYMBOLS AND NOT MINGW)
add_test (NAME H5TEST-err_compat COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
-D "TEST_PROGRAM=$<TARGET_FILE:err_compat>"
-D "TEST_ARGS:STRING="
-D "TEST_EXPECT=0"
-D "TEST_MASK_ERROR=true"
-D "ERROR_APPEND=1"
-D "TEST_OUTPUT=err_compat.txt"
-D "TEST_REFERENCE=err_compat_1"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/H5TEST"
-P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake"
)
set_tests_properties (H5TEST-err_compat PROPERTIES
ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/H5TEST"
WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST
)
else ()
add_test (NAME H5TEST-err_compat COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
-D "TEST_PROGRAM=$<TARGET_FILE:err_compat>"
-D "TEST_ARGS:STRING="
-D "TEST_EXPECT=0"
-D "TEST_MASK_ERROR=true"
-D "ERROR_APPEND=1"
-D "TEST_OUTPUT=err_compat.txt"
-D "TEST_REFERENCE=err_compat_2"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/H5TEST"
-P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake"
)
set_tests_properties (H5TEST-err_compat PROPERTIES
ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/H5TEST"
WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST
)
endif ()
#-- Adding test for error_test
if (DEFAULT_API_VERSION MATCHES "v16" OR MINGW)
add_test (NAME H5TEST-error_test COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
-D "TEST_PROGRAM=$<TARGET_FILE:error_test>"
-D "TEST_ARGS:STRING="
-D "TEST_EXPECT=0"
-D "TEST_MASK_ERROR=true"
-D "ERROR_APPEND=1"
-D "TEST_OUTPUT=error_test.txt"
-D "TEST_REFERENCE=error_test_2"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/H5TEST"
-P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake"
)
set_tests_properties (H5TEST-error_test PROPERTIES
ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/H5TEST;HDF5_PLUGIN_PRELOAD=::"
WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST
)
else ()
add_test (NAME H5TEST-error_test COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
-D "TEST_PROGRAM=$<TARGET_FILE:error_test>"
-D "TEST_ARGS:STRING="
-D "TEST_EXPECT=0"
-D "TEST_MASK_ERROR=true"
-D "ERROR_APPEND=1"
-D "TEST_OUTPUT=error_test.txt"
-D "TEST_REFERENCE=error_test_1"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/H5TEST"
-P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake"
)
set_tests_properties (H5TEST-error_test PROPERTIES
ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/H5TEST;HDF5_PLUGIN_PRELOAD=::"
WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST
)
endif ()
#-- Adding test for links_env
add_test (NAME H5TEST-links_env-clear-objects
COMMAND ${CMAKE_COMMAND} -E remove
extlinks_env0.h5
extlinks_env1.h5
tmp_links_env/extlinks_env1.h5
WORKING_DIRECTORY
${HDF5_TEST_BINARY_DIR}/H5TEST
)
set_tests_properties (H5TEST-links_env-clear-objects PROPERTIES FIXTURES_SETUP clear_links_env)
if (HDF5_ENABLE_USING_MEMCHECKER)
add_test (NAME H5TEST-links_env COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:links_env>)
else ()
add_test (NAME H5TEST-links_env COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
-D "TEST_PROGRAM=$<TARGET_FILE:links_env>"
-D "TEST_ARGS:STRING="
#-D "TEST_ENV_VAR:STRING=HDF5_EXT_PREFIX"
#-D "TEST_ENV_VALUE:STRING=.:tmp_links_env"
-D "TEST_EXPECT=0"
-D "TEST_OUTPUT=links_env.txt"
-D "TEST_REFERENCE=links_env.out"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/H5TEST"
-P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake"
)
endif ()
set_tests_properties (H5TEST-links_env PROPERTIES
FIXTURES_REQUIRED clear_links_env
ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/H5TEST;HDF5_EXT_PREFIX=.:tmp_links_env"
WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST
)
if (NOT BUILD_SHARED_LIBS)
#-- Adding test for libinfo
add_test (NAME H5TEST-testlibinfo
COMMAND ${CMAKE_COMMAND} -D "TEST_PROGRAM=$<TARGET_FILE:${HDF5_LIB_TARGET}>" -P "${GREP_RUNNER}"
WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST
)
else ()
#-- Adding test for libinfo
add_test (NAME H5TEST-testlibinfo
COMMAND ${CMAKE_COMMAND} -D "TEST_PROGRAM=$<TARGET_FILE:${HDF5_LIBSH_TARGET}>" -P "${GREP_RUNNER}"
WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST
)
endif ()
##############################################################################
### F I L T E R P L U G I N T E S T S
##############################################################################
if (BUILD_SHARED_LIBS)
if (WIN32)
set (CMAKE_SEP "\;")
set (BIN_REL_PATH "../../")
else ()
set (CMAKE_SEP ":")
set (BIN_REL_PATH "../")
endif ()
add_test (NAME H5PLUGIN-filter_plugin COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:filter_plugin>)
set_tests_properties (H5PLUGIN-filter_plugin PROPERTIES
ENVIRONMENT "HDF5_PLUGIN_PATH=${CMAKE_BINARY_DIR}/filter_plugin_dir1${CMAKE_SEP}${CMAKE_BINARY_DIR}/filter_plugin_dir2;srcdir=${HDF5_TEST_BINARY_DIR}"
WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}
)
##############################################################################
# HDFFV-9655 relative plugin test disabled
#
# add_test (NAME H5PLUGIN-pluginRelative COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:plugin>)
# set_tests_properties (H5PLUGIN-pluginRelative PROPERTIES
# ENVIRONMENT "HDF5_PLUGIN_PATH=@/${BIN_REL_PATH}testdir1${CMAKE_SEP}@/${BIN_REL_PATH}testdir2;srcdir=${HDF5_TEST_BINARY_DIR}"
# WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}
# )
##############################################################################
endif ()
option (TEST_SHELL_SCRIPTS "Enable shell script tests" ON)
if (TEST_SHELL_SCRIPTS)
include (ShellTests.cmake)
endif()
option (ENABLE_EXTENDED_TESTS "Enable extended tests" OFF)
if (ENABLE_EXTENDED_TESTS)
##############################################################################
### S W M R T E S T S
##############################################################################
# testflushrefresh.sh: flushrefresh
# test_usecases.sh: use_append_chunk, use_append_mchunks, use_disable_mdc_flushes
# testswmr.sh: swmr*
# testvdsswmr.sh: vds_swmr*
# add_test (NAME H5Test-swmr_check_compat_vfd COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:swmr_check_compat_vfd>)
#-- Adding test for flushrefresh
file (MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/H5TEST/flushrefresh_test")
if (H5_PERL_FOUND)
add_test (
NAME H5TEST-testflushrefresh-clear-objects
COMMAND ${CMAKE_COMMAND} -E remove flushrefresh.h5
WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST/flushrefresh_test
)
set_tests_properties (H5TEST-testflushrefresh-clear-objects PROPERTIES FIXTURES_SETUP clear_testflushrefresh)
add_test (NAME H5TEST-testflushrefresh COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
-D "TEST_PROGRAM=$<TARGET_FILE:flushrefresh>"
-D "TEST_ARGS1:STRING=flushrefresh_VERIFICATION_START"
-D "TEST_ARGS2:STRING=flushrefresh_VERIFICATION_DONE"
-D "TEST_ERR:STRING=flushrefresh_ERROR"
-D "TEST_EXPECT=0"
-D "TEST_OUTPUT=flushrefresh.out"
-D "TEST_REFERENCE=flushrefresh.txt"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/H5TEST/flushrefresh_test"
-D "PERL_SCRIPT=${HDF5_SOURCE_DIR}/bin/runbkgprog"
-D "PERL_EXECUTABLE=${PERL_EXECUTABLE}"
-P "${HDF5_TEST_SOURCE_DIR}/flushrefreshTest.cmake"
)
set_tests_properties (H5TEST-testflushrefresh PROPERTIES
FIXTURES_REQUIRED clear_testflushrefresh
ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/H5TEST/flushrefresh_test"
WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST/flushrefresh_test
)
else ()
message (STATUS "Cannot execute TEST flushrefresh - perl not found")
endif ()
endif ()
##############################################################################
##############################################################################
### V F D T E S T S ###
##############################################################################
##############################################################################
if (HDF5_TEST_VFD)
include (CMakeVFDTests.cmake)
endif ()
##############################################################################
##############################################################################
### T H E G E N E R A T O R S ###
##############################################################################
##############################################################################
if (HDF5_BUILD_GENERATORS AND NOT ONLY_SHARED_LIBS)
macro (ADD_H5_GENERATOR genfile)
add_executable (${genfile} ${HDF5_TEST_SOURCE_DIR}/${genfile}.c)
target_include_directories (${genfile} PRIVATE "${HDF5_SRC_DIR};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
TARGET_C_PROPERTIES (${genfile} STATIC)
target_link_libraries (${genfile} PRIVATE ${HDF5_TEST_LIB_TARGET} ${HDF5_LIB_TARGET})
set_target_properties (${genfile} PROPERTIES FOLDER generator/test)
#-----------------------------------------------------------------------------
# Add Target to clang-format
#-----------------------------------------------------------------------------
if (HDF5_ENABLE_FORMATTERS)
clang_format (HDF5_TEST_${genfile}_FORMAT ${genfile})
endif ()
endmacro ()
# generator executables
set (H5_GENERATORS
gen_bad_offset
gen_bad_ohdr
gen_bogus
gen_bounds
gen_cross
gen_deflate
gen_filters
gen_new_array
gen_new_fill
gen_new_group
gen_new_mtime
gen_new_super
gen_noencoder
gen_nullspace
gen_udlinks
space_overflow
gen_filespace
gen_specmetaread
gen_sizes_lheap
gen_file_image
gen_plist
)
foreach (h5_gen ${H5_GENERATORS})
ADD_H5_GENERATOR (${h5_gen})
endforeach ()
endif ()