[svn-r10996] Purpose:

Bug fix for parallel case for new "Some objects were not comparable" patch to h5diff.

Description:
The parallel h5diff wouldn't print out "Some objects were not comparable" because the worker
tasks were not communicating the not_cmp flag of the diff_opt_t struct back to the manager, who ultimately
prints everything.

Also, some miscellaneous fixes for error printing.  Some errors were printed out with printf instead of fprintf(stderr,...).
In parallel environments, this can result in output getting lost.

Solution:
Had the worker tasks pass along the not_cmp flag to the manager when they sent along
the number of differences they found.



Platforms tested:
heping (pp), sol (pp)

Misc. update:
This commit is contained in:
Leon Arber
2005-06-28 14:20:56 -05:00
parent 92723c7e02
commit ac2e0d548e
6 changed files with 100 additions and 86 deletions

View File

@@ -17,9 +17,6 @@
#include "h5diff.h"
#include "h5diff_common.h"
extern int g_Parallel;
extern int g_nTasks;
/*-------------------------------------------------------------------------
* Function: parse_input
*
@@ -185,36 +182,35 @@ void parse_input(int argc, const char* argv[], const char** fname1, const char**
void print_results(hsize_t nfound, diff_opt_t* options)
{
/*-------------------------------------------------------------------------
* print how many differences were found
*-------------------------------------------------------------------------
*/
if (!options->m_quiet)
{
printf("----------------------------------------------------\n");
printf("Summary\n");
printf("----------------------------------------------------\n");
if (options->cmn_objs==0 && !options->err_stat)
{
printf("No common objects found. Files are not comparable.\n");
if (!options->m_verbose)
printf("Use -v for a list of objects.\n");
}
else
{
/* no errors found */
if (!options->err_stat)
{
/* objects were not compared */
if (options->not_cmp==1)
printf("Some objects are not comparable\n");
else
/* objects were compared, print the number of differences */
print_found(nfound);
}
}
}
/*-------------------------------------------------------------------------
* print how many differences were found
*-------------------------------------------------------------------------
*/
if (!options->m_quiet)
{
printf("----------------------------------------------------\n");
printf("Summary\n");
printf("----------------------------------------------------\n");
if (options->cmn_objs==0 && !options->err_stat)
{
printf("No common objects found. Files are not comparable.\n");
if (!options->m_verbose)
printf("Use -v for a list of objects.\n");
}
else
{
/* no errors found */
if (!options->err_stat)
{
/* objects were not compared */
if (options->not_cmp==1)
printf("Some objects are not comparable\n");
else
/* objects were compared, print the number of differences */
print_found(nfound);
}
}
}
}
/*-------------------------------------------------------------------------