From e3544040dc2167db5c9c8fcf3e1a7f04ce442acf Mon Sep 17 00:00:00 2001 From: Shahram Najm Date: Thu, 3 May 2018 12:27:17 +0100 Subject: [PATCH] ECC-686: Added test --- tests/CMakeLists.txt | 1 + tests/bufr_ecc-686.sh | 58 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+) create mode 100755 tests/bufr_ecc-686.sh diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index c9030c71c..c7f8a8f9d 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -82,6 +82,7 @@ list( APPEND tests_data_reqd bufr_ecc-288 bufr_ecc-313 bufr_ecc-616 + bufr_ecc-686 bufr_ecc-379 bufr_ecc-393 bufr_ecc-433 diff --git a/tests/bufr_ecc-686.sh b/tests/bufr_ecc-686.sh new file mode 100755 index 000000000..5577286cf --- /dev/null +++ b/tests/bufr_ecc-686.sh @@ -0,0 +1,58 @@ +#!/bin/sh +# Copyright 2005-2018 ECMWF. +# +# 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. +# +# 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 + +# --------------------------------------------------------- +# This is the test for the JIRA issue ECC-686. +# It tests changing the subtype in the ECMWF local section +# --------------------------------------------------------- +label="bufr_ecc-686-test" +tempRules=temp.${label}.filter +tempBufr=temp.${label}.bufr + +set_subtype() +{ + oldSubtype=$1 + newSubtype=$2 + input=${data_dir}/bufr/aaen_55.bufr + cat > $tempRules << EOF + print " Setting oldSubtype $oldSubtype and newSubtype $newSubtype"; + print " BEFORE: numObs=[localNumberOfObservations] satID=[satelliteID]"; + transient old_localNumberOfObservations = localNumberOfObservations; + transient old_satelliteID = satelliteID; + set oldSubtype=$oldSubtype; + set newSubtype=$newSubtype; + print " AFTER: numObs=[localNumberOfObservations] satID=[satelliteID]"; + set satelliteID = old_satelliteID; + set localNumberOfObservations = old_localNumberOfObservations; + print " RESTORE: numObs=[localNumberOfObservations] satID=[satelliteID]"; + assert(localNumberOfObservations==128); + assert(satelliteID==209); + write; +EOF + ${tools_dir}/codes_bufr_filter -o $tempBufr $tempRules $input + res=`${tools_dir}/bufr_get -p oldSubtype,newSubtype,localNumberOfObservations,satelliteID $tempBufr` + [ "$res" = "$oldSubtype $newSubtype 128 209" ] + rm -f $tempRules $tempBufr +} + +# Non-special subType +set_subtype 30 256 + +# Special range: 31, 121 <= x <= 130 +set_subtype 31 256 +set_subtype 121 256 +set_subtype 130 256 + +# oldSubtype = maximum 255 and newSubtype takes over +set_subtype 255 256 + +rm -f $tempRules $tempBufr