From d76d557f26cfd2e47d0ed9465e601f8cadd88e96 Mon Sep 17 00:00:00 2001 From: Edward Hartnett <38856240+edwardhartnett@users.noreply.github.com> Date: Mon, 29 Jan 2024 11:23:50 -0700 Subject: [PATCH] More testing of index code (#475) * adding g2c_index test * changes --- src/g2cfile.c | 4 ++-- tests/run_index_tests.sh | 7 +++++-- utils/g2c_degrib2.c | 7 +++++++ utils/g2c_index.c | 20 ++++++++++---------- 4 files changed, 24 insertions(+), 14 deletions(-) diff --git a/src/g2cfile.c b/src/g2cfile.c index 5b267cf6..ca80751e 100644 --- a/src/g2cfile.c +++ b/src/g2cfile.c @@ -1116,8 +1116,8 @@ read_metadata(int g2cid) LOG((6, "file_pos %ld", file_pos)); } - /* If we run out of messages, that's success. */ - if (ret == G2C_ENOMSG) + /* If we read some messages, then run out, that's success. */ + if (ret == G2C_ENOMSG && msg_num) ret = G2C_NOERROR; #ifdef LOGGING diff --git a/tests/run_index_tests.sh b/tests/run_index_tests.sh index 1429dd21..4c87dd3d 100644 --- a/tests/run_index_tests.sh +++ b/tests/run_index_tests.sh @@ -9,8 +9,11 @@ set -e echo "" echo "*** Running g2c_index test" -# Read GRIB1 index. -../utils/g2c_index -v data/ref_gdaswave_2.grib1.idx g2c_index_gdaswave_2.grib1.idx.txt +# Create an index for a GRIB2 file. +../utils/g2c_index -v data/gdaswave.t00z.wcoast.0p16.f000.grib2 gdaswave.t00z.wcoast.0p16.f000.grib2.idx + +# Summarize the index data. +../utils/g2c_degrib2 -v gdaswave.t00z.wcoast.0p16.f000.grib2.idx gdaswave.t00z.wcoast.0p16.f000.grib2.idx.degrib2 # Check against expected output. #diff -w g2c_degrib2_gdaswave.t00z.wcoast.0p16.f000.grib2.degrib2 data/ref_gdaswave.degrib2.txt diff --git a/utils/g2c_degrib2.c b/utils/g2c_degrib2.c index 4d9749a0..0ced6287 100644 --- a/utils/g2c_degrib2.c +++ b/utils/g2c_degrib2.c @@ -62,6 +62,13 @@ main(int argc, char **argv) break; } + /* If we didn't get 2 files, error. */ + if (p != 2) + { + printf("Two filenames must be provided, for input and output.\n"); + return G2C_ERROR; + } + /* Yammer on and on. */ if (verbose) printf("g2c_degrib2 %s summarizing %s into %s.\n", G2C_VERSION, path[0], path[1]); diff --git a/utils/g2c_index.c b/utils/g2c_index.c index e1ccec6c..f26fbfde 100644 --- a/utils/g2c_index.c +++ b/utils/g2c_index.c @@ -30,8 +30,8 @@ main(int argc, char **argv) int index; int c; int p = 0; - /* int g2cid; */ - /* int ret; */ + int g2cid; + int ret; opterr = 0; @@ -69,16 +69,16 @@ main(int argc, char **argv) printf("g2c_index %s reading index file %s summarizing into %s.\n", G2C_VERSION, path[0], path[1]); /* Open the GRIB2 file. */ - /* if ((ret = g2c_open(path[0], G2C_NOWRITE, &g2cid))) */ - /* return ret; */ + if ((ret = g2c_open(path[0], G2C_NOWRITE, &g2cid))) + return ret; - /* /\* Write the degrib2 summary. *\/ */ - /* if ((ret = g2c_degrib2(g2cid, path[1]))) */ - /* return ret; */ + /* Write the index file. */ + if ((ret = g2c_write_index(g2cid, G2C_CLOBBER, path[1]))) + return ret; - /* /\* Close the file. *\/ */ - /* if ((ret = g2c_close(g2cid))) */ - /* return ret; */ + /* Close the file. */ + if ((ret = g2c_close(g2cid))) + return ret; /* Free memory. */ if (path[0])