[ET Trac] [Einstein Toolkit] #1849: CarpetIOHDF5: fix check for old string datatype

Einstein Toolkit trac-noreply at einsteintoolkit.org
Thu Dec 10 21:37:31 CST 2015


#1849: CarpetIOHDF5: fix check for old string datatype
--------------------+-------------------------------------------------------
 Reporter:  knarf   |       Owner:  eschnett           
     Type:  defect  |      Status:  new                
 Priority:  minor   |   Milestone:                     
Component:  Carpet  |     Version:  development version
 Keywords:  hdf5    |  
--------------------+-------------------------------------------------------
 The current code contains a check for an old way the grid structure string
 was saved: as H5T_NATIVE_CHAR. This check test whether the type found in a
 (checkpoint) file is of that type. However, this fails if H5T_NATIVE_CHAR
 was different on the machine writing the checkpoint and the one restoring
 from it (e.g., big vs. little endian int8).

 Instead of checking if the saved type is of type H5T_NATIVE_CHAR, this
 patch checks for the new datatype being of class H5T_STRING.

 This change makes the two restore testsuites pass on big endian machines
 (the checkpoint file in the testsuite was written using the old mechanism,
 on a little endian machine).

 https://bitbucket.org/eschnett/carpet/pull-
 requests/8/fixed_string_check/diff

 I tested that this fixes the problems on the big endian machine, and that
 the testsuite also still works on a regular, little endian machine, for
 both an old and a new-style checkpoint.

 The two lines changed both look like this:
 {{{
 -    HDF5_ERROR(old_data = H5Tequal(datatype, H5T_NATIVE_CHAR));
 +    HDF5_ERROR(old_data = 0 == H5Tdetect_class(datatype, H5T_STRING));
 }}}

 I am not sure about whether we should back-port this. It would be easy, as
 the change is very small, and I tested it, but I would like to have a
 separate "yes" for that.

-- 
Ticket URL: <https://trac.einsteintoolkit.org/ticket/1849>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit


More information about the Trac mailing list