Fix for daily test failure for test/fheap.c

The failure occurs when HDF5TestExpress is set to 0.
The check for file size check fails due to persisting free-space when creating the file.
The fix is to set libver bounds (v18, latest) when creating the test file.
This commit is contained in:
Vailin Choi 2018-02-18 20:24:15 -06:00
parent 90f9596c3a
commit 2fb0b8c353

View File

@ -16458,6 +16458,33 @@ main(void)
if(H5Pset_file_space_strategy(fcpl, H5F_FSPACE_STRATEGY_FSM_AGGR, TRUE, (hsize_t)1) < 0)
TEST_ERROR
fapl = def_fapl;
/* This is a fix for the daily test failure from the checkin for libver bounds. */
/*
* Many tests failed the file size check when comparing (a) and (b) as below:
* --Create a file and close the file. Got the initial file size (a).
* --Reopen the file, perform fractal heap operations, and close the file.
* Got the file size (b).
* The cause for the file size differences:
* When the file is initially created with persisting free-space and with
* (earliest, latest) libver bounds, the file will have version 2 superblock
* due to non-default free-space handling. As the low bound is earliest,
* the library uses version 1 object header when creating the superblock
* extension message.
* When the file is reopened with the same libver bounds, the file's low
* bound is upgraded to v18 because the file has version 2 superblock.
* When the library creates the superblock extension message on file close,
* the library uses version 2 object header for the superblock extension
* message since the low bound is v18.
* This leads to the discrepancy in file sizes as the file is persisting
* free-space and there is object header version differences.
* The fix:
* Set libver bounds in fapl to (v18, latest) so that the file created in the
* test routines will have low bound set to v18. This will cause the
* library to use version 2 object header for the superblock extension
* message.
*/
if(H5Pset_libver_bounds(fapl, H5F_LIBVER_V18, H5F_LIBVER_LATEST) < 0)
TEST_ERROR
break;
case 2:
if(H5Pset_file_space_strategy(fcpl, H5F_FSPACE_STRATEGY_PAGE, FALSE, (hsize_t)1) < 0)