summaryrefslogtreecommitdiffstats
path: root/tools/lib
diff options
context:
space:
mode:
Diffstat (limited to 'tools/lib')
-rw-r--r--tools/lib/h5diff.c34
-rw-r--r--tools/lib/h5diff_array.c9
-rw-r--r--tools/lib/h5diff_attr.c73
3 files changed, 99 insertions, 17 deletions
diff --git a/tools/lib/h5diff.c b/tools/lib/h5diff.c
index 818bc40..f5ba995 100644
--- a/tools/lib/h5diff.c
+++ b/tools/lib/h5diff.c
@@ -432,9 +432,39 @@ hsize_t diff( hid_t file1_id,
*-------------------------------------------------------------------------
*/
case H5G_DATASET:
- nfound=diff_dataset(file1_id,file2_id,path1,path2,options);
- if (print_objname(options,nfound))
+
+ /* always print name */
+ if (options->m_verbose)
+ {
+ if (print_objname(options,1))
printf( "Dataset: <%s> and <%s>\n",path1,path2);
+ nfound=diff_dataset(file1_id,file2_id,path1,path2,options);
+
+ }
+ /* check first if we have differences */
+ else
+ {
+ if (options->m_quiet==0)
+ {
+ /* shut up temporarily */
+ options->m_quiet=1;
+ nfound=diff_dataset(file1_id,file2_id,path1,path2,options);
+ /* print again */
+ options->m_quiet=0;
+ if (nfound)
+ {
+ if (print_objname(options,nfound))
+ printf( "Dataset: <%s> and <%s>\n",path1,path2);
+ nfound=diff_dataset(file1_id,file2_id,path1,path2,options);
+ } /*if*/
+ } /*if*/
+ /* in quiet mode, just count differences */
+ else
+ {
+ nfound=diff_dataset(file1_id,file2_id,path1,path2,options);
+ }
+ }/*else*/
+
break;
/*-------------------------------------------------------------------------
diff --git a/tools/lib/h5diff_array.c b/tools/lib/h5diff_array.c
index 51d87d0..73a1fbf 100644
--- a/tools/lib/h5diff_array.c
+++ b/tools/lib/h5diff_array.c
@@ -24,12 +24,13 @@ static hbool_t is_zero(const void *_mem, size_t size);
/*-------------------------------------------------------------------------
* Function: print_data
*
- * Purpose: print data only in report or verbose modes
+ * Purpose: print data only in report or verbose modes,
+ * and do not print in quiet mode
*-------------------------------------------------------------------------
*/
static int print_data(diff_opt_t *options)
-{
- return (options->m_report || options->m_verbose==1)?1:0;
+{
+ return ( (options->m_report || options->m_verbose) && !options->m_quiet)?1:0;
}
/*-------------------------------------------------------------------------
@@ -208,7 +209,7 @@ hsize_t diff_datum(void *_mem1,
H5G_stat_t sb1;
H5G_stat_t sb2;
hsize_t nfound=0; /* differences found */
- int ret;
+ int ret=0; /* check return error */
/* Build default formats for long long types */
sprintf(fmt_llong, "%%%sd %%%sd %%%sd\n",
diff --git a/tools/lib/h5diff_attr.c b/tools/lib/h5diff_attr.c
index bf3a874..6aedaf5 100644
--- a/tools/lib/h5diff_attr.c
+++ b/tools/lib/h5diff_attr.c
@@ -189,7 +189,12 @@ int diff_attr(hid_t loc1_id,
*/
sprintf(name1,"%s of <%s>",name1,path1);
sprintf(name2,"%s of <%s>",name2,path2);
- nfound = diff_array(buf1,
+
+ /* always print name */
+ if (options->m_verbose)
+ {
+ printf( "Attribute: <%s> and <%s>\n",name1,name2);
+ nfound = diff_array(buf1,
buf2,
nelmts1,
rank1,
@@ -200,18 +205,64 @@ int diff_attr(hid_t loc1_id,
mtype1_id,
attr1_id,
attr2_id);
-
- }/*cmp*/
-
-/*-------------------------------------------------------------------------
- * print how many differences were found
- *-------------------------------------------------------------------------
- */
- if (print_objname(options,nfound))
- {
- printf( "Attribute: <%s> and <%s>\n",name1,name2);
print_found(nfound);
+
}
+ /* check first if we have differences */
+ else
+ {
+ if (options->m_quiet==0)
+ {
+ /* shut up temporarily */
+ options->m_quiet=1;
+ nfound = diff_array(buf1,
+ buf2,
+ nelmts1,
+ rank1,
+ dims1,
+ options,
+ name1,
+ name2,
+ mtype1_id,
+ attr1_id,
+ attr2_id);
+ /* print again */
+ options->m_quiet=0;
+ if (nfound)
+ {
+ printf( "Attribute: <%s> and <%s>\n",name1,name2);
+ nfound = diff_array(buf1,
+ buf2,
+ nelmts1,
+ rank1,
+ dims1,
+ options,
+ name1,
+ name2,
+ mtype1_id,
+ attr1_id,
+ attr2_id);
+ print_found(nfound);
+ } /*if*/
+ } /*if*/
+ /* in quiet mode, just count differences */
+ else
+ {
+ nfound = diff_array(buf1,
+ buf2,
+ nelmts1,
+ rank1,
+ dims1,
+ options,
+ name1,
+ name2,
+ mtype1_id,
+ attr1_id,
+ attr2_id);
+ } /*else quiet */
+ } /*else verbose */
+ }/*cmp*/
+
/*-------------------------------------------------------------------------