mirror of https://github.com/ecmwf/eccodes.git
Add flag to ignore errors and continue
This commit is contained in:
parent
7a1319b6c5
commit
ff3f1df7a1
|
@ -22,6 +22,9 @@
|
||||||
|
|
||||||
#define STR_EQUAL(s1, s2) (strcmp((s1), (s2)) == 0)
|
#define STR_EQUAL(s1, s2) (strcmp((s1), (s2)) == 0)
|
||||||
|
|
||||||
|
int exit_on_error = 1; /* By default exit if any check fails */
|
||||||
|
int error_count = 0;
|
||||||
|
|
||||||
int DBL_EQUAL(double d1, double d2, double tolerance)
|
int DBL_EQUAL(double d1, double d2, double tolerance)
|
||||||
{
|
{
|
||||||
return fabs(d1-d2) <= tolerance;
|
return fabs(d1-d2) <= tolerance;
|
||||||
|
@ -29,7 +32,8 @@ int DBL_EQUAL(double d1, double d2, double tolerance)
|
||||||
|
|
||||||
void usage(const char* prog)
|
void usage(const char* prog)
|
||||||
{
|
{
|
||||||
printf("usage: %s grib_file grib_file ...\n",prog);
|
printf("usage: %s [-f] grib_file grib_file ...\n\n",prog);
|
||||||
|
printf("-f Do not exit on first error\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -43,7 +47,10 @@ void error(const char* fmt, ...)
|
||||||
va_end(list);
|
va_end(list);
|
||||||
|
|
||||||
fprintf(stderr,msg);
|
fprintf(stderr,msg);
|
||||||
|
++error_count;
|
||||||
|
if (exit_on_error) {
|
||||||
exit(1);
|
exit(1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
double get_precision(long edition)
|
double get_precision(long edition)
|
||||||
|
@ -187,17 +194,40 @@ int main(int argc, char** argv)
|
||||||
{
|
{
|
||||||
int i = 0;
|
int i = 0;
|
||||||
|
|
||||||
if (argc < 2) {
|
if (argc < 2)
|
||||||
|
{
|
||||||
usage(argv[0]);
|
usage(argv[0]);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
for(i=0; i<argc; ++i)
|
for(i=1; i<argc; ++i)
|
||||||
{
|
{
|
||||||
const char* filename = argv[i];
|
const char* arg = argv[i];
|
||||||
process_file(filename);
|
if (STR_EQUAL(arg, "-f"))
|
||||||
|
{
|
||||||
|
if (argc < 3) {
|
||||||
|
usage(argv[0]);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
/* Process switches */
|
||||||
|
exit_on_error = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* We have a grib file */
|
||||||
|
process_file(arg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("###############\n");
|
||||||
|
if (error_count == 0)
|
||||||
|
{
|
||||||
|
printf("ALL OK\n");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
printf("Error count: %d\n", error_count);
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("\nALL OK\n");
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue