From c368d65b16f25a33d0a8aa9b7cd972898c031560 Mon Sep 17 00:00:00 2001 From: Shahram Najm Date: Fri, 19 Jan 2024 13:25:00 +0000 Subject: [PATCH] Testing: wmo_read_gts_from_file --- tests/CMakeLists.txt | 2 ++ tests/wmo_read_gts_from_file.cc | 37 +++++++++++++++++++++++++++++++++ tests/wmo_read_gts_from_file.sh | 27 ++++++++++++++++++++++++ 3 files changed, 66 insertions(+) create mode 100644 tests/wmo_read_gts_from_file.cc create mode 100755 tests/wmo_read_gts_from_file.sh diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 9d06c3f87..19661bb91 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -11,6 +11,7 @@ execute_process( COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_S list(APPEND test_c_bins list_codetable_flagtable_keys wmo_read_bufr_from_file + wmo_read_gts_from_file grib_bpv_limit grib_double_cmp read_any @@ -180,6 +181,7 @@ if( HAVE_BUILD_TOOLS ) grib_count grib_clone_headers_only wmo_read_bufr_from_file + wmo_read_gts_from_file bufr_templates bufr_rdbSubTypes bufr_dump_data diff --git a/tests/wmo_read_gts_from_file.cc b/tests/wmo_read_gts_from_file.cc new file mode 100644 index 000000000..01a39ff0e --- /dev/null +++ b/tests/wmo_read_gts_from_file.cc @@ -0,0 +1,37 @@ +/* + * (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 + +#include "grib_api_internal.h" + +#define SIZE 5 * 1024 * 1024 +char buffer[SIZE]; + +int main(int argc, char** argv) +{ + int err = 0; + FILE* in = NULL; + size_t len = SIZE; + + if (argc != 2) return 1; + + in = fopen(argv[1], "r"); + if (!in) return 1; + + err = wmo_read_gts_from_file(in, buffer, &len); + printf("err=%d\n", err); + if (err == GRIB_END_OF_FILE && len == 0) + printf("end of file\n"); + + printf("GTS: size: %zu err: %d (%s)\n", len, err, grib_get_error_message(err)); + + return 0; +} diff --git a/tests/wmo_read_gts_from_file.sh b/tests/wmo_read_gts_from_file.sh new file mode 100755 index 000000000..b4899e2dc --- /dev/null +++ b/tests/wmo_read_gts_from_file.sh @@ -0,0 +1,27 @@ +#!/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 + +label="wmo_read_gts_from_file_test" +tempText=temp.$label.txt + +if [ $ECCODES_ON_WINDOWS -eq 1 ]; then + echo "$0: This test is currently disabled on Windows" + exit 0 +fi + +input=${data_dir}/gts/EGRR20150317121020_00493212.DAT +${test_dir}/wmo_read_gts_from_file $input > $tempText +cat $tempText + + +# Clean up +rm -f $tempText