[svn-r25082] Bug HDFFV-8625, HDFFV-8639, HDFFV-8745:

h5diff issues "unable to read attribute" error message when comparing
    two files

Description:
    h5diff did not handle attributes of variable length strings
    correctly. It created the wrong memory type if one but not both
    compared attributes are of the variable strings type. It ended in
    H5Aread() failure.

Solution:
    We decided to treat the case when one type is variable length string
    and the other is not as incomparable. That bypassed the above error.
    We still need to figure out the proper way, if possible, to compare
    variable string with non-variable string types.

Tested: h5committested plus tested in Swallow (OS X 10.8).
This commit is contained in:
Albert Cheng
2014-04-22 17:30:38 -05:00
parent 2fc0c50a9d
commit 7031b03ac8
10 changed files with 66 additions and 8 deletions

View File

@@ -103,6 +103,13 @@ void parse_command_line(int argc,
/* NaNs are handled by default */
options->do_nans = 1;
/* not Listing objects that are not comparable */
options->m_list_not_cmp = 0;
/* initially no not-comparable. */
/**this is bad in mixing option with results**/
options->not_cmp=0;
/* init for exclude-path option */
exclude_head = NULL;
@@ -174,7 +181,7 @@ void parse_command_line(int argc,
options->exclude_path = 1;
/* create linked list of excluding objects */
if( (exclude_node = (struct exclude_path_list*) malloc(sizeof(struct exclude_path_list))) == NULL)
if( (exclude_node = (struct exclude_path_list*) HDmalloc(sizeof(struct exclude_path_list))) == NULL)
{
printf("Error: lack of memory!\n");
h5diff_exit(EXIT_FAILURE);