summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPedro Vicente Nunes <pvn@hdfgroup.org>2004-03-29 16:53:52 (GMT)
committerPedro Vicente Nunes <pvn@hdfgroup.org>2004-03-29 16:53:52 (GMT)
commit8eb5f818bab32fcf61cf805b880c5cc4dd1e98bc (patch)
tree536ff3ef907acc78aee6fcdc31b13d371ed84cc9
parentfb37f831bcc1ccd378980d25f06b174e99daf314 (diff)
downloadhdf5-8eb5f818bab32fcf61cf805b880c5cc4dd1e98bc.zip
hdf5-8eb5f818bab32fcf61cf805b880c5cc4dd1e98bc.tar.gz
hdf5-8eb5f818bab32fcf61cf805b880c5cc4dd1e98bc.tar.bz2
[svn-r8286] Purpose:
bug fix continuation Description: the atof return value on a hexadecimal input is different on some systems; before checking for the atof return value do a character check for the first 2 characters of the string input Solution: Platforms tested: linux solaris Misc. update:
-rw-r--r--tools/h5diff/h5diff_main.c9
-rwxr-xr-xtools/h5diff/testh5diff.sh4
-rw-r--r--tools/testfiles/h5diff_606.txt44
-rw-r--r--tools/testfiles/h5diff_615.txt36
4 files changed, 82 insertions, 11 deletions
diff --git a/tools/h5diff/h5diff_main.c b/tools/h5diff/h5diff_main.c
index 17c9d22..8dbce22 100644
--- a/tools/h5diff/h5diff_main.c
+++ b/tools/h5diff/h5diff_main.c
@@ -252,7 +252,7 @@ int check_n_input( const char *str )
/*-------------------------------------------------------------------------
* Function: check_f_input
*
- * Purpose: check for valid input
+ * Purpose: check for a valid floating point input
*
* Return: 1 for ok, -1 for fail
*
@@ -270,6 +270,13 @@ static
int check_f_input( const char *str )
{
double x;
+
+ /*
+ the atof return value on a hexadecimal input is different
+ on some systems; we do a character check for this
+ */
+ if (strlen(str)>2 && str[0]=='0' && str[1]=='x')
+ return -1;
x=atof(str);
if (x==0)
diff --git a/tools/h5diff/testh5diff.sh b/tools/h5diff/testh5diff.sh
index 43753e5..23cbfaa 100755
--- a/tools/h5diff/testh5diff.sh
+++ b/tools/h5diff/testh5diff.sh
@@ -202,7 +202,7 @@ TOOLTEST h5diff_604.txt file1.h5 file2.h5 -d 0 g1/dset3 g1/dset4
TOOLTEST h5diff_605.txt file1.h5 file2.h5 -d u g1/dset3 g1/dset4
# 6.6: hexadecimal
-#TOOLTEST h5diff_606.txt file1.h5 file2.h5 -d 0x1 g1/dset3 g1/dset4
+TOOLTEST h5diff_606.txt file1.h5 file2.h5 -d 0x1 g1/dset3 g1/dset4
# 6.7: string
TOOLTEST h5diff_607.txt file1.h5 file2.h5 -d "1" g1/dset3 g1/dset4
@@ -235,7 +235,7 @@ TOOLTEST h5diff_613.txt file1.h5 file2.h5 -p 0 g1/dset3 g1/dset4
TOOLTEST h5diff_614.txt file1.h5 file2.h5 -p u g1/dset3 g1/dset4
# 6.15: hexadecimal
-#TOOLTEST h5diff_615.txt file1.h5 file2.h5 -p 0x1 g1/dset3 g1/dset4
+TOOLTEST h5diff_615.txt file1.h5 file2.h5 -p 0x1 g1/dset3 g1/dset4
# 6.16: string
TOOLTEST h5diff_616.txt file1.h5 file2.h5 -p "0.21" g1/dset3 g1/dset4
diff --git a/tools/testfiles/h5diff_606.txt b/tools/testfiles/h5diff_606.txt
index d20f2a9..fe5308c 100644
--- a/tools/testfiles/h5diff_606.txt
+++ b/tools/testfiles/h5diff_606.txt
@@ -1,11 +1,39 @@
#############################
Expected output for 'h5diff file1.h5 file2.h5 -d 0x1 g1/dset3 g1/dset4'
#############################
-position dset3 dset4 difference
-------------------------------------------------------------
-[ 0 0 ] 100.000000 110.000000 10.000000
-[ 0 1 ] 110.000000 100.000000 10.000000
-[ 1 0 ] 100.000000 90.000000 10.000000
-[ 1 1 ] 100.000000 80.000000 20.000000
-[ 2 0 ] 100.000000 140.000000 40.000000
-[ 2 1 ] 100.000000 200.000000 100.000000
+<-d 0x1> is not a valid option
+Usage: h5diff file1 file2 [OPTIONS] [obj1[obj2]]
+
+file1 File name of the first HDF5 file
+file2 File name of the second HDF5 file
+[obj1] Name of an HDF5 object, in absolute path
+[obj2] Name of an HDF5 object, in absolute path
+[OPTIONS] are:
+[-h] Print out this information
+[-v] Verbose mode
+[-r] Print only what objects differ, not the differences
+[-n count] Print difference up to count number
+[-d delta] Print difference when it is greater than limit delta
+[-p relative] Print difference when it is greater than a relative limit
+
+Items in [] are optional
+[obj1] and [obj2] are HDF5 objects (datasets, groups or datatypes)
+The 'count' value must be a positive integer
+The 'delta' and 'relative' values must be positive numbers
+The -d compare criteria is |a - b| > delta
+The -p compare criteria is |1 - b/a| > relative
+
+Examples:
+
+1) h5diff file1 file2 /a/b /a/c
+
+ Compares object '/a/b' in file1 with '/a/c' in file2
+
+2) h5diff file1 file2 /a/b
+
+ Compares object '/a/b' in both files
+
+3) h5diff file1 file2
+
+ Compares all objects in both files
+
diff --git a/tools/testfiles/h5diff_615.txt b/tools/testfiles/h5diff_615.txt
index 0519153..2f19008 100644
--- a/tools/testfiles/h5diff_615.txt
+++ b/tools/testfiles/h5diff_615.txt
@@ -1,3 +1,39 @@
#############################
Expected output for 'h5diff file1.h5 file2.h5 -p 0x1 g1/dset3 g1/dset4'
#############################
+<-p 0x1> is not a valid option
+Usage: h5diff file1 file2 [OPTIONS] [obj1[obj2]]
+
+file1 File name of the first HDF5 file
+file2 File name of the second HDF5 file
+[obj1] Name of an HDF5 object, in absolute path
+[obj2] Name of an HDF5 object, in absolute path
+[OPTIONS] are:
+[-h] Print out this information
+[-v] Verbose mode
+[-r] Print only what objects differ, not the differences
+[-n count] Print difference up to count number
+[-d delta] Print difference when it is greater than limit delta
+[-p relative] Print difference when it is greater than a relative limit
+
+Items in [] are optional
+[obj1] and [obj2] are HDF5 objects (datasets, groups or datatypes)
+The 'count' value must be a positive integer
+The 'delta' and 'relative' values must be positive numbers
+The -d compare criteria is |a - b| > delta
+The -p compare criteria is |1 - b/a| > relative
+
+Examples:
+
+1) h5diff file1 file2 /a/b /a/c
+
+ Compares object '/a/b' in file1 with '/a/c' in file2
+
+2) h5diff file1 file2 /a/b
+
+ Compares object '/a/b' in both files
+
+3) h5diff file1 file2
+
+ Compares all objects in both files
+