Testing: Split long tests

This commit is contained in:
Shahram Najm 2023-07-21 15:56:25 +01:00
parent 2a8bf2b233
commit d476cb7171
4 changed files with 92 additions and 61 deletions

View File

@ -181,6 +181,8 @@ if( HAVE_BUILD_TOOLS )
bufr_wmo_tables
bufr_extract_headers
extract_offsets
bufr_ecc-147
bufr_ecc-389
bufr_ecc-673
bufr_ecc-428
bufr_ecc-286

42
tests/bufr_ecc-147.sh Executable file
View File

@ -0,0 +1,42 @@
#!/bin/sh
# (C) Copyright 2005- 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.ctest.sh
# Define a common label for all the tmp files
label="bufr_ecc-147_test"
tempBufr=temp.$label.bufr
tempFilt=temp.$label.filt
cat > $tempFilt <<EOF
set unpack=1;
set relativeHumidity=27;
set horizontalVisibility=1500;
set pack=1;
write;
EOF
input="${data_dir}/bufr/syno_1.bufr"
${tools_dir}/codes_bufr_filter -o $tempBufr $tempFilt $input
# This part of the test is meant to fail
set +e
${tools_dir}/bufr_compare $tempBufr $input
status=$?
set -e
if [ $status -eq 0 ]; then
# compare should have failed and returned a non-zero exit code
exit 1
fi
# Now blacklist the failing keys and it should pass
${tools_dir}/bufr_compare -b relativeHumidity,horizontalVisibility $tempBufr $input
# Clean up
rm -f $tempFilt $tempBufr

47
tests/bufr_ecc-389.sh Executable file
View File

@ -0,0 +1,47 @@
#!/bin/sh
# (C) Copyright 2005- 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.ctest.sh
# Define a common label for all the tmp files
label="bufr_ecc-389_test"
fLog=${label}".log"
tempBufr=temp.$label.bufr
tempFilt=temp.$label.filt
tempRef=temp.$label.ref
tempOut=temp.$label.out
cat > $tempFilt <<EOF
set numberOfSubsets=2;
set unexpandedDescriptors={310008};
set #14#brightnessTemperature={266.53, 266.53000000001};
set pack=1;
write;
EOF
input="${data_dir}/bufr/amsu_55.bufr"
${tools_dir}/codes_bufr_filter -o $tempBufr $tempFilt $input
cat > $tempFilt <<EOF
set unpack=1;
print "[#14#brightnessTemperature]";
EOF
${tools_dir}/codes_bufr_filter $tempFilt $tempBufr > $tempOut
cat > $tempRef <<EOF
266.53
EOF
diff $tempRef $tempOut
# Clean up
rm -f $tempFilt $tempBufr $tempRef $tempOut

View File

@ -715,35 +715,8 @@ EOF
${tools_dir}/codes_bufr_filter -o ${fout} $fRules $f 2>> $fLog 1>> $fLog
${tools_dir}/bufr_compare $fout ${fout}.ref #2>> $fLog 1>> $fLog
rm -f $fout
#-----------------------------------------------------------
# ECC-147
#-----------------------------------------------------------
cat > $fRules <<EOF
set unpack=1;
set relativeHumidity=27;
set horizontalVisibility=1500;
set pack=1;
write;
EOF
f="syno_1.bufr"
${tools_dir}/codes_bufr_filter -o ${f}.out $fRules $f
# This part of the test is meant to fail
set +e
${tools_dir}/bufr_compare ${f}.out $f
status=$?
set -e
if [ $status -eq 0 ]; then
# compare should have failed and returned a non-zero exit code
exit 1
fi
# Now blacklist the failing keys and it should pass
${tools_dir}/bufr_compare -b relativeHumidity,horizontalVisibility ${f}.out $f
rm -f ${f}.out
rm -f $fRules ${fout} $fLog
#-----------------------------------------------------------
# Test: access subsets by condition
#-----------------------------------------------------------
@ -1282,39 +1255,6 @@ diff ${f}.log.ref ${f}.log
rm -f ${f}.log ${f}.log.ref ${f}.out $fLog $fRules
#-----------------------------------------------------------
# Test: fix for ECC-389
#-----------------------------------------------------------
cat > $fRules <<EOF
set numberOfSubsets=2;
set unexpandedDescriptors={310008};
set #14#brightnessTemperature={266.53,266.53000000001};
set pack=1;
write;
EOF
f="amsu_55.bufr"
echo "Test: fix for ECC-389" >> $fLog
echo "file: $f" >> $fLog
${tools_dir}/codes_bufr_filter -o ${f}.out $fRules $f
cat > $fRules <<EOF
set unpack=1;
print "[#14#brightnessTemperature]";
EOF
${tools_dir}/codes_bufr_filter $fRules ${f}.out > ${f}.log
cat > ${f}.log.ref <<EOF
266.53
EOF
diff ${f}.log.ref ${f}.log
rm -f ${f}.log ${f}.log.ref ${f}.out $fLog $fRules
#-----------------------------------------------------------
# Test: change width using operator 201YYY
#-----------------------------------------------------------