h5diff failed tests with OpenMPI 1.6, Intel Cluster Suite XE and fortran support

Hi,

I find some troubles on h5diff tests in the last stable version (HDF5
1.8.9).
It seems that there are some changes in the h5diff source code, but maybe
some few tests are still using old expressions.

I find this thread of March 2012 talking about this "errors".
http://mail.hdfgroup.org/pipermail/hdf-forum_hdfgroup.org/2012-March/014418.html

I have compiled HDF5 with OpenMPI 1.6, Intel Cluster Suite XE and fortran
support on SLES 11SP2 (kernel 3.0.34).

export FC=mpif90
export CC=mpicc
export CXX=mpic++
export OMPI_PATH=/share/libs/openmpi/1.6/ics2012.0.032
export LDFLAGS="-fPIC -L$OMPI_PATH/lib -L$OMPI_PATH/lib/openmpi -lmpi
-lmpi_cxx -lopen-pal"
export CFLAGS="-fPIC -I$OMPI_PATH/include"
export CPPFLAGS="-fPIC -I$OMPI_PATH/include"
export CXXFLAGS="-fPIC -I$OMPI_PATH/include"
export FCFLAGS="-fPIC -I$OMPI_PATH/include"
export MKL_ROOT=/share/compilers/ics/2012.0.032/mkl
export LD_LIBRARY_PATH=$MKL_ROOT/lib/intel64/:$LD_LIBRARY_PATH:/lib64

./configure --enable-fortran --enable-parallel --with-zlib=/lib64
--without-szlib --enable-shared=yes --enable-static=yes
--prefix=/share/libs/hdf5/1.8.9/ics2012.0.032_openmpi1.6

This are the 4 failed tests errors:

   - <-n 0x1> is not a valid option
   - <-n -4> is not a valid option
   - h5diff error: missing file names
   - -d, -p and --use-system-epsilon options are mutually-exclusive;

I have modified the tools/h5diff/CMakeLists.txt and the
tools/h5diff/testh5diff.sh files, in order to skip all tests with this kind
of errors, but I would like to receive some feedback about that.

Thanks,

Jordi

diff -u tools/h5diff/CMakeLists.txt tools/h5diff/CMakeLists.txt.0
--- tools/h5diff/CMakeLists.txt 2012-08-17 21:30:55.000000000 +0200
+++ tools/h5diff/CMakeLists.txt.0 2012-05-09 17:06:12.000000000 +0200
@@ -973,7 +973,7 @@

···

#
##############################################################################

# 6.0: Check if the command line number of arguments is less than 3
-#ADD_H5_TEST (h5diff_600 1 ${FILE1})
+ADD_H5_TEST (h5diff_600 1 ${FILE1})

# 6.1: Check if non-exist object name is specified
ADD_H5_TEST (h5diff_601 2 ${FILE1} ${FILE1} nono_obj)
@@ -983,7 +983,7 @@
#
##############################################################################

# 6.3: negative value
-#ADD_H5_TEST (h5diff_603 1 -d -4 ${FILE1} ${FILE2} g1/dset3 g1/dset4)
+ADD_H5_TEST (h5diff_603 1 -d -4 ${FILE1} ${FILE2} g1/dset3 g1/dset4)

# 6.4: zero
ADD_H5_TEST (h5diff_604 1 -d 0 ${FILE1} ${FILE2} g1/dset3 g1/dset4)
@@ -992,7 +992,7 @@
ADD_H5_TEST (h5diff_605 1 -d u ${FILE1} ${FILE2} g1/dset3 g1/dset4)

# 6.6: hexadecimal
-#ADD_H5_TEST (h5diff_606 1 -d 0x1 ${FILE1} ${FILE2} g1/dset3 g1/dset4)
+ADD_H5_TEST (h5diff_606 1 -d 0x1 ${FILE1} ${FILE2} g1/dset3 g1/dset4)

# 6.7: string
ADD_H5_TEST (h5diff_607 1 -d "1" ${FILE1} ${FILE2} g1/dset3 g1/dset4)
@@ -1011,7 +1011,7 @@
#
##############################################################################

# 6.12: negative value
-#ADD_H5_TEST (h5diff_612 1 -p -4 ${FILE1} ${FILE2} g1/dset3 g1/dset4)
+ADD_H5_TEST (h5diff_612 1 -p -4 ${FILE1} ${FILE2} g1/dset3 g1/dset4)

