90 Commits
Author SHA1 Message Date
jhendersonHDF af0b2315bd Remove const from testing parameters in testframe framework (#5214)
Makes testing parameters specified with AddTest non-const again when
passed to test functions. This allows test functions to update their
parameters during execution and is particularly useful for tests
which use those parameters to accumulate statistics, error counts,
etc. without resorting to global variables.
2025-01-08 13:33:00 -06:00
Dana Robinson ed082ac981 Fix 'unused parameter' warnings in C++ tests (#5199) 2025-01-02 10:09:46 -08:00
Dana Robinson 7f1e49206d Renamed COPYING to LICENSE (#4978)
This is where most people will expect to find license information. The
COPYING_LBNL_HDF5 file has also been renamed to LICENSE_LBNL_HDF5.
The licenses are unchanged.
2024-10-18 21:13:04 -07:00
jhendersonHDF 34d6ef545a Refactor h5test.c, testframe.c and testpar.h testing frameworks (#4891)
Added new testframe.h header to document testing framework functions and
split them away from h5test.h and from test programs that don't
integrate with the testframe.c testing framework

Added new test setup callback to testframe.c testing framework

Added parameters to AddTest() to specify size of test parameters so they
can be copied for later use

Enabled HDF5 error stacks in testframe.c framework by default and added
some error stack suppressions to some testhdf5 tests

Added new maxthreads option to testframe.c framework to allow specifying
the maximum number of threads a multi-threaded test can use

Moved TestExpress functionality out of testframe.c and into more general
h5test.c for wider use by tests through getter and setter

Updated some tests to not mix and match functionality between h5test.c/h
and testframe.c/h

Moved some functionality from testphdf5.h into testpar.h for parallel
tests that aren't part of testphdf5

Added new parallel test library that contains common shared
functionality for parallel tests (similar to h5test library)
2024-10-01 16:10:03 -05:00
Allen Byrne 162f01292c Rework the TestExpress usage and refactor dead code (#4590) 2024-06-20 14:01:43 -07:00
Mark Kittisopikulandgithub-actions 426a7f82f6 Avoid truncating at null byte when copying to std::string (#3083)
---------

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-07-15 23:31:57 -05:00
Dana Robinson 39e6bf48c9 Remove HD from HDmem* calls (#3211) 2023-06-29 12:33:46 -07:00
Dana Robinson fd933f30b1 Remove programmer/date from comments (#3210)
* Removes Programmer: and Date: fields
* Fixes a few Modifications: fields leftover from previous work
2023-06-29 12:13:29 -07:00
Quincey Koziol 49a71463a0 Comment cleanup (#2689)
* Clean up content and redundant logging in comments.
2023-04-11 09:41:32 -05:00
Larry Knox 11dfa25910 Update copyright headers (#2184)
* Updated source file copyright headers to remove "Copyright by the Board of Trustees
of the University of Illinois", which is kept in the top-level COPYING file.
2022-11-01 16:02:27 -05:00
Allen Byrne 956282fa6f Develop cmake clean (#1971) 2022-08-06 23:59:31 -05:00
Allen Byrne ae414872f5 Develop clang 13 format (#1933)
* Update format source to clang 13

* More format changes
2022-07-26 14:45:46 -07:00
Dana Robinsonandgithub-actions fa7caf8435 Fixes C++ sign-conversion warnings w/ clang 14 (#1870)
* Fixes sign-conversion warnings w/ clang 14

* Committing clang-format changes

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-07-11 08:59:51 -07:00
Sean McBrideandgithub-actions 8b2e7b32b5 Various warning fixes (#1812)
* Fixed -Wreserved-id-macro warnings from header include guards

* Removed all __int64 and LL suffix stuff now that C99 is minimum requirement

* Rename `H5FD_CTL__` to `H5FD_CTL_` to fix -Wreserved-id-macro warnings

Double underscore is reserved in C++ and this public header should be C++ compatible.

* Never define __STDC_FORMAT_MACROS anymore

Defining it causes a -Wreserved-id-macro.

Happily, according to the C++11 standard:

"The macros defined by <stdint> are provided unconditionally. In particular, the symbols __STDC_LIMIT_MACROS and __STDC_CONSTANT_MACROS (mentioned in C99 footnotes 219, 220, and 222) play no role in C++."

https://cplusplus.github.io/LWG/issue984

So looks like it's not necessary to define it with reasonably new toolchains.

* Fixed some -Wunused-macros warnings, removed dead code

* Fixed all -Wdouble-promotion warnings in C++ files

* Fixed remaining -Wsuggest-destructor-override warnings

* Committing clang-format changes

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-06-22 09:16:30 -07:00
Dana Robinson fe6b2b8e55 Minor C++ changes noticed while normalizing with 1.12 (#1606) 2022-04-07 06:03:15 -07:00
Dana Robinsonandgithub-actions 50d0888f49 C++ warning and build fixes (#707)
* Committing clang-format changes

* C++ build and warning updates

* Fixes all warnings on C++ (with gcc 9.3)
* Updates CMake and Autotools C++ builds

* Undo warning clobber

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-06-01 08:49:39 -05:00
d179f9d79c BUG: DataSet assignment operator is missing (#503)
* BUG: DataSet assignment operator is missing

* Some compilers complain if the copy constructor is given explicitly
  but the assignment operator is implicitly set to default.

* Explicitly defining the assignment operator allows us to properly
  handle reference counters for shared resources.

* BUG: DataSet assignment operator is missing.

* Mimicking code of H5DataType::operator() as suggested by @bmribler.

* Added test

Description:
    Added test for DataSet::operator= that Leengit added
Platform tested:
    Linux/64 (jelly)

* Removed Author field.

* Commit clang format changes.

* Entry for Leengit's github PR #503

* Removed lines left by mistake

Co-authored-by: Binh-Minh Ribler <bmribler@hdfgroup.org>
Co-authored-by: Larry Knox <lrknox@hdfgroup.org>
2021-05-19 15:48:20 -05:00
Dana Robinsonandgithub-actions 9023e98940 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>
2021-05-07 11:45:05 -05:00
Sean McBride 38b9474af0 Applied clang-tidy readability-delete-null-pointer fixes (#430)
delete nullptr is well-defined, does not need check.

Manually fixed indentation after automatic changes.
2021-03-22 12:51:18 -05:00
Sean McBrideandLarry Knox a7a013782f Various clang tidy warning fixes (#448)
* Fixed clang-tidy bugprone-reserved-identifier warnings

* Fixed clang-tidy bugprone-assert-side-effect warnings

* Fixed clang-tidy bugprone-copy-constructor-init warning

* Fixed clang-tidy readability-redundant-preprocessor warning

For error_test.c the removed code was already dead, because it was in the else of an `#if H5_USE_16_API` block.

Based on H5Location.h, I think p_get_ref_obj_type was meant to be in `#ifndef DOXYGEN_SHOULD_SKIP_THIS` and an `#endif` was missing.  Similarly, in the header, getObjTypeByIdx is only in H5_NO_DEPRECATED_SYMBOLS, not DOXYGEN_SHOULD_SKIP_THIS.

* Fixed clang-tidy readability-redundant-string-init warnings

* Fixed some clang-tidy performance-type-promotion-in-math-fn warnings

* Fixed clang-tidy performance-unnecessary-value-param warnings

* Reformat source with clang v10.0.1.

Co-authored-by: Larry Knox <lrknox@hdfgroup.org>
2021-03-10 12:41:34 -06:00
Sean McBride 20c452fe5c Removed checks/workarounds for pre-C++89 compatibility (#449)
After 30+ years, just assume that the following exist:
- extension-less includes
- namespaces
- std::
- static_cast
- bool
2021-03-10 11:51:45 -06:00
Sean McBrideandLarry Knox 5f376ccb3e Removed bad function pointer casts (#434)
* Removed bad function pointer casts

In one case fixed the actual function signature to be correct.

* Reformat source with clang v10.0.1.

Co-authored-by: Larry Knox <lrknox@hdfgroup.org>
2021-03-08 08:26:58 -06:00
Larry Knox 2ea165efd0 Update license url part2 (#333)
* Modify temporary rpath for testing in java example scripts.

* Update URL in source file Copyright headers for web copy of COPYING
    file - files not in src or test.
2021-02-17 08:52:36 -06:00
Allen Byrne b2d661b508 Clang-format of source files 2020-09-30 09:27:10 -05:00
Quincey Koziol 9e5dbf6906 Trim trailing whitespace 2020-04-20 18:12:00 -05:00
Dana Robinson a92c735c9b Squashed commit of the token_refactoring branch: 2020-01-16 13:29:34 -08:00
Binh-Minh Ribler 09913e2f8e Added class DSetAccPropList
Description:
    - Added class DSetAccPropList for the dataset access property list.
    - Added wrapper for H5Dget_access_plist to class DataSet
        // Gets the access property list of this dataset.
        DSetAccPropList getAccessPlist() const;

    - Added wrappers for H5Pset_chunk_cache and H5Pget_chunk_cache to class
      DSetAccPropList
        // Sets the raw data chunk cache parameters.
        void setChunkCache(size_t rdcc_nslots, size_t rdcc_nbytes, double rdcc_w0)

        // Retrieves the raw data chunk cache parameters.
        void getChunkCache(size_t &rdcc_nslots, size_t &rdcc_nbytes, double &rdcc_w0)

    - Added two more arguments to H5Location::createDataSet:
        const DSetAccPropList& dapl = DSetAccPropList::DEFAULT
        const LinkCreatPropList& lcpl = LinkCreatPropList::DEFAULT

    - Added one more argument to H5Location::openDataSet:
        const DSetAccPropList& dapl = DSetAccPropList::DEFAULT

Platforms tested:
    Linux/64 (jelly)
    Linux/32 (jam)
    Darwin (osx1010test)
2018-07-22 15:22:34 -05:00
Binh-Minh Ribler 4f37cdcd36 Code improvement
Description:
    Moved the new H5Object::getInfo member functions to H5Location and
    made them overloaded with the existing H5Location::getObjinfo.  This
    way is cleaner than the previous approach.
Platforms tested:
    Linux/64 (jelly)
    Linux/32 (jam)
    Darwin (osx1010test)
2018-07-21 00:40:57 -05:00
Binh-Minh Ribler 3aa2443518 Fixed HDFFV-10458 partially
Description:
    Added wrappers for H5Oget_info_by_idx2.

    // Returns information about an HDF5 object, given its index.
    void getInfo(const char* grp_name, H5_index_t idx_type,
                 H5_iter_order_t order, hsize_t idx, H5O_info_t& objinfo,
                 unsigned fields = H5O_INFO_BASIC,
                 const LinkAccPropList& lapl = LinkAccPropList::DEFAULT)
    void getInfo(const H5std_string& grp_name, H5_index_t idx_type,
                 H5_iter_order_t order, hsize_t idx, H5O_info_t& objinfo,
                 unsigned fields = H5O_INFO_BASIC,
                 const LinkAccPropList& lapl = LinkAccPropList::DEFAULT)
Platforms tested:
    Linux/64 (jelly)
    Linux/32 (jam)
    Darwin (osx1010test)
2018-07-17 09:12:10 -05:00
Binh-Minh Ribler e33d677636 Various code cleanup
Description:
    - Replaced H5Location::exists with H5Location::nameExists and marked
      H5Location::exists as deprecated.
    - Miscellaneous test cleanup for consistency.
Platforms tested:
    Linux/32 2.6 (jam)
    Linux/64 (jelly)
    Darwin (osx1010test)
2017-12-04 12:21:12 -06:00
Larry Knox 89fbe00dec Merge pull request #426 in HDFFV/hdf5 from ~LRKNOX/hdf5_lrk:hdf5_1_10 to hdf5_1_10
* commit '54957d37f5aa73912763dbb6e308555e863c43f4':
  Commit copyright header change for src/H5PLpkg.c which was added after running script to make changes.
  Add new files in release_docs to MANIFEST. Cimmit changes to Makefile.in(s) and H5PL.c that resulted from running autogen.sh.
  Merge pull request #407 in HDFFV/hdf5 from ~LRKNOX/hdf5_lrk:hdf5_1_10_1 to hdf5_1_10_1
  Change copyright headers to replace url referring to file to be removed and replace it with new url for COPYING file.
2017-04-25 16:05:36 -05:00
Binh-Minh Ribler a48c9c4024 Purpose: Add new C++ wrappers
Description:
    Added wrappers for H5Iis_valid, H5Ps/get_nlinks, H5Tget_create_plist,
    H5Oopen, H5Oclose and H5Pset_virtual

        // Checks if the given ID is valid.
        static bool isValid(hid_t an_id);

        // Sets the number of soft or user-defined links that can be
        // traversed before a failure occurs.
        void setNumLinks(size_t nlinks) const;

        // Gets the number of soft or user-defined link traversals allowed
        size_t getNumLinks() const;

        // Returns a copy of the creation property list of a datatype.
        PropList getCreatePlist() const;

        // Opens an object within a group or a file, i.e., root group.
        hid_t getObjId(const char* name,...);
        hid_t getObjId(const H5std_string& name,...);

        // Closes an object opened by getObjId().
        void closeObjId(hid_t obj_id) const;

        // Maps elements of a virtual dataset to elements of the source dataset.
        void setVirtual(const DataSpace& vspace, const char *src_fname,...);
        void setVirtual(const DataSpace& vspace, const H5std_string src_fname,...);

Platforms tested:
    Linux/32 2.6 (jam)
    Linux/64 (platypus)
    Darwin (osx1010test)
2017-03-13 22:53:43 -05:00
Binh-Minh Ribler 861a849530 Description:
Only format changes: mostly tabs vs. spaces
Platforms tested:
    Linux/64 (jelly) - very minor
2017-03-03 08:45:57 -06:00
Binh-Minh Ribler a903cbafa8 Description:
Removed obsolet macros from C++ API:
	H5_NO_NAMESPACE, H5_NO_STD, __cplusplus
    Leave OLD_HEADER_FILENAME because iostream.h might still be in use,
    until further checking is done.
Platforms tested:
    Linux/32 2.6 (jam)
    Linux/64 (platypus)
    Darwin (osx1010test)
    Jelly
2016-10-19 15:50:17 -05:00
Binh-Minh Ribler 0d5910683d [svn-r29786] Purpose: Add new wrapper
Description:
    Added wrapper for H5Tset_nbit: void DSetCreatPropList::setNbit() const.
Platforms tested:
    Linux/32 2.6 (jam)
    Linux/64 (platypus)
    Darwin (osx1010test)
2016-04-25 01:09:46 -05:00
Binh-Minh Ribler c37607eb58 [svn-r29759] Purpose: Code improvements
Description:
    - Changed object in catch statements to reference
    - Replaced old-style casts or reinterpret_cast with static_cast
    - Removed unused name H5Library::need_cleanup
    - Removed Exception::printError from documentation
Platforms tested:
    Linux/32 2.6 (jam)
    Linux/64 (platypus)
    Darwin (osx1010test)
2016-04-22 06:22:34 -05:00
Binh-Minh Ribler 20bfdeb2c1 [svn-r29361] Purpose: Correction
Description:
    Replaced static_cast with reinterpret_cast for "void *".
    Removed some commented-out old code.
Platforms tested:
    Linux/32 2.6 (jam)
    Linux/64 (platypus)
    Darwin (osx1010test)
2016-03-08 22:30:02 -05:00
Binh-Minh Ribler 116eed3ebd [svn-r29340] Purpose: Code cleanup
Description:
    - Removed many warnings:
        warning: use of old-style cast
        warning: enumeration value ‘H5D_VIRTUAL’ not handled in switch
        warning: comparison between signed and unsigned
      There are others of the same warnings and they will be taken care of
      in the next release.
    - Made some code reuse between overloads
Platforms tested:
    Linux/32 2.6 (jam)
    Linux/64 (platypus)
    Darwin (osx1010test)
2016-03-08 07:23:54 -05:00
Mohamad Chaarawi fc45d5fcb0 [svn-r27133] - Add a new attribute function characterstic for format:
* H5_ATTR_FORMAT(X,Y,Z)  __attribute__((format(X, Y, Z)))
- Rename UNUSED attribute characterstic to H5_ATTR_UNUSED.
- Rename NORETURN attribute characterstic to H5_ATTR_NORETURN

tested with h5committest.
2015-06-01 14:38:09 -05:00
Binh-Minh Ribler f6d9d1fdc8 [svn-r26695] Purpose: Fixed HDFFV-7947 (cont.)
Description:
    - Put back the UNUSED parameters in dsets test because the change to remove
      the warning last time caused failure in setting filter, in turn, caused
      failure in the test with such obscure/unrelated errors!
    - Added incRefCount() to other constructors that missed from last time.
Platforms tested:
    Linux/64 (platypus)
    Linux/32 2.6 (jam)
    SunOS 5.11 (emu)
2015-04-01 13:52:05 -05:00
Binh-Minh Ribler 3b90bca561 [svn-r26458] Purpose: Fix warnings HDFFV-8658
Description:
    Fixed many type conversion warnings and unused variables.
Platforms tested:
    Linux/64 (platypus)
    Linux/32 2.6 (jam)
    SunOS 5.11 (emu)
2015-03-15 01:49:20 -05:00
Binh-Minh Ribler 0befe65753 [svn-r25632] Purpose: Fixed HDFFV-8852
Description:
    H5F_ACC_CREAT was included in the C++ API while the C library doesn't
    allow it yet.  Possibly, in the future, but not now.  In addition, the
    two flags H5F_ACC_RDONLY and H5F_ACC_RDWR were missing from the
    documentation, causing confusion that appending is not supported.
Solution:
    - Removed H5F_ACC_CREAT from the function until the C library support it
    - Added H5F_ACC_RDONLY and H5F_ACC_RDWR to the comments to update the
      documentation
Platforms tested:
    Linux/ppc64 (ostrich)
    Linux/32 2.6 (jam)
    SunOS 5.11 (emu)
2014-09-29 15:52:08 -05:00
Binh-Minh Ribler 0dc4ce3704 [svn-r24994] Purpose: Removed some warnings
Description:
    Turned on warnings and removed some of those.
Platforms tested:
    Linux/ppc64 (ostrich)
    Linux/32 2.6 (jam)
    SunOS 5.11 (emu)
2014-04-08 23:03:03 -05:00
Binh-Minh Ribler a08f75b073 [svn-r24969] Description:
- Added wrappers to H5Object for H5Iget_name() to get object's name
        ssize_t getObjName(char *obj_name, size_t buf_size = 0) const;
        ssize_t getObjName(H5std_string& obj_name, size_t len = 0) const;
        H5std_string getObjName() const;
    - Added tests tobject.cpp
    - Added to various cleanup_* functions in tests to remove generated files
    - Added an overload H5I_type_t getHDFObjType() to get object's type
Platforms tested:
    Linux/ppc64 (ostrich)
    Linux/32 2.6 (jam)
    SunOS 5.11 (emu) with gmake
2014-04-06 17:36:15 -05:00
Binh-Minh Ribler 67be45610f [svn-r24867] Description:
- Added a null terminator to the comment returned from the C call, in
        getComment methods
    - Some minor cleanup
Platforms tested:
    Linux/ppc64 (ostrich)
    Linux/32 2.6 (jam)
    Linux/64 2.6 (platypus)/PGI compilers
2014-03-22 15:39:44 -05:00
Binh-Minh Ribler 60df159d33 [svn-r24865] Description:
- Added another overload for char* argument:
        ssize_t getComment(const char* name, const size_t buf_size, char* comment)
    - Changed default value to 0 for the other two getComment methods
    - Added HDmemset to after every char string allocation to clear the buffer
Platforms tested:
    Linux/ppc64 (ostrich)
    Linux/32 2.6 (jam)
    Linux/64 2.6 (platypus)/PGI compilers
2014-03-21 18:23:05 -05:00
Binh-Minh Ribler f8fb310610 [svn-r24188] Purpose: Fixed bug introduced in r24163
Description:
    - The failure in daily test was caused by missing initialization of member
    "id" in a few constructors.  This is now fixed.
    - Added two overloaded H5Location::setComment
    - Improved some error reporting in H5Location
    - Improved error reporting in tests
Platforms tested:
    Linux/32 2.6 (jam)
    SunOS 5.11 (emu)
    Linux/64 2.6 (koala)/PGI compilers
2013-09-22 19:39:44 -05:00
Binh-Minh Ribler 27ed849cad [svn-r24142] Purpose: Fix bug in tests
Description:
    - Passing the c_str() of an std string into a C function caused failure
      on OpenVMS.  Added a work around using temporary string. (th5s.cpp)
    - Passing incorrect file access property list caused test_datasize() to
      fail.  Fixed.
    - Close a group in test_dset, before the file can be properly closed.
      This should fix the problem on OpenVMS.
Platforms tested:
    Linux/32 2.6 (jam)
    SunOS 5.11 (emu)
    Linux/ppc64 (ostrich)
2013-09-14 22:53:59 -05:00
Binh-Minh Ribler c8018386da [svn-r23427] Purpose: Fix bug HDFFV-8067
Description:
  + The C++ test failed with the new PGI compilers versions 12.4 and 12.5
  + An exception thrown by an internal function, which was called by
    a constructor, was not propagating to the test program during the stack
    unwinding, so it couldn't be caught by the test and the program terminated.
  + Various trials and errors indicated that the problem is where an STD string
    converted to a char* being passed to the internal function, but confirmation
    has not been found yet.  It could be a compiler bug.
Solution:
  + Added a try/catch in the constructor around the internal function and
    re-throw the exception when it is caught.  This is a workaround.
  + Unrelated minor fixes: removed unused variables and MESSAGE's; commented
    out tvlstr.cpp/test_read_vl_string_attribute because it may be redundant,
    and commented out H5Tpkg.h inclusion because TEST_ALIGNMENT is not added
    yet and probably not necessary in the C++ API.
Platforms tested:
    Linux/32 2.6 (jam) with PGI compilers
    Linux/32 2.6 (jam) with GNU compilers
    Linux/64 2.6 (koala)
2013-03-22 12:56:05 -05:00
Binh-Minh Ribler 9c3f82fbd7 [svn-r22845] Purpose: Misc fixes
Description:
    Fixed miscellaneous inconsistencies and typos, which also took
    care of the failure in Packet Table test on daily test today.
Platforms tested:
    Linux/32 2.6 (jam)
    Linux/64 2.6 (koala)
    Mac Lion (duck)
2012-09-28 17:18:33 -05:00