summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tools/h5diff/h5diff_common.c34
-rw-r--r--tools/h5diff/h5diff_main.c4
-rw-r--r--tools/h5diff/testfiles/h5diff_10.txt19
-rw-r--r--tools/h5diff/testfiles/h5diff_19.txt24
-rw-r--r--tools/h5diff/testfiles/h5diff_600.txt19
-rw-r--r--tools/h5diff/testfiles/h5diff_603.txt19
-rw-r--r--tools/h5diff/testfiles/h5diff_604.txt19
-rw-r--r--tools/h5diff/testfiles/h5diff_605.txt19
-rw-r--r--tools/h5diff/testfiles/h5diff_606.txt19
-rw-r--r--tools/h5diff/testfiles/h5diff_612.txt19
-rw-r--r--tools/h5diff/testfiles/h5diff_613.txt19
-rw-r--r--tools/h5diff/testfiles/h5diff_614.txt19
-rw-r--r--tools/h5diff/testfiles/h5diff_615.txt19
-rw-r--r--tools/h5diff/testfiles/h5diff_621.txt19
-rw-r--r--tools/h5diff/testfiles/h5diff_622.txt19
-rw-r--r--tools/h5diff/testfiles/h5diff_623.txt19
-rw-r--r--tools/h5diff/testfiles/h5diff_624.txt19
-rwxr-xr-xtools/h5diff/testh5diff.sh6
-rwxr-xr-xtools/h5repack/h5repack.sh.in4
-rw-r--r--tools/lib/h5diff.c137
-rw-r--r--tools/lib/h5diff.h2
21 files changed, 361 insertions, 116 deletions
diff --git a/tools/h5diff/h5diff_common.c b/tools/h5diff/h5diff_common.c
index 357bb32..05111a9 100644
--- a/tools/h5diff/h5diff_common.c
+++ b/tools/h5diff/h5diff_common.c
@@ -31,7 +31,7 @@ const char *progname = "h5diff";
* Command-line options: The user can specify short or long-named
* parameters.
*/
-static const char *s_opts = "hVrvqn:d:p:";
+static const char *s_opts = "hVrvqn:d:p:c";
static struct long_options l_opts[] = {
{ "help", no_arg, 'h' },
{ "version", no_arg, 'V' },
@@ -41,6 +41,7 @@ static struct long_options l_opts[] = {
{ "count", require_arg, 'n' },
{ "delta", require_arg, 'd' },
{ "relative", require_arg, 'p' },
+ { "contents", no_arg, 'c' },
{ NULL, 0, '\0' }
};
@@ -91,6 +92,9 @@ void parse_command_line(int argc,
case 'r':
options->m_report = 1;
break;
+ case 'c':
+ options->m_contents = 1;
+ break;
case 'd':
options->d=1;
@@ -170,7 +174,7 @@ void parse_command_line(int argc,
void print_info(diff_opt_t* options)
{
- if (options->m_quiet || options->err_stat)
+ if (options->m_quiet || options->err_stat || options->m_contents)
return;
if (options->cmn_objs==0)
@@ -318,8 +322,10 @@ void usage(void)
printf(" -V, --version Print version number and exit\n");
printf(" -r, --report Report mode. Print differences\n");
printf(" -v, --verbose Verbose mode. Print differences, list of objects\n");
-
printf(" -q, --quiet Quiet mode. Do not do output\n");
+ printf(" -c, --contents Contents mode. Objects in both files must match\n");
+
+
printf(" -n C, --count=C Print differences up to C number\n");
printf(" -d D, --delta=D Print difference when greater than limit D\n");
printf(" -p R, --relative=R Print difference when greater than relative limit R\n");
@@ -339,6 +345,22 @@ void usage(void)
printf(" -r Report mode: print the above plus the differences\n");
printf(" -v Verbose mode: print the above plus a list of objects and warnings\n");
printf(" -q Quiet mode: do not print output\n");
+ printf(" -c Contents mode: objects in both files must match\n");
+
+ printf("\n");
+
+ printf(" Compare criteria\n");
+ printf("\n");
+ printf(" If no objects [obj1[obj2]] are specified, h5diff only compares objects\n");
+ printf(" with the same absolute path in both files. However,\n");
+ printf(" when the -c flag is present, (contents mode) the objects in file1\n");
+ printf(" must match exactly the objects in file2\n");
+ printf("\n");
+
+ printf(" The compare criteria is:\n");
+ printf(" 1) datasets: numerical array differences 2) groups: name string difference\n");
+ printf(" 3) datatypes: the return value of H5Tequal 2) links: name string difference\n");
+ printf(" of the linked value\n");
printf("\n");
@@ -368,11 +390,7 @@ void usage(void)
printf("\n");
printf(" to compare '/g1/dset1' and '/g1/dset2' in the same file\n");
printf("\n");
- printf(" If no objects [obj1[obj2]] are specified, h5diff only compares objects\n");
- printf(" with the same absolute path in both files. The compare criteria is:\n");
- printf(" 1) datasets: numerical array differences 2) groups: name string difference\n");
- printf(" 3) datatypes: the return value of H5Tequal 2) links: name string difference\n");
- printf(" of the linked value\n");
+
}
diff --git a/tools/h5diff/h5diff_main.c b/tools/h5diff/h5diff_main.c
index 54a075f..17fe275 100644
--- a/tools/h5diff/h5diff_main.c
+++ b/tools/h5diff/h5diff_main.c
@@ -89,6 +89,10 @@ int main(int argc, const char *argv[])
*/
ret = (nfound == 0 ? 0 : 1 );
+
+ if ( options.m_contents && options.contents == 0 )
+ ret = 1;
+
if(options.err_stat)
ret = -1;
return ret;
diff --git a/tools/h5diff/testfiles/h5diff_10.txt b/tools/h5diff/testfiles/h5diff_10.txt
index 887ee9e..8877a75 100644
--- a/tools/h5diff/testfiles/h5diff_10.txt
+++ b/tools/h5diff/testfiles/h5diff_10.txt
@@ -9,6 +9,7 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[obj2]]
-r, --report Report mode. Print differences
-v, --verbose Verbose mode. Print differences, list of objects
-q, --quiet Quiet mode. Do not do output
+ -c, --contents Contents mode. Objects in both files must match
-n C, --count=C Print differences up to C number
-d D, --delta=D Print difference when greater than limit D
-p R, --relative=R Print difference when greater than relative limit R
@@ -23,6 +24,19 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[obj2]]
-r Report mode: print the above plus the differences
-v Verbose mode: print the above plus a list of objects and warnings
-q Quiet mode: do not print output
+ -c Contents mode: objects in both files must match
+
+ Compare criteria
+
+ If no objects [obj1[obj2]] are specified, h5diff only compares objects
+ with the same absolute path in both files. However,
+ when the -c flag is present, (contents mode) the objects in file1
+ must match exactly the objects in file2
+
+ The compare criteria is:
+ 1) datasets: numerical array differences 2) groups: name string difference
+ 3) datatypes: the return value of H5Tequal 2) links: name string difference
+ of the linked value
Return exit code:
@@ -48,8 +62,3 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[obj2]]
to compare '/g1/dset1' and '/g1/dset2' in the same file
- If no objects [obj1[obj2]] are specified, h5diff only compares objects
- with the same absolute path in both files. The compare criteria is:
- 1) datasets: numerical array differences 2) groups: name string difference
- 3) datatypes: the return value of H5Tequal 2) links: name string difference
- of the linked value
diff --git a/tools/h5diff/testfiles/h5diff_19.txt b/tools/h5diff/testfiles/h5diff_19.txt
new file mode 100644
index 0000000..cda2f73
--- /dev/null
+++ b/tools/h5diff/testfiles/h5diff_19.txt
@@ -0,0 +1,24 @@
+
+file1 file2
+---------------------------------------
+ x x /
+ x /g1
+ x /g1/d1
+ x /g1/d2
+ x /g1/dset1
+ x /g1/dset10
+ x /g1/dset3
+ x /g1/dset5
+ x /g1/dset6
+ x /g1/dset7
+ x /g1/dset8
+ x /g1/dset9
+ x /g1/fp1
+ x /g1/fp15
+ x /g1/fp16
+ x /g1/fp17
+ x /g1/fp18
+ x /g1/fp2
+
+group : </> and </>
+0 differences found
diff --git a/tools/h5diff/testfiles/h5diff_600.txt b/tools/h5diff/testfiles/h5diff_600.txt
index 82b69d9..3697279 100644
--- a/tools/h5diff/testfiles/h5diff_600.txt
+++ b/tools/h5diff/testfiles/h5diff_600.txt
@@ -9,6 +9,7 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[obj2]]
-r, --report Report mode. Print differences
-v, --verbose Verbose mode. Print differences, list of objects
-q, --quiet Quiet mode. Do not do output
+ -c, --contents Contents mode. Objects in both files must match
-n C, --count=C Print differences up to C number
-d D, --delta=D Print difference when greater than limit D
-p R, --relative=R Print difference when greater than relative limit R
@@ -23,6 +24,19 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[obj2]]
-r Report mode: print the above plus the differences
-v Verbose mode: print the above plus a list of objects and warnings
-q Quiet mode: do not print output
+ -c Contents mode: objects in both files must match
+
+ Compare criteria
+
+ If no objects [obj1[obj2]] are specified, h5diff only compares objects
+ with the same absolute path in both files. However,
+ when the -c flag is present, (contents mode) the objects in file1
+ must match exactly the objects in file2
+
+ The compare criteria is:
+ 1) datasets: numerical array differences 2) groups: name string difference
+ 3) datatypes: the return value of H5Tequal 2) links: name string difference
+ of the linked value
Return exit code:
@@ -48,9 +62,4 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[obj2]]
to compare '/g1/dset1' and '/g1/dset2' in the same file
- If no objects [obj1[obj2]] are specified, h5diff only compares objects
- with the same absolute path in both files. The compare criteria is:
- 1) datasets: numerical array differences 2) groups: name string difference
- 3) datatypes: the return value of H5Tequal 2) links: name string difference
- of the linked value
h5diff error: missing file names
diff --git a/tools/h5diff/testfiles/h5diff_603.txt b/tools/h5diff/testfiles/h5diff_603.txt
index 9ddf674..a2f07f2 100644
--- a/tools/h5diff/testfiles/h5diff_603.txt
+++ b/tools/h5diff/testfiles/h5diff_603.txt
@@ -10,6 +10,7 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[obj2]]
-r, --report Report mode. Print differences
-v, --verbose Verbose mode. Print differences, list of objects
-q, --quiet Quiet mode. Do not do output
+ -c, --contents Contents mode. Objects in both files must match
-n C, --count=C Print differences up to C number
-d D, --delta=D Print difference when greater than limit D
-p R, --relative=R Print difference when greater than relative limit R
@@ -24,6 +25,19 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[obj2]]
-r Report mode: print the above plus the differences
-v Verbose mode: print the above plus a list of objects and warnings
-q Quiet mode: do not print output
+ -c Contents mode: objects in both files must match
+
+ Compare criteria
+
+ If no objects [obj1[obj2]] are specified, h5diff only compares objects
+ with the same absolute path in both files. However,
+ when the -c flag is present, (contents mode) the objects in file1
+ must match exactly the objects in file2
+
+ The compare criteria is:
+ 1) datasets: numerical array differences 2) groups: name string difference
+ 3) datatypes: the return value of H5Tequal 2) links: name string difference
+ of the linked value
Return exit code:
@@ -49,8 +63,3 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[obj2]]
to compare '/g1/dset1' and '/g1/dset2' in the same file
- If no objects [obj1[obj2]] are specified, h5diff only compares objects
- with the same absolute path in both files. The compare criteria is:
- 1) datasets: numerical array differences 2) groups: name string difference
- 3) datatypes: the return value of H5Tequal 2) links: name string difference
- of the linked value
diff --git a/tools/h5diff/testfiles/h5diff_604.txt b/tools/h5diff/testfiles/h5diff_604.txt
index 763999d..90d9bdb 100644
--- a/tools/h5diff/testfiles/h5diff_604.txt
+++ b/tools/h5diff/testfiles/h5diff_604.txt
@@ -10,6 +10,7 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[obj2]]
-r, --report Report mode. Print differences
-v, --verbose Verbose mode. Print differences, list of objects
-q, --quiet Quiet mode. Do not do output
+ -c, --contents Contents mode. Objects in both files must match
-n C, --count=C Print differences up to C number
-d D, --delta=D Print difference when greater than limit D
-p R, --relative=R Print difference when greater than relative limit R
@@ -24,6 +25,19 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[obj2]]
-r Report mode: print the above plus the differences
-v Verbose mode: print the above plus a list of objects and warnings
-q Quiet mode: do not print output
+ -c Contents mode: objects in both files must match
+
+ Compare criteria
+
+ If no objects [obj1[obj2]] are specified, h5diff only compares objects
+ with the same absolute path in both files. However,
+ when the -c flag is present, (contents mode) the objects in file1
+ must match exactly the objects in file2
+
+ The compare criteria is:
+ 1) datasets: numerical array differences 2) groups: name string difference
+ 3) datatypes: the return value of H5Tequal 2) links: name string difference
+ of the linked value
Return exit code:
@@ -49,8 +63,3 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[obj2]]
to compare '/g1/dset1' and '/g1/dset2' in the same file
- If no objects [obj1[obj2]] are specified, h5diff only compares objects
- with the same absolute path in both files. The compare criteria is:
- 1) datasets: numerical array differences 2) groups: name string difference
- 3) datatypes: the return value of H5Tequal 2) links: name string difference
- of the linked value
diff --git a/tools/h5diff/testfiles/h5diff_605.txt b/tools/h5diff/testfiles/h5diff_605.txt
index e00bf5b..9e45341 100644
--- a/tools/h5diff/testfiles/h5diff_605.txt
+++ b/tools/h5diff/testfiles/h5diff_605.txt
@@ -10,6 +10,7 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[obj2]]
-r, --report Report mode. Print differences
-v, --verbose Verbose mode. Print differences, list of objects
-q, --quiet Quiet mode. Do not do output
+ -c, --contents Contents mode. Objects in both files must match
-n C, --count=C Print differences up to C number
-d D, --delta=D Print difference when greater than limit D
-p R, --relative=R Print difference when greater than relative limit R
@@ -24,6 +25,19 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[obj2]]
-r Report mode: print the above plus the differences
-v Verbose mode: print the above plus a list of objects and warnings
-q Quiet mode: do not print output
+ -c Contents mode: objects in both files must match
+
+ Compare criteria
+
+ If no objects [obj1[obj2]] are specified, h5diff only compares objects
+ with the same absolute path in both files. However,
+ when the -c flag is present, (contents mode) the objects in file1
+ must match exactly the objects in file2
+
+ The compare criteria is:
+ 1) datasets: numerical array differences 2) groups: name string difference
+ 3) datatypes: the return value of H5Tequal 2) links: name string difference
+ of the linked value
Return exit code:
@@ -49,8 +63,3 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[obj2]]
to compare '/g1/dset1' and '/g1/dset2' in the same file
- If no objects [obj1[obj2]] are specified, h5diff only compares objects
- with the same absolute path in both files. The compare criteria is:
- 1) datasets: numerical array differences 2) groups: name string difference
- 3) datatypes: the return value of H5Tequal 2) links: name string difference
- of the linked value
diff --git a/tools/h5diff/testfiles/h5diff_606.txt b/tools/h5diff/testfiles/h5diff_606.txt
index 3d77495..31053d5 100644
--- a/tools/h5diff/testfiles/h5diff_606.txt
+++ b/tools/h5diff/testfiles/h5diff_606.txt
@@ -10,6 +10,7 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[obj2]]
-r, --report Report mode. Print differences
-v, --verbose Verbose mode. Print differences, list of objects
-q, --quiet Quiet mode. Do not do output
+ -c, --contents Contents mode. Objects in both files must match
-n C, --count=C Print differences up to C number
-d D, --delta=D Print difference when greater than limit D
-p R, --relative=R Print difference when greater than relative limit R
@@ -24,6 +25,19 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[obj2]]
-r Report mode: print the above plus the differences
-v Verbose mode: print the above plus a list of objects and warnings
-q Quiet mode: do not print output
+ -c Contents mode: objects in both files must match
+
+ Compare criteria
+
+ If no objects [obj1[obj2]] are specified, h5diff only compares objects
+ with the same absolute path in both files. However,
+ when the -c flag is present, (contents mode) the objects in file1
+ must match exactly the objects in file2
+
+ The compare criteria is:
+ 1) datasets: numerical array differences 2) groups: name string difference
+ 3) datatypes: the return value of H5Tequal 2) links: name string difference
+ of the linked value
Return exit code:
@@ -49,8 +63,3 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[obj2]]
to compare '/g1/dset1' and '/g1/dset2' in the same file
- If no objects [obj1[obj2]] are specified, h5diff only compares objects
- with the same absolute path in both files. The compare criteria is:
- 1) datasets: numerical array differences 2) groups: name string difference
- 3) datatypes: the return value of H5Tequal 2) links: name string difference
- of the linked value
diff --git a/tools/h5diff/testfiles/h5diff_612.txt b/tools/h5diff/testfiles/h5diff_612.txt
index 8f665b8..0a05b7f 100644
--- a/tools/h5diff/testfiles/h5diff_612.txt
+++ b/tools/h5diff/testfiles/h5diff_612.txt
@@ -10,6 +10,7 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[obj2]]
-r, --report Report mode. Print differences
-v, --verbose Verbose mode. Print differences, list of objects
-q, --quiet Quiet mode. Do not do output
+ -c, --contents Contents mode. Objects in both files must match
-n C, --count=C Print differences up to C number
-d D, --delta=D Print difference when greater than limit D
-p R, --relative=R Print difference when greater than relative limit R
@@ -24,6 +25,19 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[obj2]]
-r Report mode: print the above plus the differences
-v Verbose mode: print the above plus a list of objects and warnings
-q Quiet mode: do not print output
+ -c Contents mode: objects in both files must match
+
+ Compare criteria
+
+ If no objects [obj1[obj2]] are specified, h5diff only compares objects
+ with the same absolute path in both files. However,
+ when the -c flag is present, (contents mode) the objects in file1
+ must match exactly the objects in file2
+
+ The compare criteria is:
+ 1) datasets: numerical array differences 2) groups: name string difference
+ 3) datatypes: the return value of H5Tequal 2) links: name string difference
+ of the linked value
Return exit code:
@@ -49,8 +63,3 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[obj2]]
to compare '/g1/dset1' and '/g1/dset2' in the same file
- If no objects [obj1[obj2]] are specified, h5diff only compares objects
- with the same absolute path in both files. The compare criteria is:
- 1) datasets: numerical array differences 2) groups: name string difference
- 3) datatypes: the return value of H5Tequal 2) links: name string difference
- of the linked value
diff --git a/tools/h5diff/testfiles/h5diff_613.txt b/tools/h5diff/testfiles/h5diff_613.txt
index f3f16fd..155d7f6 100644
--- a/tools/h5diff/testfiles/h5diff_613.txt
+++ b/tools/h5diff/testfiles/h5diff_613.txt
@@ -10,6 +10,7 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[obj2]]
-r, --report Report mode. Print differences
-v, --verbose Verbose mode. Print differences, list of objects
-q, --quiet Quiet mode. Do not do output
+ -c, --contents Contents mode. Objects in both files must match
-n C, --count=C Print differences up to C number
-d D, --delta=D Print difference when greater than limit D
-p R, --relative=R Print difference when greater than relative limit R
@@ -24,6 +25,19 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[obj2]]
-r Report mode: print the above plus the differences
-v Verbose mode: print the above plus a list of objects and warnings
-q Quiet mode: do not print output
+ -c Contents mode: objects in both files must match
+
+ Compare criteria
+
+ If no objects [obj1[obj2]] are specified, h5diff only compares objects
+ with the same absolute path in both files. However,
+ when the -c flag is present, (contents mode) the objects in file1
+ must match exactly the objects in file2
+
+ The compare criteria is:
+ 1) datasets: numerical array differences 2) groups: name string difference
+ 3) datatypes: the return value of H5Tequal 2) links: name string difference
+ of the linked value
Return exit code:
@@ -49,8 +63,3 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[obj2]]
to compare '/g1/dset1' and '/g1/dset2' in the same file
- If no objects [obj1[obj2]] are specified, h5diff only compares objects
- with the same absolute path in both files. The compare criteria is:
- 1) datasets: numerical array differences 2) groups: name string difference
- 3) datatypes: the return value of H5Tequal 2) links: name string difference
- of the linked value
diff --git a/tools/h5diff/testfiles/h5diff_614.txt b/tools/h5diff/testfiles/h5diff_614.txt
index c78fc8c..fac1c6a 100644
--- a/tools/h5diff/testfiles/h5diff_614.txt
+++ b/tools/h5diff/testfiles/h5diff_614.txt
@@ -10,6 +10,7 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[obj2]]
-r, --report Report mode. Print differences
-v, --verbose Verbose mode. Print differences, list of objects
-q, --quiet Quiet mode. Do not do output
+ -c, --contents Contents mode. Objects in both files must match
-n C, --count=C Print differences up to C number
-d D, --delta=D Print difference when greater than limit D
-p R, --relative=R Print difference when greater than relative limit R
@@ -24,6 +25,19 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[obj2]]
-r Report mode: print the above plus the differences
-v Verbose mode: print the above plus a list of objects and warnings
-q Quiet mode: do not print output
+ -c Contents mode: objects in both files must match
+
+ Compare criteria
+
+ If no objects [obj1[obj2]] are specified, h5diff only compares objects
+ with the same absolute path in both files. However,
+ when the -c flag is present, (contents mode) the objects in file1
+ must match exactly the objects in file2
+
+ The compare criteria is:
+ 1) datasets: numerical array differences 2) groups: name string difference
+ 3) datatypes: the return value of H5Tequal 2) links: name string difference
+ of the linked value
Return exit code:
@@ -49,8 +63,3 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[obj2]]
to compare '/g1/dset1' and '/g1/dset2' in the same file
- If no objects [obj1[obj2]] are specified, h5diff only compares objects
- with the same absolute path in both files. The compare criteria is:
- 1) datasets: numerical array differences 2) groups: name string difference
- 3) datatypes: the return value of H5Tequal 2) links: name string difference
- of the linked value
diff --git a/tools/h5diff/testfiles/h5diff_615.txt b/tools/h5diff/testfiles/h5diff_615.txt
index d25b847..f40ac2a 100644
--- a/tools/h5diff/testfiles/h5diff_615.txt
+++ b/tools/h5diff/testfiles/h5diff_615.txt
@@ -10,6 +10,7 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[obj2]]
-r, --report Report mode. Print differences
-v, --verbose Verbose mode. Print differences, list of objects
-q, --quiet Quiet mode. Do not do output
+ -c, --contents Contents mode. Objects in both files must match
-n C, --count=C Print differences up to C number
-d D, --delta=D Print difference when greater than limit D
-p R, --relative=R Print difference when greater than relative limit R
@@ -24,6 +25,19 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[obj2]]
-r Report mode: print the above plus the differences
-v Verbose mode: print the above plus a list of objects and warnings
-q Quiet mode: do not print output
+ -c Contents mode: objects in both files must match
+
+ Compare criteria
+
+ If no objects [obj1[obj2]] are specified, h5diff only compares objects
+ with the same absolute path in both files. However,
+ when the -c flag is present, (contents mode) the objects in file1
+ must match exactly the objects in file2
+
+ The compare criteria is:
+ 1) datasets: numerical array differences 2) groups: name string difference
+ 3) datatypes: the return value of H5Tequal 2) links: name string difference
+ of the linked value
Return exit code:
@@ -49,8 +63,3 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[obj2]]
to compare '/g1/dset1' and '/g1/dset2' in the same file
- If no objects [obj1[obj2]] are specified, h5diff only compares objects
- with the same absolute path in both files. The compare criteria is:
- 1) datasets: numerical array differences 2) groups: name string difference
- 3) datatypes: the return value of H5Tequal 2) links: name string difference
- of the linked value
diff --git a/tools/h5diff/testfiles/h5diff_621.txt b/tools/h5diff/testfiles/h5diff_621.txt
index 21dac0b..93f1714 100644
--- a/tools/h5diff/testfiles/h5diff_621.txt
+++ b/tools/h5diff/testfiles/h5diff_621.txt
@@ -10,6 +10,7 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[obj2]]
-r, --report Report mode. Print differences
-v, --verbose Verbose mode. Print differences, list of objects
-q, --quiet Quiet mode. Do not do output
+ -c, --contents Contents mode. Objects in both files must match
-n C, --count=C Print differences up to C number
-d D, --delta=D Print difference when greater than limit D
-p R, --relative=R Print difference when greater than relative limit R
@@ -24,6 +25,19 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[obj2]]
-r Report mode: print the above plus the differences
-v Verbose mode: print the above plus a list of objects and warnings
-q Quiet mode: do not print output
+ -c Contents mode: objects in both files must match
+
+ Compare criteria
+
+ If no objects [obj1[obj2]] are specified, h5diff only compares objects
+ with the same absolute path in both files. However,
+ when the -c flag is present, (contents mode) the objects in file1
+ must match exactly the objects in file2
+
+ The compare criteria is:
+ 1) datasets: numerical array differences 2) groups: name string difference
+ 3) datatypes: the return value of H5Tequal 2) links: name string difference
+ of the linked value
Return exit code:
@@ -49,8 +63,3 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[obj2]]
to compare '/g1/dset1' and '/g1/dset2' in the same file
- If no objects [obj1[obj2]] are specified, h5diff only compares objects
- with the same absolute path in both files. The compare criteria is:
- 1) datasets: numerical array differences 2) groups: name string difference
- 3) datatypes: the return value of H5Tequal 2) links: name string difference
- of the linked value
diff --git a/tools/h5diff/testfiles/h5diff_622.txt b/tools/h5diff/testfiles/h5diff_622.txt
index c46356a..0cdc67c 100644
--- a/tools/h5diff/testfiles/h5diff_622.txt
+++ b/tools/h5diff/testfiles/h5diff_622.txt
@@ -10,6 +10,7 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[obj2]]
-r, --report Report mode. Print differences
-v, --verbose Verbose mode. Print differences, list of objects
-q, --quiet Quiet mode. Do not do output
+ -c, --contents Contents mode. Objects in both files must match
-n C, --count=C Print differences up to C number
-d D, --delta=D Print difference when greater than limit D
-p R, --relative=R Print difference when greater than relative limit R
@@ -24,6 +25,19 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[obj2]]
-r Report mode: print the above plus the differences
-v Verbose mode: print the above plus a list of objects and warnings
-q Quiet mode: do not print output
+ -c Contents mode: objects in both files must match
+
+ Compare criteria
+
+ If no objects [obj1[obj2]] are specified, h5diff only compares objects
+ with the same absolute path in both files. However,
+ when the -c flag is present, (contents mode) the objects in file1
+ must match exactly the objects in file2
+
+ The compare criteria is:
+ 1) datasets: numerical array differences 2) groups: name string difference
+ 3) datatypes: the return value of H5Tequal 2) links: name string difference
+ of the linked value
Return exit code:
@@ -49,8 +63,3 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[obj2]]
to compare '/g1/dset1' and '/g1/dset2' in the same file
- If no objects [obj1[obj2]] are specified, h5diff only compares objects
- with the same absolute path in both files. The compare criteria is:
- 1) datasets: numerical array differences 2) groups: name string difference
- 3) datatypes: the return value of H5Tequal 2) links: name string difference
- of the linked value
diff --git a/tools/h5diff/testfiles/h5diff_623.txt b/tools/h5diff/testfiles/h5diff_623.txt
index 7ae15e8..b821511 100644
--- a/tools/h5diff/testfiles/h5diff_623.txt
+++ b/tools/h5diff/testfiles/h5diff_623.txt
@@ -10,6 +10,7 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[obj2]]
-r, --report Report mode. Print differences
-v, --verbose Verbose mode. Print differences, list of objects
-q, --quiet Quiet mode. Do not do output
+ -c, --contents Contents mode. Objects in both files must match
-n C, --count=C Print differences up to C number
-d D, --delta=D Print difference when greater than limit D
-p R, --relative=R Print difference when greater than relative limit R
@@ -24,6 +25,19 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[obj2]]
-r Report mode: print the above plus the differences
-v Verbose mode: print the above plus a list of objects and warnings
-q Quiet mode: do not print output
+ -c Contents mode: objects in both files must match
+
+ Compare criteria
+
+ If no objects [obj1[obj2]] are specified, h5diff only compares objects
+ with the same absolute path in both files. However,
+ when the -c flag is present, (contents mode) the objects in file1
+ must match exactly the objects in file2
+
+ The compare criteria is:
+ 1) datasets: numerical array differences 2) groups: name string difference
+ 3) datatypes: the return value of H5Tequal 2) links: name string difference
+ of the linked value
Return exit code:
@@ -49,8 +63,3 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[obj2]]
to compare '/g1/dset1' and '/g1/dset2' in the same file
- If no objects [obj1[obj2]] are specified, h5diff only compares objects
- with the same absolute path in both files. The compare criteria is:
- 1) datasets: numerical array differences 2) groups: name string difference
- 3) datatypes: the return value of H5Tequal 2) links: name string difference
- of the linked value
diff --git a/tools/h5diff/testfiles/h5diff_624.txt b/tools/h5diff/testfiles/h5diff_624.txt
index caf4e62..d9ce5e6 100644
--- a/tools/h5diff/testfiles/h5diff_624.txt
+++ b/tools/h5diff/testfiles/h5diff_624.txt
@@ -10,6 +10,7 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[obj2]]
-r, --report Report mode. Print differences
-v, --verbose Verbose mode. Print differences, list of objects
-q, --quiet Quiet mode. Do not do output
+ -c, --contents Contents mode. Objects in both files must match
-n C, --count=C Print differences up to C number
-d D, --delta=D Print difference when greater than limit D
-p R, --relative=R Print difference when greater than relative limit R
@@ -24,6 +25,19 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[obj2]]
-r Report mode: print the above plus the differences
-v Verbose mode: print the above plus a list of objects and warnings
-q Quiet mode: do not print output
+ -c Contents mode: objects in both files must match
+
+ Compare criteria
+
+ If no objects [obj1[obj2]] are specified, h5diff only compares objects
+ with the same absolute path in both files. However,
+ when the -c flag is present, (contents mode) the objects in file1
+ must match exactly the objects in file2
+
+ The compare criteria is:
+ 1) datasets: numerical array differences 2) groups: name string difference
+ 3) datatypes: the return value of H5Tequal 2) links: name string difference
+ of the linked value
Return exit code:
@@ -49,8 +63,3 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[obj2]]
to compare '/g1/dset1' and '/g1/dset2' in the same file
- If no objects [obj1[obj2]] are specified, h5diff only compares objects
- with the same absolute path in both files. The compare criteria is:
- 1) datasets: numerical array differences 2) groups: name string difference
- 3) datatypes: the return value of H5Tequal 2) links: name string difference
- of the linked value
diff --git a/tools/h5diff/testh5diff.sh b/tools/h5diff/testh5diff.sh
index a2a9ecc..d2fd6f8 100755
--- a/tools/h5diff/testh5diff.sh
+++ b/tools/h5diff/testh5diff.sh
@@ -41,6 +41,7 @@ SRCFILE7=h5diff_dset1.h5
SRCFILE8=h5diff_dset2.h5
SRCFILE9=h5diff_hyper1.h5
SRCFILE10=h5diff_hyper2.h5
+SRCFILE11=h5diff_empty.h5
FILE1="$INDIR/$SRCFILE1"
FILE2="$INDIR/$SRCFILE2"
@@ -52,6 +53,7 @@ FILE7="$INDIR/$SRCFILE7"
FILE8="$INDIR/$SRCFILE8"
FILE9="$INDIR/$SRCFILE9"
FILE10="$INDIR/$SRCFILE10"
+FILE11="$INDIR/$SRCFILE11"
H5DIFF=h5diff # The tool name
@@ -327,6 +329,10 @@ TOOLTEST h5diff_17.txt -v $FILE1 $FILE2
TESTING $H5DIFF -q $SRCFILE1 $SRCFILE2
TOOLTEST h5diff_18.txt -q $FILE1 $FILE2
+# 1.9 contents mode
+TESTING $H5DIFF -v -c $SRCFILE1 $SRCFILE11
+TOOLTEST h5diff_19.txt -v -c $FILE1 $FILE11
+
# ##############################################################################
# # not comparable types
# ##############################################################################
diff --git a/tools/h5repack/h5repack.sh.in b/tools/h5repack/h5repack.sh.in
index 334b384..0d3c7d4 100755
--- a/tools/h5repack/h5repack.sh.in
+++ b/tools/h5repack/h5repack.sh.in
@@ -93,9 +93,9 @@ DIFFTEST()
{
VERIFY $@
if [ "`uname -s`" = "TFLOPS O/S" ]; then
- $RUNSERIAL $H5DIFF_BIN -q $@
+ $RUNSERIAL $H5DIFF_BIN -q -c $@
else
- $RUNSERIAL $H5DIFF_BIN -q "$@"
+ $RUNSERIAL $H5DIFF_BIN -q -c "$@"
fi
RET=$?
if [ $RET != 0 ] ; then
diff --git a/tools/lib/h5diff.c b/tools/lib/h5diff.c
index 9d64e44..503affe 100644
--- a/tools/lib/h5diff.c
+++ b/tools/lib/h5diff.c
@@ -373,7 +373,8 @@ hsize_t diff_match(hid_t file1_id,
curr1 = 0;
curr2 = 0;
- while(curr1 < info1->nused && curr2 < info2->nused) {
+ while(curr1 < info1->nused && curr2 < info2->nused)
+ {
/* criteria is string compare */
int cmp = HDstrcmp(info1->paths[curr1].path, info2->paths[curr2].path);
@@ -385,13 +386,15 @@ hsize_t diff_match(hid_t file1_id,
curr1++;
curr2++;
} /* end if */
- else if(cmp < 0) {
+ else if(cmp < 0)
+ {
infile[0] = 1;
infile[1] = 0;
trav_table_addflags(infile, info1->paths[curr1].path, info1->paths[curr1].type, table);
curr1++;
} /* end else-if */
- else {
+ else
+ {
infile[0] = 0;
infile[1] = 1;
trav_table_addflags(infile, info2->paths[curr2].path, info2->paths[curr2].type, table);
@@ -402,7 +405,8 @@ hsize_t diff_match(hid_t file1_id,
/* list1 did not end */
infile[0] = 1;
infile[1] = 0;
- while(curr1 < info1->nused) {
+ while(curr1 < info1->nused)
+ {
trav_table_addflags(infile, info1->paths[curr1].path, info1->paths[curr1].type, table);
curr1++;
} /* end while */
@@ -410,7 +414,8 @@ hsize_t diff_match(hid_t file1_id,
/* list2 did not end */
infile[0] = 0;
infile[1] = 1;
- while(curr2 < info2->nused) {
+ while(curr2 < info2->nused)
+ {
trav_table_addflags(infile, info2->paths[curr2].path, info2->paths[curr2].type, table);
curr2++;
} /* end while */
@@ -435,6 +440,35 @@ hsize_t diff_match(hid_t file1_id,
} /* end if */
+
+ /*-------------------------------------------------------------------------
+ * contents mode. we do an "absolute" compare criteria, the number of objects
+ * in file1 must be the same as in file2
+ *-------------------------------------------------------------------------
+ */
+ if ( options->m_contents )
+ {
+ /* assume equal contents initially */
+ options->contents = 1;
+
+ /* number of different objects */
+ if ( info1->nused != info2->nused )
+ {
+ options->contents = 0;
+ }
+
+
+ for( i = 0; i < table->nobjs; i++)
+ {
+ if( table->objs[i].flags[0] != table->objs[i].flags[1] )
+ {
+ options->contents = 0;
+ }
+ }
+
+ }
+
+
/*-------------------------------------------------------------------------
* do the diff for common objects
*-------------------------------------------------------------------------
@@ -453,17 +487,21 @@ hsize_t diff_match(hid_t file1_id,
HDmemset(workerTasks, 1, (g_nTasks - 1));
#endif
- for(i = 0; i < table->nobjs; i++) {
- if(table->objs[i].flags[0] && table->objs[i].flags[1]) {
+ for(i = 0; i < table->nobjs; i++)
+ {
+ if( table->objs[i].flags[0] && table->objs[i].flags[1])
+ {
options->cmn_objs = 1;
- if(!g_Parallel) {
+ if(!g_Parallel)
+ {
nfound += diff(file1_id,
table->objs[i].name,
file2_id,
table->objs[i].name, options, table->objs[i].type);
} /* end if */
#ifdef H5_HAVE_PARALLEL
- else {
+ else
+ {
int workerFound = 0;
h5diffdebug("beginning of big else block\n");
@@ -476,7 +514,8 @@ hsize_t diff_match(hid_t file1_id,
*/
/*Set up args to pass to worker task. */
- if(HDstrlen(table->objs[i].name) > 255) {
+ if(HDstrlen(table->objs[i].name) > 255)
+ {
printf("The parallel diff only supports object names up to 255 characters\n");
MPI_Abort(MPI_COMM_WORLD, 0);
} /* end if */
@@ -487,14 +526,16 @@ hsize_t diff_match(hid_t file1_id,
h5diffdebug2("busyTasks=%d\n", busyTasks);
/* if there are any outstanding print requests, let's handle one. */
- if(busyTasks > 0) {
+ if(busyTasks > 0)
+ {
int incomingMessage;
/* check if any tasks freed up, and didn't need to print. */
MPI_Iprobe(MPI_ANY_SOURCE, MPI_TAG_DONE, MPI_COMM_WORLD, &incomingMessage, &Status);
/* first block*/
- if(incomingMessage) {
+ if(incomingMessage)
+ {
workerTasks[Status.MPI_SOURCE - 1] = 1;
MPI_Recv(&nFoundbyWorker, sizeof(nFoundbyWorker), MPI_BYTE, Status.MPI_SOURCE, MPI_TAG_DONE, MPI_COMM_WORLD, &Status);
nfound += nFoundbyWorker.nfound;
@@ -503,7 +544,8 @@ hsize_t diff_match(hid_t file1_id,
} /* end if */
/* check to see if the print token was returned. */
- if(!havePrintToken) {
+ if(!havePrintToken)
+ {
/* If we don't have the token, someone is probably sending us output */
print_incoming_data();
@@ -522,10 +564,12 @@ hsize_t diff_match(hid_t file1_id,
} /* end if */
/* check to see if anyone needs the print token. */
- if(havePrintToken) {
+ if(havePrintToken)
+ {
/* check incoming queue for print token requests */
MPI_Iprobe(MPI_ANY_SOURCE, MPI_TAG_TOK_REQUEST, MPI_COMM_WORLD, &incomingMessage, &Status);
- if(incomingMessage) {
+ if(incomingMessage)
+ {
MPI_Recv(NULL, 0, MPI_BYTE, Status.MPI_SOURCE, MPI_TAG_TOK_REQUEST, MPI_COMM_WORLD, &Status);
MPI_Send(NULL, 0, MPI_BYTE, Status.MPI_SOURCE, MPI_TAG_PRINT_TOK, MPI_COMM_WORLD);
havePrintToken = 0;
@@ -536,8 +580,10 @@ hsize_t diff_match(hid_t file1_id,
/* check array of tasks to see which ones are free.
* Manager task never does work, so freeTasks[0] is really
* worker task 0. */
- for(n = 1; (n < g_nTasks) && !workerFound; n++) {
- if(workerTasks[n-1]) {
+ for(n = 1; (n < g_nTasks) && !workerFound; n++)
+ {
+ if(workerTasks[n-1])
+ {
/* send file id's and names to first free worker */
MPI_Send(&args, sizeof(args), MPI_BYTE, n, MPI_TAG_ARGS, MPI_COMM_WORLD);
@@ -551,20 +597,24 @@ hsize_t diff_match(hid_t file1_id,
} /* end for */
h5diffdebug2("workerfound is %d \n", workerFound);
- if(!workerFound) {
+ if(!workerFound)
+ {
/* if they were all busy, we've got to wait for one free up
* before we can move on. If we don't have the token, some
* task is currently printing so we'll wait for that task to
* return it.
*/
- if(!havePrintToken) {
- while(!havePrintToken) {
+ if(!havePrintToken)
+ {
+ while(!havePrintToken)
+ {
int incomingMessage;
print_incoming_data();
MPI_Iprobe(MPI_ANY_SOURCE, MPI_TAG_TOK_RETURN, MPI_COMM_WORLD, &incomingMessage, &Status);
- if(incomingMessage) {
+ if(incomingMessage)
+ {
MPI_Recv(&nFoundbyWorker, sizeof(nFoundbyWorker), MPI_BYTE, MPI_ANY_SOURCE, MPI_TAG_TOK_RETURN, MPI_COMM_WORLD, &Status);
havePrintToken = 1;
nfound += nFoundbyWorker.nfound;
@@ -575,23 +625,27 @@ hsize_t diff_match(hid_t file1_id,
} /* end while */
} /* end if */
/* if we do have the token, check for task to free up, or wait for a task to request it */
- else {
+ else
+ {
/* But first print all the data in our incoming queue */
print_incoming_data();
MPI_Probe(MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, &Status);
- if(Status.MPI_TAG == MPI_TAG_DONE) {
+ if(Status.MPI_TAG == MPI_TAG_DONE)
+ {
MPI_Recv(&nFoundbyWorker, sizeof(nFoundbyWorker), MPI_BYTE, Status.MPI_SOURCE, MPI_TAG_DONE, MPI_COMM_WORLD, &Status);
nfound += nFoundbyWorker.nfound;
options->not_cmp = options->not_cmp | nFoundbyWorker.not_cmp;
MPI_Send(&args, sizeof(args), MPI_BYTE, Status.MPI_SOURCE, MPI_TAG_ARGS, MPI_COMM_WORLD);
} /* end if */
- else if(Status.MPI_TAG == MPI_TAG_TOK_REQUEST) {
+ else if(Status.MPI_TAG == MPI_TAG_TOK_REQUEST)
+ {
int incomingMessage;
MPI_Recv(NULL, 0, MPI_BYTE, Status.MPI_SOURCE, MPI_TAG_TOK_REQUEST, MPI_COMM_WORLD, &Status);
MPI_Send(NULL, 0, MPI_BYTE, Status.MPI_SOURCE, MPI_TAG_PRINT_TOK, MPI_COMM_WORLD);
- do {
+ do
+ {
MPI_Iprobe(MPI_ANY_SOURCE, MPI_TAG_TOK_RETURN, MPI_COMM_WORLD, &incomingMessage, &Status);
print_incoming_data();
@@ -602,7 +656,8 @@ hsize_t diff_match(hid_t file1_id,
options->not_cmp = options->not_cmp | nFoundbyWorker.not_cmp;
MPI_Send(&args, sizeof(args), MPI_BYTE, Status.MPI_SOURCE, MPI_TAG_ARGS, MPI_COMM_WORLD);
} /* end else-if */
- else {
+ else
+ {
printf("ERROR: Invalid tag (%d) received \n", Status.MPI_TAG);
MPI_Abort(MPI_COMM_WORLD, 0);
MPI_Finalize();
@@ -616,26 +671,32 @@ hsize_t diff_match(hid_t file1_id,
h5diffdebug("done with for loop\n");
#ifdef H5_HAVE_PARALLEL
- if(g_Parallel) {
+ if(g_Parallel)
+ {
/* make sure all tasks are done */
- while(busyTasks > 0) {
+ while(busyTasks > 0)
+ {
MPI_Probe(MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, &Status);
- if(Status.MPI_TAG == MPI_TAG_DONE) {
+ if(Status.MPI_TAG == MPI_TAG_DONE)
+ {
MPI_Recv(&nFoundbyWorker, sizeof(nFoundbyWorker), MPI_BYTE, Status.MPI_SOURCE, MPI_TAG_DONE, MPI_COMM_WORLD, &Status);
nfound += nFoundbyWorker.nfound;
options->not_cmp = options->not_cmp | nFoundbyWorker.not_cmp;
busyTasks--;
} /* end if */
- else if(Status.MPI_TAG == MPI_TAG_TOK_RETURN) {
+ else if(Status.MPI_TAG == MPI_TAG_TOK_RETURN)
+ {
MPI_Recv(&nFoundbyWorker, sizeof(nFoundbyWorker), MPI_BYTE, Status.MPI_SOURCE, MPI_TAG_DONE, MPI_COMM_WORLD, &Status);
nfound += nFoundbyWorker.nfound;
options->not_cmp = options->not_cmp | nFoundbyWorker.not_cmp;
busyTasks--;
havePrintToken = 1;
} /* end else-if */
- else if(Status.MPI_TAG == MPI_TAG_TOK_REQUEST) {
+ else if(Status.MPI_TAG == MPI_TAG_TOK_REQUEST)
+ {
MPI_Recv(NULL, 0, MPI_BYTE, Status.MPI_SOURCE, MPI_TAG_TOK_REQUEST, MPI_COMM_WORLD, &Status);
- if(havePrintToken) {
+ if(havePrintToken)
+ {
int incomingMessage;
MPI_Send(NULL, 0, MPI_BYTE, Status.MPI_SOURCE, MPI_TAG_PRINT_TOK, MPI_COMM_WORLD);
@@ -652,11 +713,13 @@ hsize_t diff_match(hid_t file1_id,
busyTasks--;
} /* end if */
/* someone else must have it...wait for them to return it, then give it to the task that just asked for it. */
- else {
+ else
+ {
int source = Status.MPI_SOURCE;
int incomingMessage;
- do {
+ do
+ {
MPI_Iprobe(MPI_ANY_SOURCE, MPI_TAG_TOK_RETURN, MPI_COMM_WORLD, &incomingMessage, &Status);
print_incoming_data();
@@ -670,7 +733,8 @@ hsize_t diff_match(hid_t file1_id,
MPI_Send(NULL, 0, MPI_BYTE, source, MPI_TAG_PRINT_TOK, MPI_COMM_WORLD);
} /* end else */
} /* end else-if */
- else if(Status.MPI_TAG == MPI_TAG_TOK_RETURN) {
+ else if(Status.MPI_TAG == MPI_TAG_TOK_RETURN)
+ {
MPI_Recv(&nFoundbyWorker, sizeof(nFoundbyWorker), MPI_BYTE, Status.MPI_SOURCE, MPI_TAG_TOK_RETURN, MPI_COMM_WORLD, &Status);
nfound += nFoundbyWorker.nfound;
options->not_cmp = options->not_cmp | nFoundbyWorker.not_cmp;
@@ -686,7 +750,8 @@ hsize_t diff_match(hid_t file1_id,
printf("%s", data);
} /* end else-if */
- else {
+ else
+ {
printf("ph5diff-manager: ERROR!! Invalid tag (%d) received \n", Status.MPI_TAG);
MPI_Abort(MPI_COMM_WORLD, 0);
} /* end else */
diff --git a/tools/lib/h5diff.h b/tools/lib/h5diff.h
index 373eeed..d12031a 100644
--- a/tools/lib/h5diff.h
+++ b/tools/lib/h5diff.h
@@ -37,6 +37,8 @@ typedef struct {
int err_stat; /* an error ocurred (1, error, 0, no error) */
int cmn_objs; /* do we have comparable objects */
int not_cmp; /* are the objects comparable */
+ int m_contents;/* contents mode */
+ int contents; /* equal contents */
} diff_opt_t;