eccodes/tests/grib_compare.sh

62 lines
1.8 KiB
Bash
Raw Normal View History

2013-03-25 12:04:10 +00:00
#!/bin/sh
# Copyright 2005-2016 ECMWF.
2013-03-25 12:04:10 +00:00
#
# This software is licensed under the terms of the Apache Licence Version 2.0
# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
#
2013-03-25 12:04:10 +00:00
# In applying this licence, ECMWF does not waive the privileges and immunities granted to it by
# virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.
#
. ./include.sh
REDIRECT=/dev/null
infile="${data_dir}/regular_latlon_surface.grib1"
outfile=${infile}.compare.$$
2013-03-25 12:04:10 +00:00
rm -f $outfile || true
2016-04-08 12:31:24 +00:00
${tools_dir}grib_set -s shortName=2d $infile $outfile
2013-03-25 12:04:10 +00:00
${tools_dir}grib_compare -b indicatorOfParameter,paramId,shortName $infile $outfile > $REDIRECT
# Test the -r switch
2016-04-08 12:31:24 +00:00
# ----------------------------------------
infile=${data_dir}/v.grib2
for i in 1 2 3; do
${tools_dir}grib_copy -wcount=$i $infile temp_comp.$i
done
cat temp_comp.1 temp_comp.2 temp_comp.3 > temp_comp.123
cat temp_comp.3 temp_comp.2 temp_comp.1 > temp_comp.321
# Compare files in which the messages are not in the same order
${tools_dir}grib_compare -r temp_comp.123 temp_comp.321
2016-04-08 12:31:24 +00:00
rm -f temp_comp.1 temp_comp.2 temp_comp.3 temp_comp.123 temp_comp.321
# GRIB-797: test last argument being a directory
2016-04-08 12:31:24 +00:00
# ----------------------------------------
temp_dir=tempdir.grib_compare
mkdir -p $temp_dir
cp $infile $temp_dir
${tools_dir}grib_compare $infile $temp_dir
rm -rf $temp_dir
2016-04-08 12:31:24 +00:00
# ECC-245: blacklist and 2nd order packing
# ----------------------------------------
temp1=grib_compare_temp1.grib1
temp2=grib_compare_temp2.grib1
${tools_dir}grib_copy -w count=25 ${data_dir}/lfpw.grib1 $temp1
${tools_dir}grib_copy -w count=30 ${data_dir}/lfpw.grib1 $temp2
# This should fail but not crash! so check exit code is not 134
set +e
${tools_dir}grib_compare -b firstOrderValues $temp1 $temp2 >/dev/null
status=$?
set -e
[ $status -eq 1 ]
rm -f $temp1 $temp2
rm -f $outfile