ECC-774: Change packingType: error message issued despite success (+test)

This commit is contained in:
Shahram Najm 2018-11-09 12:55:32 +00:00
parent 24c3c701f7
commit d6a27c9a0c
3 changed files with 46 additions and 28 deletions

View File

@ -294,7 +294,8 @@ static int unpack_double(grib_accessor* a, double* val, size_t *len)
!= GRIB_SUCCESS)
return ret;
if((ret = grib_get_long_internal(gh,self->ieee_floats,&ieee_floats)) != GRIB_SUCCESS)
/* ECC-774: don't use grib_get_long_internal */
if((ret = grib_get_long(gh,self->ieee_floats,&ieee_floats)) != GRIB_SUCCESS)
return ret;
if((ret = grib_get_double_internal(gh,self->laplacianOperator,&laplacianOperator))

View File

@ -62,6 +62,7 @@ list( APPEND tests_no_data_reqd
# These tests do require data downloads
list( APPEND tests_data_reqd
grib_double_cmp
change_packing
bufr_dump_data
bufr_dump_decode_filter
bufr_dump_encode_filter

View File

@ -11,48 +11,64 @@ grib1=${data_dir}/reduced_latlon_surface_constant.grib1
grib2=${data_dir}/reduced_latlon_surface_constant.grib2
packing1="
grid_ieee
grid_simple
grid_simple_matrix"
grid_ieee
grid_simple
grid_simple_matrix"
packing2="
grid_ieee
grid_jpeg
grid_simple
grid_simple_log_preprocessing
grid_simple_matrix"
grid_ieee
grid_jpeg
grid_simple
grid_simple_matrix"
#TODO: grid_simple_log_preprocessing
temp=temp.grib_
temp=temp.change_packing.grib
rm -f $temp
# --- test changing the packing
# arg 1 : input grib file
# arg 2-n : packing types to test
function test_packing() {
grib=$1
grib=$1
if [ ! -f $grib ]; then
echo "Input data missing"
exit 1
fi
if [ ! -f $grib ]; then
echo "Input data missing"
exit 1
fi
shift
while [ $# -gt 0 ]; do
packing=$1
shift
while [ $# -gt 0 ]; do
packing=$1
${tools_dir}/grib_set -r -s packingType=$packing $grib $temp
result=`${tools_dir}/grib_get -p packingType $temp`
if [ "$result" != "$packing" ]; then
echo "Setting packing did not go right"
exit 1
fi
${tools_dir}/grib_set -r -s packingType=$packing $grib $temp
result=`${tools_dir}/grib_get -p packingType $temp`
if [ "$result" != "$packing" ]; then
echo "Setting packing did not go right"
exit 1
fi
shift
done
shift
done
rm -f $temp
rm -f $temp
}
# ECC-774
# ------------
input=${data_dir}/spherical_model_level.grib2
output=`${tools_dir}/grib_set -r -s packingType=spectral_simple $input $temp 2>&1`
# Check no error was posted i.e. output string is empty
[ -z "$output" ]
res1=`${tools_dir}/grib_get '-F%.1f' -p avg,enorm $input`
res2=`${tools_dir}/grib_get '-F%.1f' -p avg,enorm $temp`
[ "$res1" = "$res2" ]
rm -f $temp
# Change grib packing test
# -------------------------
test_packing $grib1 $packing1
test_packing $grib2 $packing2
rm -f $temp