# 6.13: zero
ADD_H5_TEST (h5diff_613 1 -p 0 ${FILE1} ${FILE2} g1/dset3 g1/dset4)
@@ -1020,7 +1020,7 @@
ADD_H5_TEST (h5diff_614 1 -p u ${FILE1} ${FILE2} g1/dset3 g1/dset4)

# 6.15: hexadecimal
-#ADD_H5_TEST (h5diff_615 1 -p 0x1 ${FILE1} ${FILE2} g1/dset3 g1/dset4)
+ADD_H5_TEST (h5diff_615 1 -p 0x1 ${FILE1} ${FILE2} g1/dset3 g1/dset4)

# 6.16: string
ADD_H5_TEST (h5diff_616 1 -p "0.21" ${FILE1} ${FILE2} g1/dset3 g1/dset4)
@@ -1039,28 +1039,28 @@
#
##############################################################################

# 6.21: negative value
-#ADD_H5_TEST (h5diff_621 1 -n -4 ${FILE1} ${FILE2} g1/dset3 g1/dset4)
+ADD_H5_TEST (h5diff_621 1 -n -4 ${FILE1} ${FILE2} g1/dset3 g1/dset4)

# 6.22: zero
-#ADD_H5_TEST (h5diff_622 1 -n 0 ${FILE1} ${FILE2} g1/dset3 g1/dset4)
+ADD_H5_TEST (h5diff_622 1 -n 0 ${FILE1} ${FILE2} g1/dset3 g1/dset4)

# 6.23: non number
-#ADD_H5_TEST (h5diff_623 1 -n u ${FILE1} ${FILE2} g1/dset3 g1/dset4)
+ADD_H5_TEST (h5diff_623 1 -n u ${FILE1} ${FILE2} g1/dset3 g1/dset4)

# 6.24: hexadecimal
-#ADD_H5_TEST (h5diff_624 1 -n 0x1 ${FILE1} ${FILE2} g1/dset3 g1/dset4)
+ADD_H5_TEST (h5diff_624 1 -n 0x1 ${FILE1} ${FILE2} g1/dset3 g1/dset4)

# 6.25: string
-#ADD_H5_TEST (h5diff_625 1 -n "2" ${FILE1} ${FILE2} g1/dset3 g1/dset4)
+ADD_H5_TEST (h5diff_625 1 -n "2" ${FILE1} ${FILE2} g1/dset3 g1/dset4)

# 6.26: repeated option
-#ADD_H5_TEST (h5diff_626 1 -n 2 -n 3 ${FILE1} ${FILE2} g1/dset3 g1/dset4)
+ADD_H5_TEST (h5diff_626 1 -n 2 -n 3 ${FILE1} ${FILE2} g1/dset3 g1/dset4)

# 6.27: number larger than biggest difference
ADD_H5_TEST (h5diff_627 1 --count=200 ${FILE1} ${FILE2} g1/dset3 g1/dset4)

# 6.28: number smaller than smallest difference
-#ADD_H5_TEST (h5diff_628 1 -n 1 ${FILE1} ${FILE2} g1/dset3 g1/dset4)
+ADD_H5_TEST (h5diff_628 1 -n 1 ${FILE1} ${FILE2} g1/dset3 g1/dset4)

