Commit Graph

67 Commits

Author SHA1 Message Date
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
Quincey Koziol
d7e1464058 Add C++, Java, and FORTRAN wrappers and tests for H5Fget_fileno 2019-04-13 22:58:16 -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
14bf28780a Fixed HDFFV-10458 partially
Description:
    Added wrappers for H5Oget_info2 and H5Oget_info_by_name2.

    // Returns information about an HDF5 object.
    void getInfo(H5O_info_t& objinfo, unsigned fields = H5O_INFO_BASIC)

    // Returns information about an HDF5 object, given its name.
    void getInfo(const char* name, H5O_info_t& objinfo,
                 unsigned fields = H5O_INFO_BASIC,
                 const LinkAccPropList& lapl = LinkAccPropList::DEFAULT)
    void getInfo(const H5std_string& name, 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 01:09:45 -05:00
Binh-Minh Ribler
ec31438afd Fixed HDFFV-10404
Description:
    Applied the typo fixes from user's report.
    The previous pull request couldn't be merged because it was too old,
    and it was too complicated for me to resolve conflicts.
Platform tested:
    Linux/64 (jelly) - very minor
2018-07-13 13:40:22 -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
b6cb20d608 Description:
Removed "#ifndef H5_NO_DEPRECATED_SYMBOLS" in file space tests,
    because the wrappers only use the latest functions now.
Platforms tested:
    Linux/32 2.6 (jam)
    Linux/64 (platypus)
    Darwin (osx1010test)
2017-03-19 22:57:47 -05:00
Binh-Minh Ribler
34731511da Purpose: Add new C++ wrappers
Description:
    Because H5Pset_file_space and H5Pget_file_space are deprecated, changed
    to make wrappers for the new functions instead:
        H5Ps/get_file_space_strategy
        H5Ps/get_file_space_page_size

    New wrappers in FileCreatPropList:

        // Sets the strategy and the threshold value that the library will
        // will employ in managing file space.
        void setFileSpaceStrategy(H5F_fspace_strategy_t strategy, hbool_t persist, hsize_t threshold) const;

        // Returns the strategy that the library uses in managing file space.
        void getFileSpaceStrategy(H5F_fspace_strategy_t& strategy, hbool_t& persist, hsize_t& threshold) const;

        // Sets the file space page size for paged aggregation.
        void setFileSpacePagesize(hsize_t fsp_psize) const;

        // Returns the threshold value that the library uses in tracking free
        // space sections.
        hsize_t getFileSpacePagesize() const;

Platforms tested:
    Linux/32 2.6 (jam)
    Linux/64 (platypus)
    Darwin (osx1010test)
2017-03-18 23:40:37 -05:00
Quincey Koziol
0313cbb91d Final merge of page buffering branch to develop 2017-03-13 21:30:37 -07: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
4fc97f2853 Merge branch 'develop' of https://bitbucket.hdfgroup.org/scm/~bmribler/hdf5_bmr_cpp into develop 2017-02-23 16:54:38 -06:00
Binh-Minh Ribler
d7c6fa00da Purpose: Add new C++ wrappers
Description:
    Added wrappers for H5Fget_info2, H5Inmembers, and H5Itype_exists

        // Gets general information about this file.
        void getFileInfo(H5F_info2_t& file_info) const;

        // Returns the number of members in a type.
        static hsize_t getNumMembers(H5I_type_t type);

        // Determines if an element type exists.
        static bool typeExists(H5I_type_t type);

Platforms tested:
    Linux/32 2.6 (jam)
    Linux/64 (jelly)
    Darwin (osx1010test)
2017-02-23 16:53:16 -06:00
Dana Robinson
dca632bd96 Minor fix for duplicated H5Pclose() call in C++ tests. 2017-02-23 12:07:44 -05:00
Binh-Minh Ribler
40b13c7445 Purpose: Add new C++ wrappers
Description:
    Added wrappers for H5Pset_file_space and H5Pget_file_space

        // Sets the strategy and the threshold value that the library will
        // will employ in managing file space.
        void setFileSpace(H5F_file_space_type_t strategy, hsize_t threshold) const;

        // Returns the strategy that the library uses in managing file space.
        H5F_file_space_type_t getFileSpaceStrategy() const;

        // Returns the threshold value that the library uses in tracking free
        // space sections.
        hsize_t getFileSpaceThreshold() const;

Platforms tested:
    Linux/32 2.6 (jam)
    Linux/64 (jelly)
    Darwin (osx1010test)
2017-02-15 09:01:05 -06:00
lrknox
8452976de5 tools/test/h5diff/testh5diff.sh.in:
Add code to delete copies of test .h5 files copied from
         tools/testfiles/vds to tools/test/h5diff/testfiles when running
         "make check" for an in-source build.

    tools/test/misc/testh5repart.sh.in:
         Change the name of the temporary test directory from "testfiles"
         which is also used for 2 h5mkgrp test files under source control to
         "testrepart" to avoid deleting source controlled files when running
         "make check" in the source directory.

    Fix test scripts that remove source-controlled files during "make check" when run in-source.
    Fix test scripts that don't remove test files because they add files to test directories but don't remove them if the build directories are the same as the source directory.

    Fix any test source file or Makefile.am files for tests that leave data files are removed by neither "make check" nor "make distclean".
2017-01-12 22:20:11 -06:00
Binh-Minh Ribler
565aa10d8d Purpose: Add more tests
Description:
    Added more tests for the new constructors that replaced openXxxType()
Platforms tested:
    Linux/32 2.6 (jam)
    Linux/64 (platypus)
    Darwin (osx1010test)
2017-01-03 07:53:54 -06:00
Binh-Minh Ribler
cd3bd5576f Purpose: Add new wrappers
Description:
    Added wrappers H5Location::exists() for H5Lexists.
    Added wrapper H5Object::objVersion() to return the header version
        of an HDF5 object.
    Added new class LinkAccPropList to be used by H5Location::exists()
    Added new exception: ObjHeaderIException for H5Object::objVersion()
    Rearranged source files in Makefile.am
Platforms tested:
    Linux/32 2.6 (jam)
    Linux/64 (platypus)
    Darwin (osx1010test)
2016-12-28 08:44:01 -06:00
Quincey Koziol
64a339183f Bring SWMR support in to the main development branch. (Finally!) More tests
and the tool and API wrappers will be coming in over the weekend.
2016-12-02 08:07:04 -08: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
c78f1ec882 [svn-r30309] Purpose: Fix bug HDFFR-9920
Description:
    Rearranged the classes to model the relationship of HDF5 objects more
    accurately.  The changes included:
    - moved CommonFG's methods to Group
    - removed CommonFG from Group's base class list
    - removed CommonFG from H5File's base class list and changed
      "public H5Location" to "public Group" in the base class list
    - CommonFG became unused
    - result of the modified partial class diagram:

                                IdComponent
                                     |
                                H5Location
                                /
                        H5Object
                           |
                        /  /  \
                DadaType Group DataSet
                          |
                        H5File
Platforms tested:
    Linux/32 2.6 (jam)
    Linux/64 (platypus)
    Darwin (osx1010test)
2016-08-19 23:34:26 -05:00
Binh-Minh Ribler
997392079b [svn-r29766] Description:
- Changed object in catch statements to reference (left over from previous)

Platforms tested:
    Linux/32 2.6 (jam) (very minor)
2016-04-22 15:32:18 -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
Dana Robinson
2e6100fb23 [svn-r27572] Removed VMS-specific code from the library.
The only remaining code consists of a few floating-point tests
that rely on pre-generated and checked-in VMS files. These have
been left alone, even though they will not be possible to
recreate, since testing VMS float behavior is still important.

Tested on: h5committest
2015-08-24 15:19:39 -05:00
Binh-Minh Ribler
ea029945f5 [svn-r26667] Purpose: Fixed HDFFV-8766
Description:
    Per user Jason Newton request, the following constructor is added:
        H5File(hid_t existing_id);
    Also, fixed H5File::openFile to close current file first before re-using
    the object.
Platforms tested:
    Linux/64 (platypus)
    Linux/32 2.6 (jam gnu and Intel 15.0)
    SunOS 5.11 (emu)
2015-03-30 16:57:37 -05:00
Binh-Minh Ribler
39fb0401a0 [svn-r26643] Purpose: Adding new wrappers (HDFFR-9167 partially)
Description:
    Added wrappers for C functions H5P[s/g]et_libver_bounds and wrappers
    for getting object header version

      // Sets bounds on versions of library format to be used when creating
      // or writing objects.
      void setLibverBounds(H5F_libver_t libver_low, H5F_libver_t libver_high) const;

      // Gets the current settings for the library version format bounds.
      void getLibverBounds(H5F_libver_t& libver_low, H5F_libver_t& libver_high) const;

      // Returns the object header version of an object in a file or group,
      // given the object's name.
      unsigned childObjVersion(const char* objname) const;
      unsigned childObjVersion(const H5std_string& objname) const;

Platforms tested:
    Linux/64 (platypus)
    Linux/32 2.6
    SunOS 5.11
2015-03-28 23:37:28 -05:00
Binh-Minh Ribler
22d0d32716 [svn-r25644] Purpose: Fixed HDFFV-8928
Description:
    Followed hints on the JIRA issue to remove several potential memory
    leaks.
Platforms tested:
    Linux/ppc64 (ostrich)
    Linux/32 2.6 (jam)
    SunOS 5.11 (emu)
2014-09-30 23:05:57 -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
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
370e6f3f56 [svn-r24291] Description:
- Added a lot of documentation to classes for Reference Manual.
    - Fixed some format inconsistencies
Platforms tested:
    Linux/ppc64 (ostrich)
    Linux/32 2.6 (jam)
    Linux/64 2.6 (koala)/PGI compilers
2013-10-15 00:31:20 -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
5fcec401bd [svn-r22836] Purpose: Fix bug HDFFV-533 and add other missing functions
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)
2012-09-27 18:26:16 -05:00
Larry Knox
4a7802b82b [svn-r22495] Skip the failing File Creation I/O subtest that causes c++ tests to fail with the new/PGI compiler (see HDFFV-
8067).

