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.
* Implement support for complex number datatypes
Adds the new datatype class H5T_COMPLEX
Adds the new API function H5Tcomplex_create which creates a complex
number datatype from an ID of a base floating-point datatype
Adds the new feature check macros H5_HAVE_COMPLEX_NUMBERS and
H5_HAVE_C99_COMPLEX_NUMBERS
Adds the new datatype size macros H5_SIZEOF_FLOAT_COMPLEX,
H5_SIZEOF_DOUBLE_COMPLEX and H5_SIZEOF_LONG_DOUBLE_COMPLEX
Adds the new datatype ID macros H5T_NATIVE_FLOAT_COMPLEX,
H5T_NATIVE_DOUBLE_COMPLEX, H5T_NATIVE_LDOUBLE_COMPLEX,
H5T_CPLX_IEEE_F16LE, H5T_CPLX_IEEE_F16BE,
H5T_CPLX_IEEE_F32LE, H5T_CPLX_IEEE_F32BE,
H5T_CPLX_IEEE_F64LE and H5T_CPLX_IEEE_F64BE
Adds hard and soft datatype conversion paths between complex number
datatypes and all the integer and floating-point datatypes, as well as
between other complex number datatypes
Adds a special conversion path between complex number datatypes and
array or compound datatypes where the in-memory layout of data is the
same between the datatypes and data can be converted directly
Adds support for complex number datatypes to the h5dump, h5ls and
h5diff/ph5diff tools. Allows h5dump '-m' option to change floating-point
printing format for float complex and double complex datatypes, as well
as long double complex if it has the same size as double complex
Adds minimal support to the h5watch and h5import tools
Adds support for the predefined complex number datatypes and
H5Tcomplex_create function to the Java wrappers. Also adds initial,
untested support to the JNI for future use with HDFView
Adds support for just the H5T_COMPLEX datatype class to the Fortran
wrappers
Adds support for the predefined complex number datatypes and
H5Tcomplex_create function to the high level library H5LT interface
for use with the H5LTtext_to_dtype and H5LTdtype_to_text functions
Changes some usages of "complex" in the library since it conflicts with
the "complex" keyword from the complex.h header. Also changes various
usages of the word "complex" throughout the library to distinguish
compound datatypes from complex datatypes.
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.
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)
* Strip HD prefix from string/char C API calls
* HD(f)(put|get)(s|c)
* HDstr*
* HDv*printf
* HD(s)(print|scan)f
* HDperror
But NOT:
* HDstrcase*
* HDvasprintf
* HDstrtok_r
* HDstrndup
As those are not C99 and have portability work-around
implementations. They will be handled later.
* Fix th5_system.c screwup
* 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.
* Fix test failure
Description:
- Added two H5File constructors to open file with non-default fapl
- Added non-default fapl to test functions
- Commented certain renaming attribute tests because of the unexpected
behavior in renaming an attribute (HDFFV-11327)
Platform tested:
Linux/64 (jelly)
* Committing clang-format changes
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
* Pacify clang-analyzer-unix.cstring.NullArg
* Apply some bugprone-suspicious-string-compare
* Apply some readability-simplify-boolean-expr
* Apply some readability-make-member-function-const
* Apple some bugprone-macro-parentheses
* Changed an f suffix to L for `long double`
* Applied some readability-uppercase-literal-suffix automatically
* Committing clang-format changes
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
* 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>
* Fixed all clang-tidy bugprone-suspicious-string-compare warnings
This change was generated entirely by clang-tidy itself.
* Reformat code with clang v10.0.1.
Co-authored-by: Larry Knox <lrknox@hdfgroup.org>
* Fixed -Wunused-local-typedef warning
* Fixed -Wformat warnings
In one case also removed a `z` character. There was a `z%d` that I think was supposed to be `%zd`
* Fixed -Wshorten-64-to-32 warnings
* Fixed -Wself-assign warnings
* Fixed -Wreserved-id-macro warnings
* Commit format changes from clang-format, clang version 10.0.1.
* Fixed -Wself-assign warnings
* Fixed -Wunused-local-typedef warning
* Fixed -Wformat warnings
In two cases also removed a `z` character. There was a `z%d` that was supposed to be `%zd`.
* Fixed -Wshorten-64-to-32 warnings
* Fixed -Wreserved-id-macro warnings
* Fixed -Wself-assign warnings
* Format source.
* Remove blank lines to pass format check.
Co-authored-by: Larry Knox <lrknox@hdfgroup.org>
* 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.
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)
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)
* 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.
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
Description:
- Used FP_EPSILON in comparing float values to verify read data
- Casted C macro to fix mismatched types in verify_val calls
Platforms tested:
Linux/32 2.6 (jam)
Linux/64 (platypus)
Darwin (osx1010test)
Fix tests accordingly and fix misuse of hbool_t in various places
Fix initialization of H5Pgcpl/ocpl structs in property decoding routines
Tested on:
Linux/32 (jam)
Linux/64 (platypus)
Linux/PPC64 (ostrich)
MacOSX/64 10.11
Description:
When copy constructor or constructor that takes an existing id is invoked,
the C ref counter stays the same but there is an extra C++ object which
later is destroyed and may cause the HDF5 id to be closed prematurely. The
C++ library needs to increment the ref counter in these situations, so that
the C library will not close the id when it is still being referenced.
However, the incrementing of ref count left some objects opened at the end
of the program, perhaps, due to compiler's optimization on cons/destructors. The constructor, that takes an existing id, needs to increment the counter
but it seems that the matching destructor wasn't invoked. The workaround
is to have a function for each class that has "id" that only sets the id
and not increment the ref count for the library to use in these situations.
These functions are "friend" and not public.
The friend functions are:
void f_Attribute_setId(Attribute *, hid_t)
void f_DataSet_setId(DataSet *, hid_t)
void f_DataSpace_setId(DataSpace *, hid_t)
void f_DataType_setId(DataType *, hid_t)
Platforms tested:
Linux/64 (platypus)
Linux/32 2.6 (jam gnu and Intel 15.0)
SunOS 5.11 (emu)
Put back overloaded functions for backward compatibility:
- were replaced by better prototyped versions, such as Attribute::getName.
- were modified to add const to constant arguments.
Added notes for future removal in documentation.
Platforms tested:
Linux/ppc64 (ostrich)
Linux/32 2.6 (jam)
SunOS 5.11 (emu)
- 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
- Overloaded Atribute::getName to take a char* for the attribute name:
ssize_t Attribute::getName(char* attr_name, size_t buf_size)
- Switched the arguments in this function:
ssize_t getName(size_t buf_size, H5std_string& attr_name)
so it became:
ssize_t getName(H5std_string& attr_name, size_t buf_size)
The second argument is default to 0, and can be skipped.
- Removed this function:
H5std_string getName(size_t buf_size); it'll collide with the
first function when that function takes a NULL for the first
argument, and uses default value for the second argument.
- Added more tests
Platforms tested:
Linux/ppc64 (ostrich)
Linux/32 2.6 (jam)
SunOS 5.11 (emu)
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)
Description:
In this bug, H5File doesn't have the ability to create attribute. The
following changes will provide that functionality and several others that
were also missing:
- Added an abstract class H5Location in between IdComponent and H5Object.
- New class structure of IdComponent, H5Location, H5Object, H5File
IdComponent
|
H5Location
/ \
H5Object H5File
- Wrappers in H5Object were moved to H5Location because the related C
functions take either file, group, dataset, or named datatype ID.
- Added wrapper for H5Rget_obj_type2
- Added tests for file attributes and H5Rget_obj_type2 wrapper
Platforms tested:
Linux/32 2.6 (jam)
Linux/64 2.6 (koala)
SunOS 5.10 (linew)
Removed header file testhdf5.h from C++ tests to eliminate a non-standard
problem on OpenVMS. It wasn't essential.
Platforms tested:
Linux/32 2.6 (jam)
FreeBSD/64 6.3 (liberty)
Ray agreed to test on OpenVMS.
Added member function Attribute::getInMemDataSize(), which is a wrapper
of several C calls, to simplify getting the attribute's data size in
memory. Used this new function in Attribute::read to get the fixed-len
string attribute data.
Added tests to tattr.cpp.
Platforms tested:
Linux/32 2.6 (jam)
FreeBSD/64 6.3 (liberty)
SunOS 5.10 (linew)