LCOV - code coverage report
Current view: top level - src/io - HDF5Common.cpp (source / functions) Hit Total Coverage
Test: coverage_sk.info Lines: 15 15 100.0 %
Date: 2020-12-16 07:07:30 Functions: 1 1 100.0 %
Branches: 10 20 50.0 %

           Branch data     Line data    Source code
       1                 :            : #include <HDF5Common.hpp>
       2                 :            : #include <H5Spublic.h>
       3                 :            : #include <assert.h>
       4                 :            : 
       5                 :            : namespace moab
       6                 :            : {
       7                 :            : 
       8                 :         66 : bool HDF5_can_append_hyperslabs()
       9                 :            : {
      10                 :         66 :     hsize_t dim = 100;
      11         [ +  - ]:         66 :     hid_t space = H5Screate_simple( 1, &dim, NULL );
      12                 :         66 :     bool result = false;
      13                 :            : 
      14                 :         66 :     HDF5_Error_Func_Type fptr = 0;
      15                 :         66 :     void* fdata               = 0;
      16                 :            : #if defined( H5Eget_auto_vers ) && H5Eget_auto_vers > 1
      17 [ +  - ][ +  - ]:         66 :     if( 0 <= H5Eget_auto( H5E_DEFAULT, &fptr, &fdata ) ) H5Eset_auto( H5E_DEFAULT, 0, 0 );
                 [ +  - ]
      18                 :            : #else
      19                 :            :     if( 0 <= H5Eget_auto( &fptr, &fdata ) ) H5Eset_auto( 0, 0 );
      20                 :            : #endif
      21                 :            : 
      22                 :         66 :     hsize_t start = 1, count = 5;
      23         [ +  - ]:         66 :     H5Sselect_hyperslab( space, H5S_SELECT_SET, &start, 0, &count, 0 );
      24                 :         66 :     start = 20;
      25 [ +  - ][ -  + ]:         66 :     if( 0 <= H5Sselect_hyperslab( space, H5S_SELECT_APPEND, &start, 0, &count, 0 ) ) result = true;
      26                 :            : 
      27         [ +  - ]:         66 :     if( fptr )
      28                 :            :     {
      29                 :            : #if defined( H5Eset_auto_vers ) && H5Eset_auto_vers > 1
      30         [ +  - ]:         66 :         H5Eset_auto( H5E_DEFAULT, fptr, fdata );
      31                 :            : #else
      32                 :            :         H5Eset_auto( fptr, fdata );
      33                 :            : #endif
      34                 :            :     }
      35         [ +  - ]:         66 :     H5Sclose( space );
      36                 :            : 
      37                 :         66 :     return result;
      38                 :            : }
      39                 :            : 
      40                 :            : }  // namespace moab

Generated by: LCOV version 1.11