Tested jam, koala, ostrich.
2012-06-27 11:12:57 -05:00
Binh-Minh Ribler
c90711e713 [svn-r18335] Description:
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.
2010-02-26 11:55:49 -05:00
Binh-Minh Ribler
1c4e6d163f [svn-r13524] Purpose: Cleanup tests
Description:
	Added extern "C" to cleanup functions as well, forgot last time.
	Cleaned up/Added comments to some of the newly added tests.

Platforms tested
    AIX 5.1 (copper)
    Linux 2.6 (kagiso)
    SunOS 5.8 64-bit (sol)
2007-03-17 11:26:53 -05:00
Binh-Minh Ribler
5a4bf8171d [svn-r13474] Purpose: Fixed bugs
Description:
    VMS revealed a problem in calling C++ test functions from C AddTest.

Solution:
    Per Quincey's suggestion, added
        #ifdef __cplusplus
        extern "C"
        #endif
    to the called C++ functions.

Platforms tested
    AIX 5.1 (copper)
    Linux 2.6 (kagiso)
    On pending: waiting for Elena to test on VMS when she comes back.
2007-03-08 04:50:55 -05:00
Albert Cheng
ed7d456e51 [svn-r13253] Updated all C and C++ style source code files with the THG copyright notice.
Tested platform:
Kagiso only since it is only a comment block change.  If it works in one
machine, it should work in all, I hope.  Still need to check the parallel
build on copper.
2007-02-07 09:56:24 -05:00
Elena Pourmal
3db9c56f9e [svn-r12326]
Purpose: Bug fix for VMS

