Solution: for compound types, recursively apply that check
Two new cases are added
1) the compound type has a different number of members. Message printed is
<obj1> has X members <obj2> has Y members
Where X and Y are the number of members of each compound type being compared
2) the compound type has not comparable types (for example a double and an int at the same index)
In this case the message
Comparison not possible: object1 is of class1 and object2 is of class2
Is replaced with
Comparison not possible: object1 has a class1 and object2 has a class2
Modified the test generator program to have these 2 cases
Added a shell run for these 2 cases
Tested: windows, h5committest
Summary: when using h5diff to compare the results of h5repack (or other tools that copy one HDF5 file to another), a new option is needed to allow h5diff to make an "absolute" comparison of the 2 files. This is the "contents" mode explained in the usage below.
If this mode is present, objects in both files must match (must be exactly the same). If this does not happen, the tool returns an error code of 1 (instead of the success code of 0)
Changes to the h5repack test script: the call to h5diff was changed to include -c (maintaining the previous -q).
tested: windows, linux, solaris
The name of the files are now given by its full name relative to $srcdir
To avoid the printing of the complete full path of the test file, that hides
all the other parameters for long paths, the printing of the command line
is done first in TESTING with the name only of the test file, not its full path
the printing in the expected output that had the file name was removed as well as 3 tests that tested error messages in which the file name was present
tested: linux (in 2 different build directories relative to $srcdir), solaris
On Windows, Mingw interprets all parameters starting with '/' as paths, and replaces the '/' with its home directory, "C:\Windows\msys\". This was a problem in h5diff tests such as:
h5diff h5diff_101.txt $FILE1 $FILE1 /g1/d1 g1/d2 -v
I've removed the leading '/', as h5diff will interpret it the same either way.
Tested:
kagiso, linew, and smirom, via h5committest
mingw on Windows XP
Bug fix: the macro used for percentage in the unsigned types needed a cast to signed (the difference can be negative)
Unlike the 1.6 branch the unsigned long long conversion to float is supported by H5Tconvert , so the test commented for 1.6 is run (tools/testfiles/h5diff_16_2.txt)
Added a relative error formula to deal with floating point uncertainty
in the comparison of floats and double types.
Added new tests for this feature to the file generator program and to
the shell script
h5diff: print a message of "not comparable" in a case where the relative error
compare is not possible, due to the denominator being zero. Modified
the test file generator program to include a example for this and a new
test on the shell script
1) added a new parameter to the h5diff function diff_array that contains
the beginning position of the hyperslab, so that the total position in
the array is printed correctly when reading by hyperslabs.
2) added a new test to h5diff that reads and diffs by hyperslabs. The
test reads a 1GB dataset, from which a 1KB hyperslab was written with
differences .
3) added the generation of 2 files to the generator program to test the
h5diff hyperslab read.
4) changed the h5diff binary pre-generated file names to be more
descriptive (e.g, instead of file1.h5, made it h5diff_basic1.h5)
5) changed the name of the h5repack options text file to info.h5repack
new feature
Description:
added support for the printout of dataset region references differences
added a new test for this
merged the h5diff generator of test files into a single file
Solution:
Platforms tested:
linux 32, 64
solaris
Misc. update:
bug fix
Description:
percent relative error was done using integer arythmetic; use floating point instead
added the case for unsigned long long integer to float conversion
Solution:
Platforms tested:
linux (32,64)
AIX
solaris
Misc. update:
bug fix
Description:
1) added a more explainative usage message
2) the percent relative error for the integer type (division) was being done using integer arythmetic; use floating point arythmetic instead
3) added a new test for integer percent
Solution:
Platforms tested:
linux (32,64)
AIX
solaris
Misc. update:
bug fixes
Description:
1) the option logic for the print of long types was done incorrectly (extra lines of code that were not supposed to be there)
2) the print of loong long types was incorrect
Solution:
1) removed the incorrect code
2) made a long long cast on the printf call
Platforms tested:
linux (32 and 64)
solaris
Misc. update:
bug fix, new features
Description:
when comparing links , the output for the number of differences found was not being done
Solution:
print it
add 3 more tests that test the output of differences for 1) groups 2) datatypes 3) links
Platforms tested:
linux
Misc. update:
Improvement
Description:
Some parallel system would dump some system messages in the stdout
stream of an MPI application. That caused the output matching script
to fail unnecessarily.
Solution:
Added the STDOUT_FILTER feature to filter out those system messages
out of stdout result.
Platforms tested:
Tested in LANL Lambda.
new h5diff test
Description:
added a test to the test h5diff script that compares a file to itself.
this test is done to test some features of the library that
open the same file and the root group twice
Solution:
Platforms tested:
linux
solaris
Misc. update:
Feature and bug patch
Description:
Added the SKIP feature which skips a test.
The latest code will hang the very last test. Skip that test for now.
Platforms tested:
heping pp.
Bug fix
Description:
The testh5diff.sh script fails on mcr because of random srun messages
thrown into the output
Solution:
Added some code to filter out the srun messages before the output is compared.
Platforms tested:
LLNL mcr
Misc. update:
modified the script test so that when the test files do not exist , they are created
Description:
Solution:
Platforms tested:
linux
solaris
Misc. update:
Improvement
Description:
The actual stderr output was modified by the FILTER and was not
available for display if errors detected later.
Solution:
Copy the actual stderr to a temporary file and do filtering on that.
Platforms tested:
LANL Flash.
Misc. update:
Bug fix
Description:
Various system or software (e.g. MPE) will print some diagnosis
messages to stderr that cannot be suppressed. They messed up
the output matching. Installed the STDERR_FILTER() to remove
all these messages.
Platforms tested:
LANL flash.
Misc. update:
bug fix.
Description:
When MPE library is used, it prints two extra message lines that
interfere with the expected output.
Solution:
Filter out those two lines of text from stderr.
Also added a provision to print the whole generated output when failure
is detected.
Platforms tested:
Tested in copper, serial, parallel and parallel with MPE.
Misc. update:
bug fix/new feature.
Description:
(committing changes made by Leon.)
ph5diff now is a real program by itself. It has its
own main (ph5diff_main.c).
Codes common to h5diff and ph5diff are in h5diff_common.c.
Removed the hack that hide failures from testh5diff.sh.
Platforms tested:
heping(serial, pp), sol (pp), copper(pp).
Misc. update:
Bug fix.
Description:
ph5diff is still being fixed.
Changed this to report all failures but will not flag them as
errors so that daily tests can continue. Will be fixed soon.
Platforms tested:
Tested in sol (pp) where it has most failures.
Misc. update:
bug fix.
Description:
Need eval before the RUNCMD command because some machines like
AIX, has RUNPARALLEL in the style as
MP_PROCS=3 MP_TASKS_PER_NODE=3 poe ./a.out
that throws the shell script off.
Platforms tested:
Tested in copper (pp) where it failed before.
Tested in heping pp too.
Misc. update:
Bug fixed.
Description:
Heping used to have a network limit that if too many rsh connections
occurred in a second, it stopped accepting connections for 30 seconds.
That caused testph5diff to fail when too many mpi jobs are executed
repidly. A sleep 2 was in to go around this problem. Heping's limit
has been raised, thus no more need for this hack. Sleep 2 is removed.
Platforms tested:
Tested in heping (pp).
Misc. update:
Fixed numerous ph5diff bugs.
Description:
Fixed manager output printing
Fixed out of order output printing
Fixed test script execution problem
Temporary fix for large amounts of output overflowing buffer.
Solution:
The manager task buffers its output. However, since the manager task
never gets a print token, this output was lost. Solution: new function called
print_manager_output that prints buffered output is called in places where the
manager buffers its output.
printf was apparently buffering output. This means that a task would sometimes
print even after it had given up its print token. Added fflush() call after
printf() calls, which seems to have fixed the problem.
calling rsh multiple times in succession seems to overwhelm something in Linux,
as it begins to refuse new connections until the old ones reset. Since each
call to mpirun in the test script starts up 4 rsh sessions, the test script
eventually is unable to run any further tests. Solution: Added a short delay in the
testscript between successive calls to mpirun to allow old connections to reset.
The 10k output buffer was of insufficient size to hold the large amounts of
output generated by some of the tests. Since code to buffer to a file has not
been implemented yet, a temporary fix was to increase the size of the output
buffer to 50k.
Platforms tested:
heping
Misc. update:
Bug fix
Description:
h5diff_main.c contained some debug printf statment that produced
unexpected output. Commented them out.
testh5diff.sh: implemented code to test ph5diff tests but
ph5diff has some errors that generated unexpected output.
Temporary hacked to skip tests if run by daily test account.
Platforms tested:
Tested in heping, serial and parallel.
new features
Description:
Added a parallel option to testh5diff.sh to do parallel h5diff tests.
Added testph5diff.sh to invoke testh5diff.sh with parallel mode.
Platforms tested:
Tested in heping (serial and pp).
Temporary daily tests fix.
Description:
The newly added ph5diff is not quite compatible with the h5repack tool.
Disabled the ph5diff build (reverted back to building serial h5diff)
to allow daily tests to work while ph5diff is fixed.
Platforms tested:
Tested in heping both serial and parallel modes.
Misc. update:
New feature.
Description:
Added new tool ph5diff. (Code done by Leon Arber.)
Code is changed but test is not working yet. For now,
it skipped all tests.
Platforms tested:
Tested in heping, serial and parallel modes.
h5diff and h5repack changes
Description:
h5diff
introduced the following four modes of output:
Normal mode: print the number of differences found and where they occured
Report mode: print the above plus the differences
Verbose mode: print the above plus a list of objects and warnings
Quiet mode: do not print output (h5diff always returns an exit code of 1 when differences are found)
h5repack
added an extra parameter for SZIP filter (coding method)
the new syntax is
-f SZIP=<pixels per block,coding>
(pixels per block is a even number in 2-32 and coding method is 'EC' or 'NN')
Example of use:
./h5repack -i file1 -o file2 -f SZIP=8,NN -v
updated usage messages, test scripts and files accordingly
Solution:
Platforms tested:
linux
AIX
solaris
Misc. update: