mirror of https://github.com/ecmwf/eccodes.git
Message offsets: Add test
This commit is contained in:
parent
664732b639
commit
10cddf8e96
|
@ -30,6 +30,7 @@ list(APPEND test_bins
|
||||||
bufr_ecc-517
|
bufr_ecc-517
|
||||||
bufr_get_element
|
bufr_get_element
|
||||||
bufr_extract_headers
|
bufr_extract_headers
|
||||||
|
extract_offsets
|
||||||
bufr_check_descriptors
|
bufr_check_descriptors
|
||||||
grib_sh_ieee64
|
grib_sh_ieee64
|
||||||
ieee
|
ieee
|
||||||
|
@ -116,6 +117,7 @@ if( HAVE_BUILD_TOOLS )
|
||||||
bufr_get_element
|
bufr_get_element
|
||||||
bufr_wmo_tables
|
bufr_wmo_tables
|
||||||
bufr_extract_headers
|
bufr_extract_headers
|
||||||
|
extract_offsets
|
||||||
bufr_ecc-673
|
bufr_ecc-673
|
||||||
bufr_ecc-428
|
bufr_ecc-428
|
||||||
bufr_ecc-286
|
bufr_ecc-286
|
||||||
|
|
|
@ -0,0 +1,36 @@
|
||||||
|
/*
|
||||||
|
* (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 "eccodes.h"
|
||||||
|
#include <assert.h>
|
||||||
|
|
||||||
|
|
||||||
|
int main(int argc, char* argv[])
|
||||||
|
{
|
||||||
|
char *filename;
|
||||||
|
int err = 0;
|
||||||
|
int num_messages = 0, i =0;
|
||||||
|
off_t* offsets = NULL;
|
||||||
|
codes_context* c = codes_context_get_default();
|
||||||
|
const int strict_mode = 1;
|
||||||
|
|
||||||
|
/* Usage: prog file */
|
||||||
|
assert(argc == 2);
|
||||||
|
|
||||||
|
filename = argv[1];
|
||||||
|
err = codes_extract_offsets_malloc(c, filename, PRODUCT_ANY, &offsets, &num_messages, strict_mode);
|
||||||
|
if (err) return err;
|
||||||
|
|
||||||
|
for (i = 0; i < num_messages; ++i) {
|
||||||
|
printf("%lu\n", offsets[i]);
|
||||||
|
}
|
||||||
|
free(offsets);
|
||||||
|
return 0;
|
||||||
|
}
|
|
@ -0,0 +1,41 @@
|
||||||
|
#!/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.sh
|
||||||
|
|
||||||
|
# Define a common label for all the tmp files
|
||||||
|
label="bufr_extract_offsets_test"
|
||||||
|
temp1="temp.${label}.1"
|
||||||
|
temp2="temp.${label}.2"
|
||||||
|
|
||||||
|
echo "Multi-message BUFR..."
|
||||||
|
# ---------------------------
|
||||||
|
input=${data_dir}/bufr/aeolus_wmo_26.bufr
|
||||||
|
$EXEC ${test_dir}/extract_offsets $input > $temp1
|
||||||
|
${tools_dir}/bufr_get -p offset:i $input > $temp2
|
||||||
|
diff $temp1 $temp2
|
||||||
|
|
||||||
|
echo "Multi-message GRIB..."
|
||||||
|
# --------------------------
|
||||||
|
input=${data_dir}/mixed.grib
|
||||||
|
$EXEC ${test_dir}/extract_offsets $input > $temp1
|
||||||
|
${tools_dir}/grib_get -p offset:i $input > $temp2
|
||||||
|
diff $temp1 $temp2
|
||||||
|
|
||||||
|
|
||||||
|
echo "Test with invalid inputs..."
|
||||||
|
# ---------------------------------
|
||||||
|
set +e
|
||||||
|
$EXEC ${test_dir}/extract_offsets ${data_dir}
|
||||||
|
status=$?
|
||||||
|
set -e
|
||||||
|
[ $status -ne 0 ]
|
||||||
|
|
||||||
|
rm -f $temp1 $temp2
|
Loading…
Reference in New Issue