Description: I am not sure why I didn't see this bug before ;-O.
             H5_HAVE_FILE_VERSIONS macro was added (by me) to the wrong place
             causing test program to get creation property list from a non-existing
             file object. As a result test program failed with access violation
             error.

Solution: Fixed.

Platforms tested: VMS server and copper (just in case)

Misc. update:
2006-05-03 16:53:32 -05:00
Elena Pourmal
11cf4bacb7 [svn-r12252] Purpose: Maintenance
Description: Brought VMS changes back (very minor):
             In tfile.cpp file some tests for open and creation should fail on UNIX,
             but this is not true on VMS since it has versioning of the files.
             In dsets.cpp std::count was used, but it is not available on VMS; also
             VMS didn't like "bogus" name for the filter function.


Solution: Used H5_HAVE_FILE_VERSIONS and H5_VMS variables to control the tests;
          replaced "bogus" function with "filter_bogus" function

Platforms tested: VMS server, heping

Misc. update:
2006-04-14 16:39:46 -05:00
Binh-Minh Ribler
e36db373ef [svn-r12202] Purpose: Maintenance
Description:
    Changed to alias string instead of std, i.e. H5std_string instead
    of H5std, because the old way wasn't working when std didn't exist.

Platforms tested:
    Linux 2.4 (heping)
    SunOS 5.8 64-bit (sol)
    HPUX 11.00 (kelgia) - this was the problematic platform but I wasn't
                                able to test before.
