summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPedro Vicente Nunes <pvn@hdfgroup.org>2004-03-25 20:27:47 (GMT)
committerPedro Vicente Nunes <pvn@hdfgroup.org>2004-03-25 20:27:47 (GMT)
commit1b008c03aaa5f04ec440675bfdac437eda42d446 (patch)
treeb4c1fe06204ad99f1e42457e198149b06dd588fb
parent9c79ce84eec25571e012d03ba8e731afa1dcabe3 (diff)
downloadhdf5-1b008c03aaa5f04ec440675bfdac437eda42d446.zip
hdf5-1b008c03aaa5f04ec440675bfdac437eda42d446.tar.gz
hdf5-1b008c03aaa5f04ec440675bfdac437eda42d446.tar.bz2
[svn-r8282] Purpose:
bug fix Description: the -p option was not parsing correctly if the input was in the exponential format Solution: add a new parse test for floating point numbers Platforms tested: linux Misc. update:
-rw-r--r--tools/h5diff/h5diff_main.c40
-rw-r--r--tools/testfiles/h5diff_603.txt2
-rw-r--r--tools/testfiles/h5diff_606.txt44
-rw-r--r--tools/testfiles/h5diff_612.txt2
-rw-r--r--tools/testfiles/h5diff_615.txt36
-rw-r--r--tools/testfiles/h5diff_621.txt2
6 files changed, 27 insertions, 99 deletions
diff --git a/tools/h5diff/h5diff_main.c b/tools/h5diff/h5diff_main.c
index cbc0248..17c9d22 100644
--- a/tools/h5diff/h5diff_main.c
+++ b/tools/h5diff/h5diff_main.c
@@ -29,7 +29,7 @@ static int check_f_input( const char* );
/*-------------------------------------------------------------------------
* Function: main
*
- * Purpose: H5diff main program
+ * Purpose: h5diff main program
*
* Return: An exit status of 0 means no differences were found, 1 means some
* differences were found.
@@ -73,14 +73,11 @@ int main(int argc, const char *argv[])
* file names are first
*-------------------------------------------------------------------------
*/
-
if ( argc>=3 )
{
fname1 = argv[1];
fname2 = argv[2];
}
-
-
/*-------------------------------------------------------------------------
* parse command line options
*-------------------------------------------------------------------------
@@ -121,7 +118,7 @@ int main(int argc, const char *argv[])
}
else
{
- printf("<-d %s> is not a valid option\n", argv[i+1] );
+ printf("Not a valid -d option\n");
usage();
}
break;
@@ -137,6 +134,11 @@ int main(int argc, const char *argv[])
options.percent = atof(argv[i+1]);
i++; /* go to next */
}
+ else
+ {
+ printf("Not a valid -p option\n");
+ usage();
+ }
break;
case 'n':
if ( i<argc-1 && '-' !=argv[i+1][0] )
@@ -150,6 +152,11 @@ int main(int argc, const char *argv[])
options.count = atoi(argv[i+1]);
i++; /* go to next */
}
+ else
+ {
+ printf("Not a valid -n option\n");
+ usage();
+ }
break;
} /*switch*/
} /*for*/
@@ -182,7 +189,6 @@ int main(int argc, const char *argv[])
}/*for*/
-
/*-------------------------------------------------------------------------
* print the command line options
*-------------------------------------------------------------------------
@@ -198,8 +204,6 @@ int main(int argc, const char *argv[])
printf("\n");
}
-
-
nfound = h5diff(fname1,fname2,objname1,objname2,&options);
if (options.verbose) printf("\n");
ret= (nfound==0 ? 0 : 1 );
@@ -207,7 +211,6 @@ int main(int argc, const char *argv[])
}
-
/*-------------------------------------------------------------------------
* Function: check_n_input
*
@@ -266,26 +269,15 @@ int check_n_input( const char *str )
static
int check_f_input( const char *str )
{
- unsigned i;
- char c;
-
- /* '0' values not allowed */
- if ( strlen(str)==1 && str[0]=='0' )
+ double x;
+
+ x=atof(str);
+ if (x==0)
return -1;
- for ( i = 0; i < strlen(str); i++)
- {
- c = str[i];
- if ( c < 48 || c > 57 ) /* ascii values between 0 and 9 */
- if ( c!= 46) /* . */
- return -1;
- }
return 1;
}
-
-
-
/*-------------------------------------------------------------------------
* Function: usage
*
diff --git a/tools/testfiles/h5diff_603.txt b/tools/testfiles/h5diff_603.txt
index 6719ebd..5630fd6 100644
--- a/tools/testfiles/h5diff_603.txt
+++ b/tools/testfiles/h5diff_603.txt
@@ -1,7 +1,7 @@
#############################
Expected output for 'h5diff file1.h5 file2.h5 -d -4 g1/dset3 g1/dset4'
#############################
-<-d -4> is not a valid option
+Not a valid -d option
Usage: h5diff file1 file2 [OPTIONS] [obj1[obj2]]
file1 File name of the first HDF5 file
diff --git a/tools/testfiles/h5diff_606.txt b/tools/testfiles/h5diff_606.txt
index fe5308c..d20f2a9 100644
--- a/tools/testfiles/h5diff_606.txt
+++ b/tools/testfiles/h5diff_606.txt
@@ -1,39 +1,11 @@
#############################
Expected output for 'h5diff file1.h5 file2.h5 -d 0x1 g1/dset3 g1/dset4'
#############################
-<-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
-
+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
diff --git a/tools/testfiles/h5diff_612.txt b/tools/testfiles/h5diff_612.txt
index 98a6183..803b64e 100644
--- a/tools/testfiles/h5diff_612.txt
+++ b/tools/testfiles/h5diff_612.txt
@@ -1,7 +1,7 @@
#############################
Expected output for 'h5diff file1.h5 file2.h5 -p -4 g1/dset3 g1/dset4'
#############################
--4 is an invalid option
+Not a valid -p option
Usage: h5diff file1 file2 [OPTIONS] [obj1[obj2]]
file1 File name of the first HDF5 file
diff --git a/tools/testfiles/h5diff_615.txt b/tools/testfiles/h5diff_615.txt
index 2f19008..0519153 100644
--- a/tools/testfiles/h5diff_615.txt
+++ b/tools/testfiles/h5diff_615.txt
@@ -1,39 +1,3 @@
#############################
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
-
diff --git a/tools/testfiles/h5diff_621.txt b/tools/testfiles/h5diff_621.txt
index d6b2024..11a3e16 100644
--- a/tools/testfiles/h5diff_621.txt
+++ b/tools/testfiles/h5diff_621.txt
@@ -1,7 +1,7 @@
#############################
Expected output for 'h5diff file1.h5 file2.h5 -n -4 g1/dset3 g1/dset4'
#############################
--4 is an invalid option
+Not a valid -n option
Usage: h5diff file1 file2 [OPTIONS] [obj1[obj2]]
file1 File name of the first HDF5 file