# Disabling this test as it hangs - LRK 20090618
# 6.29 non valid files
@@ -1405,13 +1405,13 @@
#
##############################################################################
#
# Test with -d , -p and --use-system-epsilon.
-#ADD_H5_TEST (h5diff_640 1 -v -d 5 -p 0.05 --use-system-epsilon ${FILE1}
${FILE2} /g1/dset3 /g1/dset4)
-#ADD_H5_TEST (h5diff_641 1 -v -d 5 -p 0.05 ${FILE1} ${FILE2} /g1/dset3
/g1/dset4)
-#ADD_H5_TEST (h5diff_642 1 -v -p 0.05 -d 5 ${FILE1} ${FILE2} /g1/dset3
/g1/dset4)
-#ADD_H5_TEST (h5diff_643 1 -v -d 5 --use-system-epsilon ${FILE1} ${FILE2}
/g1/dset3 /g1/dset4)
-#ADD_H5_TEST (h5diff_644 1 -v --use-system-epsilon -d 5 ${FILE1} ${FILE2}
/g1/dset3 /g1/dset4)
-#ADD_H5_TEST (h5diff_645 1 -v -p 0.05 --use-system-epsilon ${FILE1}
${FILE2} /g1/dset3 /g1/dset4)
-#ADD_H5_TEST (h5diff_646 1 -v --use-system-epsilon -p 0.05 ${FILE1}
${FILE2} /g1/dset3 /g1/dset4)
+ADD_H5_TEST (h5diff_640 1 -v -d 5 -p 0.05 --use-system-epsilon ${FILE1}
${FILE2} /g1/dset3 /g1/dset4)
+ADD_H5_TEST (h5diff_641 1 -v -d 5 -p 0.05 ${FILE1} ${FILE2} /g1/dset3
/g1/dset4)
+ADD_H5_TEST (h5diff_642 1 -v -p 0.05 -d 5 ${FILE1} ${FILE2} /g1/dset3
/g1/dset4)
+ADD_H5_TEST (h5diff_643 1 -v -d 5 --use-system-epsilon ${FILE1} ${FILE2}
/g1/dset3 /g1/dset4)
+ADD_H5_TEST (h5diff_644 1 -v --use-system-epsilon -d 5 ${FILE1} ${FILE2}
/g1/dset3 /g1/dset4)
+ADD_H5_TEST (h5diff_645 1 -v -p 0.05 --use-system-epsilon ${FILE1}
${FILE2} /g1/dset3 /g1/dset4)
+ADD_H5_TEST (h5diff_646 1 -v --use-system-epsilon -p 0.05 ${FILE1}
${FILE2} /g1/dset3 /g1/dset4)

diff -u tools/h5diff/testh5diff.sh tools/h5diff/testh5diff.sh.0
--- tools/h5diff/testh5diff.sh 2012-08-17 21:30:29.000000000 +0200
+++ tools/h5diff/testh5diff.sh.0 2012-05-09 17:06:12.000000000 +0200
@@ -618,7 +618,7 @@

# 6.0: Check if the command line number of arguments is less than 3
-#TOOLTEST h5diff_600.txt h5diff_basic1.h5
+TOOLTEST h5diff_600.txt h5diff_basic1.h5

# 6.1: Check if non-exist object name is specified
TOOLTEST h5diff_601.txt h5diff_basic1.h5 h5diff_basic1.h5 nono_obj
@@ -630,7 +630,7 @@

# 6.3: negative value
-#TOOLTEST h5diff_603.txt -d -4 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3
g1/dset4
+TOOLTEST h5diff_603.txt -d -4 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3
g1/dset4

# 6.4: zero
TOOLTEST h5diff_604.txt -d 0 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3
g1/dset4
@@ -639,7 +639,7 @@
TOOLTEST h5diff_605.txt -d u h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3
g1/dset4

# 6.6: hexadecimal
-#TOOLTEST h5diff_606.txt -d 0x1 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3
g1/dset4
+TOOLTEST h5diff_606.txt -d 0x1 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3
g1/dset4

# 6.7: string
TOOLTEST h5diff_607.txt -d "1" h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3
g1/dset4
@@ -660,7 +660,7 @@

# 6.12: negative value
-#TOOLTEST h5diff_612.txt -p -4 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3
g1/dset4
+TOOLTEST h5diff_612.txt -p -4 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3
g1/dset4

# 6.13: zero
TOOLTEST h5diff_613.txt -p 0 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3
g1/dset4
@@ -669,7 +669,7 @@
TOOLTEST h5diff_614.txt -p u h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3
g1/dset4

# 6.15: hexadecimal
-#TOOLTEST h5diff_615.txt -p 0x1 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3
g1/dset4
+TOOLTEST h5diff_615.txt -p 0x1 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3
g1/dset4

# 6.16: string
TOOLTEST h5diff_616.txt -p "0.21" h5diff_basic1.h5 h5diff_basic2.h5
g1/dset3 g1/dset4
@@ -690,28 +690,28 @@
#
##############################################################################

# 6.21: negative value
-#TOOLTEST h5diff_621.txt -n -4 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3
g1/dset4
+TOOLTEST h5diff_621.txt -n -4 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3
g1/dset4

# 6.22: zero
-#TOOLTEST h5diff_622.txt -n 0 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3
g1/dset4
+TOOLTEST h5diff_622.txt -n 0 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3
g1/dset4