2006-04-05 11:50:56 -05:00
Binh-Minh Ribler
a7e993d72b [svn-r12180] Purpose: Maintenance
Description:
    Added alias H5_std so either the global or std namespace can be
    used, depending on H5_NO_STD.

Platforms tested:
    Linux 2.4 (heping)
    SunOS 5.8 64-bit (sol)
    AIX 5.1 (copper)
2006-03-30 13:06:58 -05:00
Binh-Minh Ribler
2b41179280 [svn-r11756] Purpose: Test improvement
Description:
    Improved the use of std members.

Platforms tested:
    Linux 2.4 (heping)
    SunOS 5.8 64-bit (sol)
    Linux 2.4 w/PGI (colonelk)
2005-12-03 07:27:14 -05:00
Quincey Koziol
6e7ed46998 [svn-r11487] Purpose:
Code cleanup

Description:
    Tweak copyright on C++ source files to reduce whining by copyright checking
script.

Platforms tested:
    FreeBSD 4.11 (sleipnir) w/C++
2005-10-01 10:29:18 -05:00
Quincey Koziol
6b45f5172c [svn-r11245] Purpose:
Code cleanup

Description:
    Trim trailing whitespace, which is making 'diff'ing the two branches
difficult.

Solution:
    Ran this script in each directory:

foreach f (*.[ch] *.cpp)
    sed 's/[[:blank:]]*$//' $f > sed.out && mv sed.out $f
end


Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Too minor to require h5committest
2005-08-13 15:53:35 -05:00
Binh-Minh Ribler
828c6646a1 [svn-r10953] Purpose: Updating C++ tests
Description:
    Updated various comments/headers.

Platforms tested:
    Linux 2.4 (heping)
    AIX 5.1 (copper)
2005-06-19 16:02:21 -05:00
Binh-Minh Ribler
99d26d20f8 [svn-r10242] Purpose: Updating C++ tests
Description:
    Added an overloaded function for the template function verify_val.
    Updated various comments/headers.

Platforms tested:
    Linux 2.4 (heping)
    AIX 5.1 (copper)
2005-03-19 23:01:25 -05:00
Binh-Minh Ribler
31a5ef7b22 [svn-r9890] Purpose: Clean up tests
Description:
    + C tests' macro VERIFY casts values to 'long' for all cases.  Since
      there are no operator<< for 'long long' or int64 in VS C++ ostream,
      I casted the hsize_t/hssize_t values passed to verify_val to 'long'
      as well.  If problems arise later, this may have to be specificly
      handled with an overload - th5s.cpp
    + Added the use of InvalidActionException for when an action
      should cause an exception but didn't - th5s.cpp and tfile.cpp
    + Small changes to improve failure reports

Platforms tested:
    SunOS 5.7 (arabica)
    Linux 2.4 (eirene)
2005-01-30 23:03:36 -05:00
Binh-Minh Ribler
e5797d173b [svn-r9789] Purpose: Tests cleanup
Description:
    C tests' macro VERIFY casts values to 'long' for all cases.  Since
    there are no operator<< for 'long long' or int64 in VS C++ ostream,
    I casted the hsize_t/hssize_t values passed to verify_val to 'long'
    as well.  If problems arise later, this may have to be specificly
    handled with an overload.

Platforms tested:
    Linux 2.4 (eirene)
    Windows 2000
2005-01-09 23:40:51 -05:00
Binh-Minh Ribler
b36c5db865 [svn-r9737] Purpose: Clean up tests
Description:
    Corrected a misuse of a variable causing access violation.

Platforms tested:
    SunOS 5.7 (arabica)
    Linux 2.4 (eirene)
2005-01-03 11:04:23 -05:00