Testing: codes_get_string for different products

This commit is contained in:
shahramn 2024-02-22 17:36:39 +00:00
parent a0e3cc1a8f
commit 7b36814d11
3 changed files with 19 additions and 10 deletions

View File

@ -142,7 +142,7 @@ static int value_count(grib_accessor* a, long* count)
static int unpack_string(grib_accessor* a, char* val, size_t* len)
{
long i = 0;
size_t l = a->length + 1;
size_t l = string_length(a) + 1;
grib_handle* h = grib_handle_of_accessor(a);
if (*len < l) {

View File

@ -18,15 +18,20 @@ int main(int argc, char* argv[])
size_t len = 0;
int err = 0;
assert(argc == 3);
assert(argc == 4);
const char* infile = argv[1];
const char* prod = argv[1];
const char* infile = argv[2];
FILE* in = fopen(infile, "rb");
assert(in);
char* key = argv[2];
char* key = argv[3];
char kvalue[2] = {0,}; // deliberately short
ProductKind productKind = PRODUCT_GRIB;
if (strcmp(prod, "BUFR")==0) productKind = PRODUCT_BUFR;
if (strcmp(prod, "GTS")==0) productKind = PRODUCT_GTS;
if (strcmp(prod, "ANY")==0) productKind = PRODUCT_ANY;
h = codes_handle_new_from_file(NULL, in, PRODUCT_ANY, &err);
h = codes_handle_new_from_file(NULL, in, productKind, &err);
assert(h);
assert(!err);

View File

@ -15,29 +15,33 @@ tempGrib=temp.$label.grib
tempText=temp.$label.txt
input=$ECCODES_SAMPLES_PATH/GRIB1.tmpl
$EXEC ${test_dir}/codes_get_string $input dataDate
$EXEC ${test_dir}/codes_get_string GRIB $input dataDate
${tools_dir}/grib_set -s marsType=s3,marsStream=mpic $input $tempGrib
$EXEC ${test_dir}/codes_get_string $tempGrib dayOfTheYearDate # 2> $tempText
$EXEC ${test_dir}/codes_get_string GRIB $tempGrib dayOfTheYearDate # 2> $tempText
input=$data_dir/reduced_latlon_surface.grib2
keys="identifier projString bitmap class year gridDefinitionDescription
time validityTime packingType md5Headers parameterUnits"
for k in $keys; do
$EXEC ${test_dir}/codes_get_string $input $k 2> $tempText
$EXEC ${test_dir}/codes_get_string GRIB $input $k 2> $tempText
grep -q "Buffer too small" $tempText
done
input=$ECCODES_SAMPLES_PATH/reduced_gg_ml_grib2.tmpl
$EXEC ${test_dir}/codes_get_string "$input" gridName 2> $tempText
$EXEC ${test_dir}/codes_get_string GRIB "$input" gridName 2> $tempText
grep -q "Buffer too small" $tempText
# shortName = swh
input=$data_dir/reduced_latlon_surface.grib1
$EXEC ${test_dir}/codes_get_string "$input" shortName 2> $tempText
$EXEC ${test_dir}/codes_get_string GRIB "$input" shortName 2> $tempText
grep -q "Buffer too small" $tempText
input=$data_dir/gts/EGRR20150317121020_00493212.DAT
$EXEC ${test_dir}/codes_get_string GTS "$input" theMessage 2> $tempText
grep -q "Buffer too small" $tempText
# Clean up
rm -f $tempText