# 6.23: non number
-#TOOLTEST h5diff_623.txt -n u h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3
g1/dset4
+TOOLTEST h5diff_623.txt -n u h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3
g1/dset4

# 6.24: hexadecimal
-#TOOLTEST h5diff_624.txt -n 0x1 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3
g1/dset4
+TOOLTEST h5diff_624.txt -n 0x1 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3
g1/dset4

# 6.25: string
-#TOOLTEST h5diff_625.txt -n "2" h5diff_basic1.h5 h5diff_basic2.h5
g1/dset3 g1/dset4
+TOOLTEST h5diff_625.txt -n "2" h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3
g1/dset4

# 6.26: repeated option
-#TOOLTEST h5diff_626.txt -n 2 -n 3 h5diff_basic1.h5 h5diff_basic2.h5
g1/dset3 g1/dset4
+TOOLTEST h5diff_626.txt -n 2 -n 3 h5diff_basic1.h5 h5diff_basic2.h5
g1/dset3 g1/dset4

# 6.27: number larger than biggest difference
TOOLTEST h5diff_627.txt --count=200 h5diff_basic1.h5 h5diff_basic2.h5
g1/dset3 g1/dset4

# 6.28: number smaller than smallest difference
-#TOOLTEST h5diff_628.txt -n 1 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3
g1/dset4
+TOOLTEST h5diff_628.txt -n 1 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3
g1/dset4

# Disabling this test as it hangs - LRK 20090618
# 6.29 non valid files
@@ -1065,13 +1065,13 @@
# # Test mutually exclusive options
#
##############################################################################
# Test with -d , -p and --use-system-epsilon.
-#TOOLTEST h5diff_640.txt -v -d 5 -p 0.05 --use-system-epsilon
h5diff_basic1.h5 h5diff_basic2.h5 /g1/dset3 /g1/dset4
-#TOOLTEST h5diff_641.txt -v -d 5 -p 0.05 h5diff_basic1.h5 h5diff_basic2.h5
/g1/dset3 /g1/dset4
-#TOOLTEST h5diff_642.txt -v -p 0.05 -d 5 h5diff_basic1.h5 h5diff_basic2.h5
/g1/dset3 /g1/dset4
-#TOOLTEST h5diff_643.txt -v -d 5 --use-system-epsilon h5diff_basic1.h5
h5diff_basic2.h5 /g1/dset3 /g1/dset4
-#TOOLTEST h5diff_644.txt -v --use-system-epsilon -d 5 h5diff_basic1.h5
h5diff_basic2.h5 /g1/dset3 /g1/dset4
-#TOOLTEST h5diff_645.txt -v -p 0.05 --use-system-epsilon h5diff_basic1.h5
h5diff_basic2.h5 /g1/dset3 /g1/dset4
-#TOOLTEST h5diff_646.txt -v --use-system-epsilon -p 0.05 h5diff_basic1.h5
h5diff_basic2.h5 /g1/dset3 /g1/dset4
+TOOLTEST h5diff_640.txt -v -d 5 -p 0.05 --use-system-epsilon
h5diff_basic1.h5 h5diff_basic2.h5 /g1/dset3 /g1/dset4
+TOOLTEST h5diff_641.txt -v -d 5 -p 0.05 h5diff_basic1.h5 h5diff_basic2.h5
/g1/dset3 /g1/dset4
+TOOLTEST h5diff_642.txt -v -p 0.05 -d 5 h5diff_basic1.h5 h5diff_basic2.h5
/g1/dset3 /g1/dset4
+TOOLTEST h5diff_643.txt -v -d 5 --use-system-epsilon h5diff_basic1.h5
h5diff_basic2.h5 /g1/dset3 /g1/dset4
+TOOLTEST h5diff_644.txt -v --use-system-epsilon -d 5 h5diff_basic1.h5
h5diff_basic2.h5 /g1/dset3 /g1/dset4
+TOOLTEST h5diff_645.txt -v -p 0.05 --use-system-epsilon h5diff_basic1.h5
h5diff_basic2.h5 /g1/dset3 /g1/dset4
+TOOLTEST h5diff_646.txt -v --use-system-epsilon -p 0.05 h5diff_basic1.h5
h5diff_basic2.h5 /g1/dset3 /g1/dset4

#
##############################################################################