Merge branch 'main' into patch-2

This commit is contained in:
Ward Fisher 2023-05-23 11:15:04 -06:00 committed by GitHub
commit dd75fa343c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
609 changed files with 17792 additions and 70396 deletions

View File

@ -17,7 +17,7 @@ jobs:
strategy:
matrix:
hdf5: [ 1.12.2 ]
hdf5: [ 1.12.2, 1.14.0 ]
steps:
@ -54,8 +54,7 @@ jobs:
strategy:
matrix:
hdf5: [ 1.12.2 ]
#hdf5: [ 1.8.21, 1.10.1, 1.10.7, 1.12.2 ]
hdf5: [ 1.12.2, 1.14.0 ]
use_nc4: [ nc3, nc4 ]
use_dap: [ dap_off, dap_on ]
use_nczarr: [ nczarr_off, nczarr_on ]
@ -161,7 +160,7 @@ jobs:
strategy:
matrix:
hdf5: [ 1.12.2 ]
hdf5: [ 1.12.2, 1.14.0 ]
use_nc4: [ nc3, nc4 ]
use_dap: [ dap_off, dap_on ]
use_nczarr: [ nczarr_off, nczarr_on ]
@ -257,7 +256,7 @@ jobs:
strategy:
matrix:
hdf5: [ 1.12.2 ]
hdf5: [ 1.12.2, 1.14.0 ]
steps:
- uses: actions/checkout@v3
@ -338,7 +337,7 @@ jobs:
strategy:
matrix:
hdf5: [ 1.12.2 ]
hdf5: [ 1.12.2, 1.14.0 ]
steps:

153
.github/workflows/run_tests_s3.yml vendored Normal file
View File

@ -0,0 +1,153 @@
###
# Test S3 Support
# -- derived from run_tests_ubuntu.yml
###
###
# Build hdf5 dependencies and cache them in a combined directory.
###
name: Run S3 netCDF Tests (under Ubuntu Linux)
on: [workflow_dispatch]
jobs:
build-deps-serial:
runs-on: ubuntu-latest
strategy:
matrix:
hdf5: [ 1.10.8, 1.12.2, 1.14.0 ]
steps:
- uses: actions/checkout@v3
- name: Install System dependencies
shell: bash -l {0}
run: sudo apt update && sudo apt install -y libaec-dev zlib1g-dev automake autoconf libcurl4-openssl-dev libjpeg-dev wget curl bzip2 m4 flex bison cmake libzip-dev
###
# Installing libhdf5
###
- name: Cache libhdf5-${{ matrix.hdf5 }}
id: cache-hdf5
uses: actions/cache@v3
with:
path: ~/environments/${{ matrix.hdf5 }}
key: hdf5-${{ runner.os }}-${{ matrix.hdf5 }}
- name: Build libhdf5-${{ matrix.hdf5 }}
if: steps.cache-hdf5.outputs.cache-hit != 'true'
run: |
set -x
wget https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-$(echo ${{ matrix.hdf5 }} | cut -d. -f 1,2)/hdf5-${{ matrix.hdf5 }}/src/hdf5-${{ matrix.hdf5 }}.tar.bz2
tar -jxf hdf5-${{ matrix.hdf5 }}.tar.bz2
pushd hdf5-${{ matrix.hdf5 }}
./configure --disable-static --enable-shared --prefix=${HOME}/environments/${{ matrix.hdf5 }} --enable-hl --with-szlib
make -j
make install -j
popd
#####
# S3 Autotools-based tests.
#####
##
# Serial
##
nc-ac-tests-s3-serial:
needs: build-deps-serial
runs-on: ubuntu-latest
strategy:
matrix:
hdf5: [ 1.14.0 ]
steps:
- uses: actions/checkout@v3
- name: Install System dependencies
shell: bash -l {0}
run: sudo apt update && sudo apt install -y libaec-dev zlib1g-dev automake autoconf libcurl4-openssl-dev libjpeg-dev wget curl bzip2 m4 flex bison cmake libzip-dev openssl libssl-dev
###
# Set Environmental Variables
###
- run: echo "CFLAGS=-I${HOME}/environments/${{ matrix.hdf5 }}/include" >> $GITHUB_ENV
- run: echo "LDFLAGS=-L${HOME}/environments/${{ matrix.hdf5 }}/lib" >> $GITHUB_ENV
- run: echo "LD_LIBRARY_PATH=${HOME}/environments/${{ matrix.hdf5 }}/lib" >> $GITHUB_ENV
###
# Fetch Cache
###
- name: Fetch HDF Cache
id: cache-hdf
uses: actions/cache@v3
with:
path: ~/environments/${{ matrix.hdf5 }}
key: hdf5-${{ runner.os }}-${{ matrix.hdf5 }}
- name: Check Cache
shell: bash -l {0}
run: ls ${HOME}/environments && ls ${HOME}/environments/${{ matrix.hdf5 }} && ls ${HOME}/environments/${{ matrix.hdf5}}/lib
###
# Configure and build
###
- name: Run autoconf
shell: bash -l {0}
run: autoreconf -if
- name: Configure
shell: bash -l {0}
run: CFLAGS=${CFLAGS} LDFLAGS=${LDFLAGS} LD_LIBRARY_PATH=${LD_LIBRARY_PATH} ./configure --enable-hdf5 --disable-dap --enable-external-server-tests --enable-s3 --enable-s3-internal --with-s3-testing=public
if: ${{ success() }}
- name: Look at config.log if error
shell: bash -l {0}
run: cat config.log
if: ${{ failure() }}
- name: Print Summary
shell: bash -l {0}
run: cat libnetcdf.settings
- name: Build Library and Utilities
shell: bash -l {0}
run: CFLAGS=${CFLAGS} LDFLAGS=${LDFLAGS} LD_LIBRARY_PATH=${LD_LIBRARY_PATH} make -j
if: ${{ success() }}
- name: Build Tests
shell: bash -l {0}
run: CFLAGS=${CFLAGS} LDFLAGS=${LDFLAGS} LD_LIBRARY_PATH=${LD_LIBRARY_PATH} make check TESTS="" -j
if: ${{ success() }}
- name: Run Tests
shell: bash -l {0}
env:
AWS_PROFILE: ${{ secrets.DEFAULT_PROFILE }}
run: |
mkdir -p ~/.aws
echo "" > ~/.aws/config
chmod go-x ~/.aws/config
echo "${AWS_PROFILE}" >> ~/.aws/config
LD_LIBRARY_PATH="/home/runner/work/netcdf-c/netcdf-c/liblib/.libs:${LD_LIBRARY_PATH}"
CFLAGS=${CFLAGS} LDFLAGS=${LDFLAGS} LD_LIBRARY_PATH=${LD_LIBRARY_PATH} make check -j
if: ${{ success() }}
#####
# S3 CMake-based tests.
#####
##
# Serial
##
# T.B.D. nc-cmake-tests-s3-serial:

View File

@ -14,15 +14,14 @@ jobs:
strategy:
matrix:
hdf5: [ 1.8.22, 1.10.8, 1.12.2 ]
hdf5: [ 1.10.8, 1.12.2, 1.14.0 ]
steps:
- uses: actions/checkout@v3
- name: Install System dependencies
shell: bash -l {0}
run: sudo apt update && sudo apt install -y libaec-dev zlib1g-dev automake autoconf libcurl4-openssl-dev libjpeg-dev wget curl bzip2 m4 flex bison cmake libzip-dev doxygen
run: sudo apt update && sudo apt install -y libaec-dev zlib1g-dev automake autoconf libcurl4-openssl-dev libjpeg-dev wget curl bzip2 m4 flex bison cmake libzip-dev doxygen openssl
###
# Installing libhdf5
@ -63,7 +62,7 @@ jobs:
strategy:
matrix:
hdf5: [ 1.12.2 ]
hdf5: [ 1.14.0 ]
steps:
@ -125,14 +124,14 @@ jobs:
strategy:
matrix:
hdf5: [ 1.12.2 ]
hdf5: [ 1.14.0 ]
steps:
- uses: actions/checkout@v3
- name: Install System dependencies
shell: bash -l {0}
run: sudo apt update && sudo apt install -y libaec-dev zlib1g-dev automake autoconf libcurl4-openssl-dev libjpeg-dev wget curl bzip2 m4 flex bison cmake libzip-dev doxygen
run: sudo apt update && sudo apt install -y libaec-dev zlib1g-dev automake autoconf libcurl4-openssl-dev libjpeg-dev wget curl bzip2 m4 flex bison cmake libzip-dev doxygen valgrind
###
# Set Environmental Variables
@ -192,7 +191,9 @@ jobs:
- name: Run Tests
shell: bash -l {0}
run: CFLAGS=${CFLAGS} LDFLAGS=${LDFLAGS} LD_LIBRARY_PATH=${LD_LIBRARY_PATH} make check -j
run: |
LD_LIBRARY_PATH="/home/runner/work/netcdf-c/netcdf-c/liblib/.libs:${LD_LIBRARY_PATH}"
CFLAGS=${CFLAGS} LDFLAGS=${LDFLAGS} LD_LIBRARY_PATH=${LD_LIBRARY_PATH} make check -j
if: ${{ success() }}
##
@ -205,7 +206,7 @@ jobs:
strategy:
matrix:
hdf5: [ 1.12.2 ]
hdf5: [ 1.14.0 ]
steps:
- uses: actions/checkout@v3
@ -285,7 +286,7 @@ jobs:
strategy:
matrix:
hdf5: [ 1.12.2 ]
hdf5: [ 1.14.0 ]
steps:
@ -365,7 +366,7 @@ jobs:
strategy:
matrix:
hdf5: [ 1.12.2 ]
hdf5: [ 1.14.0 ]
steps:
@ -442,7 +443,7 @@ jobs:
strategy:
matrix:
hdf5: [ 1.8.22, 1.10.8, 1.12.2 ]
hdf5: [1.10.8, 1.12.2, 1.14.0 ]
use_nc4: [ nc3, nc4 ]
use_dap: [ dap_off, dap_on ]
use_nczarr: [ nczarr_off, nczarr_on ]
@ -541,7 +542,7 @@ jobs:
strategy:
matrix:
hdf5: [ 1.8.22, 1.10.8, 1.12.2 ]
hdf5: [ 1.10.8, 1.12.2, 1.14.0 ]
use_nc4: [ nc3, nc4 ]
use_dap: [ dap_off, dap_on ]
use_nczarr: [ nczarr_off, nczarr_on ]
@ -588,7 +589,7 @@ jobs:
- name: Check Cache
shell: bash -l {0}
run: ls ${HOME}/environments && ls ${HOME}/environments/${{ matrix.hdf5 }} && ls ${HOME}/environments/${{ matrix.hdf5}}/lib
run: ls ${HOME}/environments/${{ matrix.hdf5 }} && ls ${HOME}/environments/${{ matrix.hdf5}}/lib
###
# Configure and build
@ -627,4 +628,3 @@ jobs:
cd build
LD_LIBRARY_PATH=${LD_LIBRARY_PATH} ctest -j 12 --rerun-failed --output-on-failure -VV
if: ${{ failure() }}

View File

@ -34,6 +34,7 @@ jobs:
libhdf4-devel zipinfo libxml2-devel perl zlib-devel
libzstd-devel libbz2-devel libaec-devel libzip-devel
libdeflate-devel gcc-core libcurl-devel libiconv-devel
libssl-devel libcrypt-devel
- name: (Autotools) Run autoconf and friends
run: |
@ -50,6 +51,7 @@ jobs:
--disable-nczarr --disable-nczarr-filters
--disable-nczarr-s3 --disable-nczarr-s3-tests
- name: Look at config.log if error
if: ${{ failure() }}
run: cat config.log
@ -71,4 +73,5 @@ jobs:
- name: (Autotools) Build and run tests
timeout-minutes: 30
run: make check -j8 SHELL=/bin/dash
run: |
make check -j8 SHELL=/bin/dash

View File

@ -37,7 +37,7 @@ jobs:
run: autoreconf -if
- name: (Autotools) Configure Build
run: ./configure --enable-hdf5 --enable-dap --disable-dap-remote-tests --disable-static --disable-byterange --disable-dap-remote-tests --disable-logging --enable-plugins --disable-nczarr-filters --disable-nczarr-s3 --disable-nczarr-s3-tests
run: ./configure --enable-hdf5 --enable-dap --disable-dap-remote-tests --disable-static --disable-byterange --disable-dap-remote-tests --disable-logging --enable-plugins --disable-nczarr-filters --disable-s3
if: ${{ success() }}
- name: (Autotools) Look at config.log if error
@ -54,7 +54,7 @@ jobs:
- name: Check for plugins
run: |
dir ./plugins
dir ./plugins/.libs
if test -f ./plugins/.libs ; then dir ./plugins/.libs; fi
- name: (Autotools) Build and Run Tests
run: make check -j 8 LDFLAGS="-Wl,--export-all-symbols"

View File

@ -31,7 +31,7 @@ set(PACKAGE "netCDF" CACHE STRING "")
SET(NC_VERSION_MAJOR 4)
SET(NC_VERSION_MINOR 9)
SET(NC_VERSION_PATCH 2)
SET(NC_VERSION_PATCH 3)
SET(NC_VERSION_NOTE "-development")
SET(netCDF_VERSION ${NC_VERSION_MAJOR}.${NC_VERSION_MINOR}.${NC_VERSION_PATCH}${NC_VERSION_NOTE})
SET(VERSION ${netCDF_VERSION})
@ -1062,7 +1062,7 @@ ENDIF()
IF(ENABLE_DAP)
SET(USE_DAP ON CACHE BOOL "")
SET(ENABLE_DAP2 ON CACHE BOOL "")
IF(ENABLE_HDF5)
MESSAGE(STATUS "Enabling DAP4")
SET(ENABLE_DAP4 ON CACHE BOOL "")
@ -1249,18 +1249,6 @@ IF(MSVC)
OPTION(ENABLE_XGETOPT "Enable bundled XGetOpt instead of external getopt()." ON)
IF(ENABLE_XGETOPT)
SET(USE_X_GETOPT ON CACHE BOOL "")
# Copy XGetopt.c to everywhere it is needed. Avoids
# inconsistent code
FILE(COPY ${netCDF_SOURCE_DIR}/libsrc/XGetopt.c
DESTINATION ${netCDF_BINARY_DIR}/ncgen3/)
FILE(COPY ${netCDF_SOURCE_DIR}/libsrc/XGetopt.c
DESTINATION ${netCDF_BINARY_DIR}/ncgen/)
FILE(COPY ${netCDF_SOURCE_DIR}/libsrc/XGetopt.c
DESTINATION ${netCDF_BINARY_DIR}/ncdump/)
FILE(COPY ${netCDF_SOURCE_DIR}/libsrc/XGetopt.c
DESTINATION ${netCDF_BINARY_DIR}/nczarr_test/)
FILE(COPY ${netCDF_SOURCE_DIR}/libsrc/XGetopt.c
DESTINATION ${netCDF_BINARY_DIR}/ncdap_test/)
ENDIF()
ENDIF()
@ -1282,8 +1270,19 @@ ENDIF()
# Options for S3 Support
OPTION(ENABLE_S3 "Enable S3 support." OFF)
OPTION(ENABLE_S3_INTERNAL "Enable S3 Internal support." OFF)
OPTION(ENABLE_NCZARR_S3 "Enable NCZarr S3 support; Deprecated in favor of ENABLE_S3" OFF)
OPTION(ENABLE_NCZARR_S3_TESTS "Enable NCZarr S3 tests." OFF)
# Control S3 Testing: Multi-valued option
SET(WITH_S3_TESTING OFF CACHE STRING "Control S3 Testing: ON (i.e. all) OFF (i.e. none) PUBLIC")
SET_PROPERTY(CACHE WITH_S3_TESTING PROPERTY STRINGS ON OFF PUBLIC) #
IF(WITH_S3_TESTING STREQUAL "")
SET(WITH_S3_TESTING OFF CACHE STRING "") # Default
ENDIF()
IF(WITH_S3_TESTING)
message(WARNING "**** DO NOT USE WITH_S3_TESTING=ON UNLESS YOU HAVE ACCESS TO THE UNIDATA S3 BUCKET! ***")
ENDIF()
# ENABLE_NCZARR_S3 is now an alias for ENABLE_S3 (but...)
if (NOT ENABLE_S3 AND ENABLE_NCZARR_S3)
@ -1291,38 +1290,46 @@ if (NOT ENABLE_S3 AND ENABLE_NCZARR_S3)
ENDIF()
UNSET(ENABLE_NCZARR_S3)
IF(ENABLE_NCZARR_S3_TESTS AND NOT ENABLE_S3)
message(FATAL_ERROR "S3 support is disabled; please specify option -DENABLE_NCZARR_S3_TESTS=NO")
SET(ENABLE_NCZARR_S3_TESTS OFF CACHE BOOL "NCZARR S3 TESTS" FORCE)
ENDIF()
# Note we check for the library after checking for enable_s3
# because for some reason this screws up if we unconditionally test for sdk
# and it is not available. Fix someday
IF(ENABLE_S3)
# See if aws-s3-sdk is available
find_package(AWSSDK REQUIRED COMPONENTS s3;core)
IF(AWSSDK_FOUND)
SET(service s3;core)
AWSSDK_DETERMINE_LIBS_TO_LINK(service AWS_LINK_LIBRARIES)
SET(ENABLE_S3_SDK ON CACHE BOOL "S3 SDK" FORCE)
ELSE()
SET(ENABLE_S3_SDK OFF CACHE BOOL "S3 SDK" FORCE)
IF(NOT ENABLE_S3_INTERNAL)
# See if aws-s3-sdk is available
find_package(AWSSDK REQUIRED COMPONENTS s3;core)
IF(AWSSDK_FOUND)
SET(service s3;core)
AWSSDK_DETERMINE_LIBS_TO_LINK(service AWS_LINK_LIBRARIES)
SET(ENABLE_S3_AWS ON CACHE BOOL "S3 AWS" FORCE)
ELSE()
SET(ENABLE_S3_AWS OFF CACHE BOOL "S3 AWS" FORCE)
ENDIF()
ENDIF()
ELSE()
SET(ENABLE_S3_SDK OFF CACHE BOOL "S3 SDK" FORCE)
SET(ENABLE_S3_AWS OFF CACHE BOOL "S3 AWS" FORCE)
ENDIF()
IF(NOT ENABLE_S3_SDK)
IF(ENABLE_S3)
# Unless/until we get aws-sdk-cpp working for Windows, force use of internal
IF(ENABLE_S3 AND MSVC)
SET(ENABLE_S3_INTERNAL ON CACHE BOOL "S3 Intern" FORCE)
ENDIF()
IF(ENABLE_S3)
IF(NOT ENABLE_S3_AWS AND NOT ENABLE_S3_INTERNAL)
message(FATAL_ERROR "S3 support library not found; please specify option -DENABLE_S3=NO")
SET(ENABLE_S3 OFF CACHE BOOL "S3 support" FORCE)
SET(ENABLE_NCZARR_S3_TESTS OFF CACHE BOOL "S3 tests" FORCE)
SET(ENABLE_S3 OFF CACHE BOOL "S3 support" FORCE)
ENDIF()
IF(ENABLE_S3_AWS AND ENABLE_S3_INTERNAL)
message(WARNING "Both aws-sdk-cpp and s3-internal enabled => use s3-internal")
SET(ENABLE_S3_AWS OFF CACHE BOOL "S3 AWS" FORCE)
ENDIF()
ENDIF()
IF(ENABLE_NCZARR_S3_TESTS)
message(WARNING "**** DO NOT ENABLE_NCZARR_S3_TESTS UNLESS YOU HAVE ACCESS TO THE UNIDATA S3 BUCKET! ***")
IF(NOT ENABLE_S3)
IF(WITH_S3_TESTING STREQUAL "PUBLIC" OR WITH_S3_TESTING)
message(WARNING "S3 support is disabled => WITH_S3_TESTING=OFF")
SET(WITH_S3_TESTING OFF CACHE STRING "" FORCE)
ENDIF()
ENDIF()
# Start disabling if curl not found
@ -1902,6 +1909,7 @@ ENDIF()
# Check for various functions.
CHECK_FUNCTION_EXISTS(fsync HAVE_FSYNC)
CHECK_FUNCTION_EXISTS(strlcat HAVE_STRLCAT)
CHECK_FUNCTION_EXISTS(strlcpy HAVE_STRLCPY)
CHECK_FUNCTION_EXISTS(strdup HAVE_STRDUP)
CHECK_FUNCTION_EXISTS(strndup HAVE_STRNDUP)
CHECK_FUNCTION_EXISTS(strtoll HAVE_STRTOLL)
@ -2224,7 +2232,7 @@ ENDIF(ENABLE_BASH_SCRIPT_TESTING)
MACRO(add_sh_test prefix F)
IF(HAVE_BASH)
ADD_TEST(${prefix}_${F} bash "-c" "export srcdir=${CMAKE_CURRENT_SOURCE_DIR};export TOPSRCDIR=${CMAKE_SOURCE_DIR};${CMAKE_CURRENT_BINARY_DIR}/${F}.sh ${F}.sh ${ARGN}")
ADD_TEST(${prefix}_${F} bash "-c" "export srcdir=${CMAKE_CURRENT_SOURCE_DIR};export TOPSRCDIR=${CMAKE_SOURCE_DIR};${CMAKE_CURRENT_BINARY_DIR}/${F}.sh ${ARGN}")
ENDIF()
ENDMACRO()
@ -2310,6 +2318,10 @@ ENDIF()
IF(ENABLE_DAP4)
ADD_SUBDIRECTORY(libdap4)
ADD_SUBDIRECTORY(libncxml)
ELSE()
IF(ENABLE_S3_INTERNAL)
ADD_SUBDIRECTORY(libncxml)
ENDIF()
ENDIF()
IF(ENABLE_PLUGINS)
@ -2552,9 +2564,10 @@ is_enabled(USE_CDF5 HAS_CDF5)
is_enabled(ENABLE_ERANGE_FILL HAS_ERANGE_FILL)
is_enabled(HDF5_HAS_PAR_FILTERS HAS_PAR_FILTERS)
is_enabled(ENABLE_S3 HAS_S3)
is_enabled(ENABLE_S3_SDK HAS_S3_SDK)
is_enabled(ENABLE_S3_AWS HAS_S3_AWS)
is_enabled(ENABLE_S3_INTERNAL HAS_S3_INTERNAL)
is_enabled(HAS_HDF5_ROS3 HAS_HDF5_ROS3)
is_enabled(ENABLE_NCZARR HAS_NCZARR)
is_enabled(ENABLE_NCZARR_S3_TESTS DO_NCZARR_S3_TESTS)
is_enabled(ENABLE_NCZARR_ZIP HAS_NCZARR_ZIP)
is_enabled(ENABLE_MULTIFILTERS HAS_MULTIFILTERS)
is_enabled(ENABLE_NCZARR_ZIP DO_NCZARR_ZIP_TESTS)
@ -2567,6 +2580,26 @@ is_enabled(HAVE_ZSTD HAS_ZSTD)
is_enabled(HAVE_BLOSC HAS_BLOSC)
is_enabled(HAVE_BZ2 HAS_BZ2)
if(ENABLE_S3_INTERNAL)
SET(WHICH_S3_SDK "internal")
SET(NC_WHICH_S3_SDK "internal")
elseif(ENABLE_S3_AWS)
SET(WHICH_S3_SDK "aws-sdk-cpp")
SET(NC_WHICH_S3_SDK "aws-sdk-cpp")
else()
SET(WHICH_S3_SDK "none")
SET(NC_WHICH_S3_SDK "none")
endif()
if(WITH_S3_TESTING STREQUAL PUBLIC)
SET(DO_S3_TESTING "public")
elseif(WITH_S3_TESTING)
SET(DO_S3_TESTING "yes")
elseif(NOT WITH_S3_TESTING)
SET(DO_S3_TESTING "no")
else()
SET(DO_S3_TESTING "no")
endif()
# Generate file from template.
CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/libnetcdf.settings.in"

View File

@ -7,9 +7,19 @@
# Ed Hartnett, Ward Fisher
# Put together AM_CPPFLAGS and AM_LDFLAGS.
include $(top_srcdir)/lib_flags.am
# This directory stores libtool macros, put there by aclocal.
ACLOCAL_AMFLAGS = -I m4
TESTS_ENVIRONMENT =
TEST_EXTENSIONS = .sh
#SH_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver-verbose
#sh_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver-verbose
#LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver-verbose
#TESTS_ENVIRONMENT += export SETX=1;
##
# Turn off plugin directory during distcheck, see
# comment thread at https://github.com/Unidata/netcdf-c/pull/2348
@ -74,10 +84,14 @@ endif
if ENABLE_DAP4
DAP4 = libdap4
XML = libncxml
NCDAP4TESTDIR = dap4_test
XML = libncxml
endif #DAP4
if ENABLE_S3_INTERNAL
XML = libncxml # Internal S3 requires XML
endif #ENABLE_S3_INTERNAL
# Build PnetCDF
if USE_PNETCDF
LIBSRCP = libsrcp

View File

@ -5,10 +5,24 @@ Release Notes {#RELEASE_NOTES}
This file contains a high-level description of this package's evolution. Releases are in reverse chronological order (most recent first). Note that, as of netcdf 4.2, the `netcdf-c++` and `netcdf-fortran` libraries have been separated into their own libraries.
## 4.9.2 - TBD
## 4.9.3 - TBD
* Improve S3 documentation, testing, and support See [Github #2686](https://github.com/Unidata/netcdf-c/pull/2686).
* Remove obsolete code. See [Github #2680](https://github.com/Unidata/netcdf-c/pull/2680).
* [Bug Fix] Add a crude test to see if an NCZarr path looks like a valid NCZarr/Zarr file. See [Github #2658](https://github.com/Unidata/netcdf-c/pull/2658).
## 4.9.2 - March 14, 2023
This is the maintenance release which adds support for HDF5 version 1.14.0, in addition to a handful of other changes and bugfixes.
* Fix 'make distcheck' error in run_interop.sh. See [Github #2631](https://github.com/Unidata/netcdf-c/pull/2631).
* Fix a minor bug in reporting the use of szip. See [Github #2679](https://github.com/Unidata/netcdf-c/pull/2679).
* Simplify the handling of XGetopt. See [Github #2678](https://github.com/Unidata/netcdf-c/pull/2678).
* Update `nc-config` to remove inclusion from automatically-detected `nf-config` and `ncxx-config` files, as the wrong files could be included in the output. This is in support of [GitHub #2274](https://github.com/Unidata/netcdf-c/issues/2274).
* Update H5FDhttp.[ch] to work with HDF5 version 1.13.2 and later. See [Github #2635](https://github.com/Unidata/netcdf-c/pull/2635).
* [Bug Fix] Update DAP code to enable CURLOPT_ACCEPT_ENCODING by default. See [Github #2630](https://github.com/Unidata/netcdf-c/pull/2630).
* [Bug Fix] Fix byterange failures for certain URLs. See [Github #????](https://github.com/Unidata/netcdf-c/pull/????).
* [Bug Fix] Fix byterange failures for certain URLs. See [Github #2649](https://github.com/Unidata/netcdf-c/pull/2649).
* [Bug Fix] Fix 'make distcheck' error in run_interop.sh. See [Github #2631](https://github.com/Unidata/netcdf-c/pull/2631).
* [Enhancement] Update `nc-config` to remove inclusion from automatically-detected `nf-config` and `ncxx-config` files, as the wrong files could be included in the output. This is in support of [GitHub #2274](https://github.com/Unidata/netcdf-c/issues/2274).
* [Enhancement] Update H5FDhttp.[ch] to work with HDF5 version 1.14.0. See [Github #2615](https://github.com/Unidata/netcdf-c/pull/2615).
@ -113,7 +127,10 @@ This file contains a high-level description of this package's evolution. Release
#### Changes
* [Bug Fix] Get remotetest server working for DAP4 and re-enable its use in the netcdf-c library for testing. See [Github #2558](https://github.com/Unidata/netcdf-c/pull/2558).
* [Bug Fix] Fix a race condition when testing missing filters. See [Github #2557](https://github.com/Unidata/netcdf-c/pull/2557).
* [Bug Fix] Make major changes to libdap4 and dap4_test to update the non-remote DAP4 tests. See [Github #2555](https://github.com/Unidata/netcdf-c/pull/2555).
* [Bug Fix] Fix some race conditions due to use of a common file in multiple shell scripts . See [Github #2552](https://github.com/Unidata/netcdf-c/pull/2552).

View File

@ -136,27 +136,30 @@ are set when opening a binary file on Windows. */
/* if true, do remote tests */
#cmakedefine ENABLE_DAP_REMOTE_TESTS 1
/* if true, enable S3 support */
#cmakedefine ENABLE_S3 1
/* if true, S3 SDK is available */
#cmakedefine ENABLE_S3_SDK 1
/* if true, enable NCZARR */
#cmakedefine ENABLE_NCZARR 1
/* if true, enable nczarr filter support */
#cmakedefine ENABLE_NCZARR_FILTERS 1
/* if true, enable S3 testing*/
#cmakedefine ENABLE_NCZARR_S3_TESTS 1
/* if true, enable nczarr zip support */
#cmakedefine ENABLE_NCZARR_ZIP 1
/* if true, Allow dynamically loaded plugins */
#cmakedefine ENABLE_PLUGINS 1
/* if true, enable S3 support */
#cmakedefine ENABLE_S3 1
/* if true, AWS S3 SDK is available */
#cmakedefine ENABLE_S3_AWS 1
/* if true, Force use of S3 internal library */
#cmakedefine ENABLE_S3_INTERNAL 1
/* if true, enable S3 testing*/
#cmakedefine WITH_S3_TESTING "PUBLIC"
/* if true, run extra tests which may not work yet */
#cmakedefine EXTRA_TESTS 1
@ -379,6 +382,9 @@ are set when opening a binary file on Windows. */
/* Define to 1 if you have the `strlcat' function. */
#cmakedefine HAVE_STRLCAT 1
/* Define to 1 if you have the `strlcpy' function. */
#cmakedefine HAVE_STRLCPY 1
/* Define to 1 if you have the `strtoll' function. */
#cmakedefine HAVE_STRTOLL 1

View File

@ -10,7 +10,7 @@
AC_PREREQ([2.59])
# Initialize with name, version, and support email address.
AC_INIT([netCDF],[4.9.2-development],[support-netcdf@unidata.ucar.edu],[netcdf-c])
AC_INIT([netCDF],[4.9.3-development],[support-netcdf@unidata.ucar.edu],[netcdf-c])
##
# Prefer an empty CFLAGS variable instead of the default -g -O2.
@ -21,7 +21,7 @@ AC_INIT([netCDF],[4.9.2-development],[support-netcdf@unidata.ucar.edu],[netcdf-c
AC_SUBST([NC_VERSION_MAJOR]) NC_VERSION_MAJOR=4
AC_SUBST([NC_VERSION_MINOR]) NC_VERSION_MINOR=9
AC_SUBST([NC_VERSION_PATCH]) NC_VERSION_PATCH=2
AC_SUBST([NC_VERSION_PATCH]) NC_VERSION_PATCH=3
AC_SUBST([NC_VERSION_NOTE]) NC_VERSION_NOTE="-development"
##
@ -29,7 +29,7 @@ AC_SUBST([NC_VERSION_NOTE]) NC_VERSION_NOTE="-development"
# See http://www.gnu.org/software/libtool/manual/libtool.html#Libtool-versioning
# for information regarding incrementing `-version-info`.
# These values should match those in CMakeLists.txt
AC_SUBST([netCDF_SO_VERSION]) netCDF_SO_VERSION=21:1:2
AC_SUBST([netCDF_SO_VERSION]) netCDF_SO_VERSION=21:2:2
#####
# Set some variables used to generate a libnetcdf.settings file,
@ -97,7 +97,7 @@ AC_CONFIG_LINKS([nc_test4/ref_hdf5_compat3.nc:nc_test4/ref_hdf5_compat3.nc])
AC_CONFIG_LINKS([hdf4_test/ref_chunked.hdf4:hdf4_test/ref_chunked.hdf4])
AC_CONFIG_LINKS([hdf4_test/ref_contiguous.hdf4:hdf4_test/ref_contiguous.hdf4])
AM_INIT_AUTOMAKE([foreign dist-zip subdir-objects])
AM_MAINTAINER_MODE()
#AM_MAINTAINER_MODE()
# Check for the existence of this file before proceeding.
AC_CONFIG_SRCDIR([include/netcdf.h])
@ -135,9 +135,9 @@ AC_MSG_NOTICE([checking supported formats])
# An explicit disable of netcdf-4 | netcdf4 is treated as if it was disable-hdf5
AC_MSG_CHECKING([whether we should build with netcdf4 (alias for HDF5)])
AC_ARG_ENABLE([netcdf4], [AS_HELP_STRING([--disable-netcdf4],
[(deprecated synonym for --enable-hdf5)])])
[(Deprecated) Synonym for --enable-hdf5)])])
test "x$enable_netcdf4" = xno || enable_netcdf4=yes
AC_MSG_RESULT([$enable_netcdf4 (deprecated; Please use with --disable-hdf5)])
AC_MSG_RESULT([$enable_netcdf4 (Deprecated) Please use --disable-hdf5)])
AC_MSG_CHECKING([whether we should build with netcdf-4 (alias for HDF5)])
AC_ARG_ENABLE([netcdf-4], [AS_HELP_STRING([--disable-netcdf-4],
[(synonym for --disable-netcdf4)])])
@ -565,7 +565,7 @@ if test "x$enable_libxml2" = xyes; then
if test -z "$NC_XML2_CONFIG"; then
AC_MSG_ERROR([Cannot find xml2-config utility. Either install the libxml2 development package, or re-run configure with --disable-libxml2 to use the bundled xml2 parser])
fi
# We can optionally use libxml2 for DAP4
# We can optionally use libxml2 for DAP4 and nch5comms, if enabled
AC_CHECK_LIB([xml2],[xmlReadMemory],[have_libxml2=yes],[have_libxml2=no])
if test "x$have_libxml2" = "xyes" ; then
AC_SEARCH_LIBS([xmlReadMemory],[xml2 xml2.dll cygxml2.dll], [],[])
@ -614,21 +614,14 @@ AC_MSG_CHECKING([whether dap use of remotetest server should be enabled])
AC_ARG_ENABLE([dap-remote-tests],
[AS_HELP_STRING([--disable-dap-remote-tests],
[disable dap remote tests])])
# Default off
test "x$enable_dap_remote_tests" = xyes || enable_dap_remote_tests=no
# Default on
test "x$enable_dap_remote_tests" = xno || enable_dap_remote_tests=yes
if test "x$enable_dap" = "xno" ; then
enable_dap_remote_tests=no
fi
AC_MSG_RESULT($enable_dap_remote_tests)
AC_MSG_CHECKING([whether dap use of remotetest server should be enabled])
AC_ARG_ENABLE([dap-remote-tests],
[AS_HELP_STRING([--disable-dap-remote-tests],
[disable dap remote tests])])
test "x$enable_dap_remote_tests" = xno || enable_dap_remote_tests=yes
AC_MSG_RESULT($enable_dap_remote_tests)
AC_MSG_CHECKING([whether use of external servers should be enabled])
AC_MSG_CHECKING([whether use of external (non-unidata) servers should be enabled])
AC_ARG_ENABLE([external-server-tests],
[AS_HELP_STRING([--enable-external-server-tests (default off)],
[enable external server tests])])
@ -663,12 +656,15 @@ AC_ARG_WITH([testservers],
[AS_HELP_STRING([--with-testservers=<host:port>,<host:port>...],
[Specify the testserver(s) to try for remote tests.])],
[REMOTETESTSERVERS=$with_testservers], [REMOTETESTSERVERS=no])
msg="$REMOTETESTSERVERS"
if test "x$REMOTETESTSERVERS" = xno ; then
svclist="remotetest.unidata.ucar.edu"
REMOTETESTSERVERS="$svclist"
dfaltsvc="remotetest.unidata.ucar.edu"
REMOTETESTSERVERS="${dfaltsvc}"
fi
AC_MSG_RESULT([$svclist])
msg="${REMOTETESTSERVERS}"
if test "x$dfaltsvc" != x ; then
msg="${msg} (default)"
fi
AC_MSG_RESULT([${msg}])
AC_DEFINE_UNQUOTED([REMOTETESTSERVERS], ["$REMOTETESTSERVERS"], [the testservers for remote tests.])
# Set the config.h flags
@ -807,13 +803,14 @@ AC_MSG_RESULT($enable_s3)
AC_MSG_CHECKING([whether netcdf NCZarr S3 support should be enabled])
AC_ARG_ENABLE([nczarr-s3],
[AS_HELP_STRING([--enable-nczarr-s3],
[enable netcdf NCZarr S3 support; Deprecated in favor of --enable-s3])])
[(Deprecated) enable netcdf NCZarr S3 support; Deprecated in favor of --enable-s3])])
AC_MSG_RESULT([$enable_nczarr_s3 (Deprecated) Please use --enable-s3)])
# Set enable_s3 instead of enable_nczarr_s3
if test "x$enable_s3" = xno && test "x$enable_nczarr_s3" = xyes ; then
enable_s3=yes # back compatibility
fi
unset enable_nczarr_s3
AC_MSG_RESULT($enable_s3)
# Note we check for the library after checking for enable_s3
# because for some reason this fails if we unconditionally test for sdk
@ -822,48 +819,73 @@ if test "x$enable_s3" = xyes ; then
# See if we have the s3 aws library
# Check for the AWS S3 SDK library
AC_LANG_PUSH([C++])
AC_SEARCH_LIBS([aws_allocator_is_valid],[aws-c-common aws-cpp-sdk-s3 aws-cpp-sdk-core], [enable_s3_sdk=yes],[enable_s3_sdk=no])
AC_SEARCH_LIBS([aws_allocator_is_valid],[aws-c-common aws-cpp-sdk-s3 aws-cpp-sdk-core], [enable_s3_aws=yes],[enable_s3_aws=no])
AC_LANG_POP
else
enable_s3_sdk=no
enable_s3_aws=no
fi
AC_MSG_CHECKING([whether AWS S3 SDK library is available])
AC_MSG_RESULT([$enable_s3_sdk])
AC_MSG_RESULT([$enable_s3_aws])
if test "x$enable_s3_sdk" = xno ; then
# Check for enabling forced use of Internal S3 library
AC_MSG_CHECKING([whether internal S3 support should be used])
AC_ARG_ENABLE([s3-internal],
[AS_HELP_STRING([--enable-s3-internal],
[enable internal S3 support])])
test "x$enable_s3_internal" = xyes || enable_s3_internal=no
AC_MSG_RESULT($enable_s3_internal)
if test "x$enable_s3_aws" = xno && test "x$enable_s3_internal" = xno ; then
AC_MSG_WARN([No S3 library available => S3 support disabled])
enable_S3=no
fi
if test "x$enable_s3_aws" = xyes && test "x$enable_s3_internal" = xyes ; then
AC_MSG_WARN([Both aws-sdk-cpp and s3-internal enabled => use s3-internal.])
enable_s3_aws=no
fi
if test "x$enable_s3_internal" = xyes ; then
if test "x$ISOSX" != xyes && test "x$ISMINGW" != xyes && test "x$ISMSVC" != xyes ; then
# Find crypto libraries if using ssl
AC_CHECK_LIB([ssl],[ssl_create_cipher_list])
AC_CHECK_LIB([crypto],[SHA256])
fi
fi
# Check for enabling S3 testing
AC_MSG_CHECKING([whether netcdf zarr S3 testing should be enabled])
AC_ARG_ENABLE([nczarr-s3-tests],
[AS_HELP_STRING([--enable-nczarr-s3-tests],
[enable netcdf zarr S3 testing])])
test "x$enable_nczarr_s3_tests" = xyes || enable_nczarr_s3_tests=no
AC_MSG_RESULT($enable_nczarr_s3_tests)
AC_MSG_CHECKING([what level of netcdf S3 testing should be enabled])
AC_ARG_WITH([s3-testing],
[AS_HELP_STRING([--with-s3-testing=yes|no|public],
[control netcdf S3 testing])],
[], [with_s3_testing=public])
AC_MSG_RESULT($with_s3_testing)
# Disable S3 tests if S3 support is disabled
if test "x$enable_nczarr_s3_tests" = xyes ; then
if test "x$enable_s3" = xno ; then
AC_MSG_ERROR([S3 support is disabled => no testing])
enable_nczarr_s3_tests=no
if test "x$enable_s3" = xno ; then
if test "x$with_s3_testing" != xno ; then
AC_MSG_WARN([S3 support is disabled => no testing])
with_s3_testing=no
fi
fi
if test "x$enable_s3" = xyes ; then
AC_DEFINE([ENABLE_S3], [1], [if true, build netcdf-c with S3 support enabled])
fi
if test "x$enable_nczarr_s3_tests" = xyes ; then
AC_DEFINE([ENABLE_NCZARR_S3_TESTS], [1], [if true, build libnczarr with S3 tests enabled])
fi
if test "x$enable_s3_sdk" = xyes ; then
AC_DEFINE([ENABLE_S3_SDK], [1], [If true, then S3 sdk was found])
if test "x$enable_s3_aws" = xyes ; then
AC_DEFINE([ENABLE_S3_AWS], [1], [If true, then use aws S3 library])
fi
if test "x$enable_nczarr_s3_tests" = xyes ; then
AC_MSG_WARN([*** DO NOT ENABLE_NCZARR_S3_TESTS UNLESS YOU HAVE ACCESS TO THE UNIDATA S3 BUCKET! ***])
if test "x$enable_s3_internal" = xyes ; then
AC_DEFINE([ENABLE_S3_INTERNAL], [1], [If true, then use internal S3 library])
fi
AC_DEFINE_UNQUOTED([WITH_S3_TESTING], [$with_s3_testing], [control S3 testing.])
if test "x$with_s3_testing" = xyes ; then
AC_MSG_WARN([*** DO NOT SPECIFY WITH_S3_TESTING=YES UNLESS YOU HAVE ACCESS TO THE UNIDATA S3 BUCKET! ***])
fi
# Set default
@ -1213,7 +1235,7 @@ AC_CHECK_FUNCS([strlcat snprintf strcasecmp fileno \
strdup strtoll strtoull \
mkstemp mktemp random \
getrlimit gettimeofday fsync MPI_Comm_f2c MPI_Info_f2c \
strncasecmp])
strncasecmp strlcpy])
# See if clock_gettime is available and its arg types.
AC_CHECK_FUNCS([clock_gettime])
@ -1484,7 +1506,7 @@ fi
hdf5_parallel=no
hdf5_supports_par_filters=no
enable_hdf5_szip=no
has_ross3=no
has_hdf5_ros3=no
if test "x$enable_hdf5" = xyes; then
@ -1528,8 +1550,8 @@ if test "x$enable_hdf5" = xyes; then
AC_SEARCH_LIBS([H5Dread_chunk],[hdf5_hldll hdf5_hl], [has_readchunks=yes], [has_readdhunks=no])
# See if hdf5 library supports Read-Only S3 (byte-range) driver
AC_SEARCH_LIBS([H5Pset_fapl_ros3],[hdf5_hldll hdf5_hl], [has_ros3=yes], [has_ros3=no])
if test "x$has_ros3" = xyes && test "x$enable_byterange" = xyes; then
AC_SEARCH_LIBS([H5Pset_fapl_ros3],[hdf5_hldll hdf5_hl], [has_hdf5_ros3=yes], [has_hdf5_ros3=no])
if test "x$has_hdf5_ros3" = xyes && test "x$enable_byterange" = xyes; then
AC_DEFINE([ENABLE_HDF5_ROS3], [1], [if true, support byte-range using hdf5 virtual file driver.])
fi
@ -1828,9 +1850,11 @@ AM_CONDITIONAL(RELAX_COORD_BOUND, [test "xyes" = xyes])
AM_CONDITIONAL(HAS_PAR_FILTERS, [test x$hdf5_supports_par_filters = xyes ])
# We need to simplify the set of S3 and Zarr flag combinations
AM_CONDITIONAL(ENABLE_S3, [test "x$enable_s3" = xyes])
AM_CONDITIONAL(ENABLE_S3_SDK, [test "x$enable_s3_sdk" = xyes])
AM_CONDITIONAL(ENABLE_S3_AWS, [test "x$enable_s3_aws" = xyes])
AM_CONDITIONAL(ENABLE_S3_INTERNAL, [test "x$enable_s3_internal" = xyes])
AM_CONDITIONAL(ENABLE_NCZARR, [test "x$enable_nczarr" = xyes])
AM_CONDITIONAL(ENABLE_NCZARR_S3_TESTS, [test "x$enable_nczarr_s3_tests" = xyes])
AM_CONDITIONAL(ENABLE_S3_TESTPUB, [test "x$with_s3_testing" != xno]) # all => public
AM_CONDITIONAL(ENABLE_S3_TESTALL, [test "x$with_s3_testing" = xyes])
AM_CONDITIONAL(ENABLE_NCZARR_ZIP, [test "x$enable_nczarr_zip" = xyes])
AM_CONDITIONAL(HAS_MULTIFILTERS, [test "x$has_multifilters" = xyes])
AM_CONDITIONAL(HAVE_SZ, [test "x$have_sz" = xyes])
@ -1936,8 +1960,11 @@ AC_SUBST(HAS_BYTERANGE,[$enable_byterange])
AC_SUBST(RELAX_COORD_BOUND,[yes])
AC_SUBST([HAS_PAR_FILTERS], [$hdf5_supports_par_filters])
AC_SUBST(HAS_S3,[$enable_s3])
AC_SUBST(HAS_S3_AWS,[$enable_s3_aws])
AC_SUBST(HAS_S3_INTERNAL,[$enable_s3_internal])
AC_SUBST(HAS_HDF5_ROS3,[$has_hdf5_ros3])
AC_SUBST(HAS_NCZARR,[$enable_nczarr])
AC_SUBST(DO_NCZARR_S3_TESTS,[$enable_nczarr_s3_tests])
AC_SUBST(DO_S3_TESTING,[$with_s3_testing])
AC_SUBST(HAS_NCZARR_ZIP,[$enable_nczarr_zip])
AC_SUBST(HAS_MULTIFILTERS,[$has_multifilters])
AC_SUBST(DO_NCZARR_ZIP_TESTS,[$enable_nczarr_zip])
@ -1947,11 +1974,22 @@ AC_SUBST(DO_FILTER_TESTS,[$enable_filter_testing])
AC_SUBST(HAS_SZLIB,[$have_sz])
AC_SUBST(HAS_SZLIB_WRITE, [$have_sz])
AC_SUBST(HAS_ZSTD,[$have_zstd])
AC_SUBST(DO_LARGE_TESTS,[$enable_large_file_tests])
if test "x$enable_s3_aws" = xyes ; then
AC_SUBST(WHICH_S3_SDK,[aws-sdk-cpp])
fi
if test "x$enable_s3_internal" = xyes; then
AC_SUBST(WHICH_S3_SDK,[internal])
fi
if test "x$enable_s3_aws" = xno && test "x$enable_s3_internal" = xno; then
AC_SUBST(WHICH_S3_SDK,[none])
fi
# Always available
std_filters="deflate bz2"
if test "x$enable_szlib" = xyes ; then
if test "x$have_sz" = xyes ; then
std_filters="${std_filters} szip"
fi
if test "x$have_blosc" = xyes ; then
@ -2036,7 +2074,7 @@ AC_SUBST([NOUNDEFINED])
# example: AX_SET_META([NC_HAS_NC2],[$nc_build_v2],[]) # Because it checks for no.
# AX_SET_META([NC_HAS_HDF4],[$enable_hdf4],[yes])
AC_DEFUN([AX_SET_META],[
if [ test "x$2" = x$3 ]; then
if [ test "x$2" = "x$3" ]; then
AC_SUBST([$1]) $1=1
else
AC_SUBST([$1]) $1=0
@ -2064,8 +2102,11 @@ AX_SET_META([NC_HAS_CDF5],[$enable_cdf5],[yes])
AX_SET_META([NC_HAS_ERANGE_FILL], [$enable_erange_fill],[yes])
AX_SET_META([NC_HAS_PAR_FILTERS], [$hdf5_supports_par_filters],[yes])
AX_SET_META([NC_HAS_BYTERANGE],[$enable_byterange],[yes])
AX_SET_META([NC_HAS_NCZARR],[$enable_nczarr],[yes])
AX_SET_META([NC_HAS_S3],[$enable_s3],[yes])
AX_SET_META([NC_HAS_S3_AWS],[$enable_s3_aws],[yes])
AX_SET_META([NC_HAS_S3_INTERNAL],[$enable_s3_internal],[yes])
AX_SET_META([NC_HAS_HDF5_ROS3],[$has_hdf5_ros3],[yes])
AX_SET_META([NC_HAS_NCZARR],[$enable_nczarr],[yes])
AX_SET_META([NC_HAS_MULTIFILTERS],[$has_multifilters],[yes])
AX_SET_META([NC_HAS_LOGGING],[$enable_logging],[yes])
AX_SET_META([NC_HAS_QUANTIZE],[$enable_quantize],[yes])

View File

@ -15,10 +15,7 @@ ADD_SUBDIRECTORY(baselineremote)
ADD_SUBDIRECTORY(baselinehyrax)
ADD_SUBDIRECTORY(baselinethredds)
ADD_SUBDIRECTORY(cdltestfiles)
ADD_SUBDIRECTORY(daptestfiles)
ADD_SUBDIRECTORY(dmrtestfiles)
ADD_SUBDIRECTORY(nctestfiles)
ADD_SUBDIRECTORY(misctestfiles)
ADD_SUBDIRECTORY(rawtestfiles)
FILE(GLOB COPY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.sh)
@ -39,41 +36,46 @@ IF(ENABLE_TESTS)
# keep it from being too bad.
IF(BUILD_UTILITIES)
add_sh_test(dap4_test test_fillmismatch)
# Following tests are Unit tests, so not tested under visual studio
IF(NOT MSVC)
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/libdap4)
build_bin_test(test_parse)
build_bin_test(test_meta)
IF(USE_X_GETOPT)
build_bin_test(test_data ${CMAKE_SOURCE_DIR}/libdispatch/XGetopt.c)
ELSE()
build_bin_test(test_data)
ENDIF()
add_sh_test(dap4_test test_parse)
add_sh_test(dap4_test test_raw)
add_sh_test(dap4_test test_meta)
add_sh_test(dap4_test test_data)
ENDIF()
ENDIF(BUILD_UTILITIES)
IF(ENABLE_DAP_REMOTE_TESTS)
add_sh_test(dap4_test test_remote)
add_sh_test(dap4_test test_hyrax)
add_sh_test(dap4_test test_thredds)
# add_sh_test(dap4_test test_thredds)
add_sh_test(dap4_test test_dap4url)
ENDIF(ENABLE_DAP_REMOTE_TESTS)
ENDIF(ENABLE_TESTS)
FILE(COPY ./baselineraw DESTINATION ${CMAKE_CURRENT_SOURCE_DIR})
#FILE(COPY ./baseline DESTINATION ${CMAKE_CURRENT_SOURCE_DIR})
#FILE(COPY ./baselineraw DESTINATION ${CMAKE_CURRENT_SOURCE_DIR})
#FILE(COPY ./baselineremote DESTINATION ${CMAKE_CURRENT_SOURCE_DIR})
#FILE(COPY ./baselinethredds DESTINATION ${CMAKE_CURRENT_SOURCE_DIR})
#FILE(COPY ./baselinehyrax DESTINATION ${CMAKE_CURRENT_SOURCE_DIR})
#FILE(COPY ./cdltestfiles DESTINATION ${CMAKE_CURRENT_SOURCE_DIR})
#FILE(COPY ./daptestfiles DESTINATION ${CMAKE_CURRENT_SOURCE_DIR})
#FILE(COPY ./dmrtestfiles DESTINATION ${CMAKE_CURRENT_SOURCE_DIR})
#FILE(COPY ./rawtestfiles DESTINATION ${CMAKE_CURRENT_SOURCE_DIR})
## Specify files to be distributed by 'make dist'
FILE(GLOB CUR_EXTRA_DIST RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/*.c ${CMAKE_CURRENT_SOURCE_DIR}/*.h ${CMAKE_CURRENT_SOURCE_DIR}/*.sh
#${CMAKE_CURRENT_SOURCE_DIR}/daptestfiles
#${CMAKE_CURRENT_SOURCE_DIR}/dmrtestfiles
#${CMAKE_CURRENT_SOURCE_DIR}/cdltestfiles
#${CMAKE_CURRENT_SOURCE_DIR}/baseline
${CMAKE_CURRENT_SOURCE_DIR}/cdltestfiles
${CMAKE_CURRENT_SOURCE_DIR}/rawtestfiles
${CMAKE_CURRENT_SOURCE_DIR}/baseline
${CMAKE_CURRENT_SOURCE_DIR}/baselineraw
${CMAKE_CURRENT_SOURCE_DIR}/baselineremote
#${CMAKE_CURRENT_SOURCE_DIR}/baselinerthredds
${CMAKE_CURRENT_SOURCE_DIR}/baselinehyrax
)
SET(CUR_EXTRA_DIST ${CUR_EXTRA_DIST} CMakeLists.txt Makefile.am)
ADD_EXTRA_DIST("${CUR_EXTRA_DIST}")

View File

@ -30,33 +30,38 @@ check_PROGRAMS += test_parse test_meta test_data
noinst_PROGRAMS =
TESTS += test_parse.sh test_meta.sh test_data.sh test_fillmismatch.sh test_raw.sh
TESTS += test_parse.sh test_meta.sh test_data.sh test_raw.sh
# Note tst_curlopt.sh is intended to be run manually; see comments in file.
# Note test_curlopt.sh is intended to be run manually; see comments in file.
# Note: This program name was changed to findtestserver4
# to avoid cmake complaint about duplicate targets.
noinst_PROGRAMS += findtestserver4 pingurl4
noinst_PROGRAMS += findtestserver4 pingurl4 dump
findtestserver4_SOURCES = findtestserver4.c
pingurl4_SOURCES = pingurl4.c
dump_SOURCES = dump.c
# Disable Dap4 Remote Tests until the test server is working
if ENABLE_DAP_REMOTE_TESTS
if BUILD_UTILITIES
# relies on ncdump
TESTS += test_hyrax.sh
# TESTS += test_thredds.sh
if AX_IGNORE
TESTS += test_remote.sh
endif
if ENABLE_DAP_REMOTE_TESTS
TESTS += test_remote.sh
TESTS += test_constraints.sh
TESTS += test_hyrax.sh
#TESTS += test_thredds.sh
TESTS += test_dap4url.sh
endif
endif
EXTRA_DIST = test_parse.sh test_meta.sh test_data.sh \
test_raw.sh test_remote.sh test_hyrax.sh test_thredds.sh test_fillmismatch.sh \
tst_curlopt.sh d4test_common.sh \
daptestfiles dmrtestfiles cdltestfiles nctestfiles misctestfiles \
baseline baselineraw baselineremote baselinehyrax baselinethredds CMakeLists.txt test_common.h
EXTRA_DIST = CMakeLists.txt test_common.h build.sh \
d4manifest.sh d4test_common.sh \
test_curlopt.sh test_data.sh test_hyrax.sh test_meta.sh \
test_parse.sh test_raw.sh \
test_remote.sh test_constraints.sh test_thredds.sh \
test_dap4url.sh \
cdltestfiles rawtestfiles \
baseline baselineraw baselineremote baselinehyrax baselinethredds
CLEANFILES = *.exe
# This should only be left behind if using parallel io
@ -81,8 +86,9 @@ clean-local-check:
# The shell file maketests.sh is used to build the testdata
# for dap4 testing. It creates and fills the directories
# daptestfiles, dmrtestfiles, and cdltestfiles
# daptestfiles, dmrtestfiles, and testsrc
# As a rule, this will only be invoked if there was a change
# in the GenerateRaw.java program in the thredds tree.
maketests::
bash ./maketests.sh

View File

@ -1,12 +0,0 @@
netcdf test_anon_dim.2.syn {
dimensions:
_Anonymous4 = 4 ;
variables:
int vu32(_Anonymous4) ;
// global attributes:
string :_dap4.ce = "/vu32[0:3]" ;
data:
vu32 = -1169720286, -920699049, -2088732436, 1060190036 ;
}

View File

@ -1,9 +0,0 @@
netcdf test_anon_dim.2 {
dimensions:
_Anonymous4 = 4 ;
variables:
int vu32(_Anonymous4) ;
// global attributes:
string :_dap4.ce = "/vu32[0:3]" ;
}

View File

@ -1,21 +0,0 @@
<Dataset
name="test_anon_dim.syn"
dapVersion="4.0"
dmrVersion="1.0"
xmlns="http://xml.opendap.org/ns/DAP/4.0#"
xmlns:dap="http://xml.opendap.org/ns/DAP/4.0#">
<Dimensions>
<Dimension name="_Anonymous4" size="4"/>
</Dimensions>
<Variables>
<Int32 name="vu32">
<Dim name="/_Anonymous4"/>
</Int32>
</Variables>
<Attribute name="_dap4.ce" type="String">
<Value value="/vu32[0:3]"/>
</Attribute>
<Attribute name="_DAP4_Little_Endian" type="UInt8">
<Value value="1"/>
</Attribute>
</Dataset>

View File

@ -1,11 +0,0 @@
netcdf test_anon_dim.syn {
dimensions:
_Anonymous6 = 6 ;
variables:
int vu32(_Anonymous6) ;
data:
vu32 = -1169720286, -920699049, -2088732436, 1060190036, -1123468835,
922940053 ;
}

View File

@ -1,7 +0,0 @@
netcdf test_anon_dim {
dimensions:
_Anonymous6 = 6 ;
variables:
int vu32(_Anonymous6) ;
}

View File

@ -1,18 +0,0 @@
<Dataset
name="test_anon_dim.syn"
dapVersion="4.0"
dmrVersion="1.0"
xmlns="http://xml.opendap.org/ns/DAP/4.0#"
xmlns:dap="http://xml.opendap.org/ns/DAP/4.0#">
<Dimensions>
<Dimension name="_Anonymous6" size="6"/>
</Dimensions>
<Variables>
<Int32 name="vu32">
<Dim name="/_Anonymous6"/>
</Int32>
</Variables>
<Attribute name="_DAP4_Little_Endian" type="UInt8">
<Value value="1"/>
</Attribute>
</Dataset>

View File

@ -1,28 +0,0 @@
netcdf test_atomic_array.5.nc {
types:
opaque(16) opaque16_t ;
dimensions:
_Anonymous1 = 1 ;
_Anonymous2 = 2 ;
variables:
ubyte vu8(_Anonymous1, _Anonymous2) ;
double vd(_Anonymous1) ;
string vs(_Anonymous1, _Anonymous1) ;
opaque16_t vo(_Anonymous1, _Anonymous1) ;
// global attributes:
string :_dap4.ce = "/vu8[1][0:2:2];/vd[1];/vs[1][0];/vo[0][1]" ;
data:
vu8 =
3, 5 ;
vd = 1024.8 ;
vs =
"Καλημέα" ;
vo =
0XABCDEF00000000000000000000000000 ;
}

View File

@ -1,15 +0,0 @@
netcdf test_atomic_array.5 {
types:
opaque(8) opaque8_t ;
dimensions:
_Anonymous1 = 1 ;
_Anonymous2 = 2 ;
variables:
ubyte vu8(_Anonymous1, _Anonymous2) ;
double vd(_Anonymous1) ;
string vs(_Anonymous1, _Anonymous1) ;
opaque8_t vo(_Anonymous1, _Anonymous1) ;
// global attributes:
string :_dap4.ce = "/vu8[1][0:2:2];/vd[1];/vs[1][0];/vo[0][1]" ;
}

View File

@ -1,34 +0,0 @@
<Dataset
name="test_atomic_array.nc"
dapVersion="4.0"
dmrVersion="1.0"
xmlns="http://xml.opendap.org/ns/DAP/4.0#"
xmlns:dap="http://xml.opendap.org/ns/DAP/4.0#">
<Dimensions>
<Dimension name="_Anonymous1" size="1"/>
<Dimension name="_Anonymous2" size="2"/>
</Dimensions>
<Variables>
<UInt8 name="vu8">
<Dim name="/_Anonymous1"/>
<Dim name="/_Anonymous2"/>
</UInt8>
<Float64 name="vd">
<Dim name="/_Anonymous1"/>
</Float64>
<String name="vs">
<Dim name="/_Anonymous1"/>
<Dim name="/_Anonymous1"/>
</String>
<Opaque name="vo" type="/opaque8_t">
<Dim name="/_Anonymous1"/>
<Dim name="/_Anonymous1"/>
</Opaque>
</Variables>
<Attribute name="_dap4.ce" type="String">
<Value value="/vu8[1][0:2:2];/vd[1];/vs[1][0];/vo[0][1]"/>
</Attribute>
<Attribute name="_DAP4_Little_Endian" type="UInt8">
<Value value="1"/>
</Attribute>
</Dataset>

View File

@ -1,12 +0,0 @@
netcdf test_atomic_array.8.nc {
dimensions:
_Anonymous3 = 3 ;
variables:
short v16(_Anonymous3) ;
// global attributes:
string :_dap4.ce = "/v16[0:1,3]" ;
data:
v16 = 1, 2, 4 ;
}

View File

@ -1,9 +0,0 @@
netcdf test_atomic_array.8 {
dimensions:
_Anonymous3 = 3 ;
variables:
short v16(_Anonymous3) ;
// global attributes:
string :_dap4.ce = "/v16[0:1,3]" ;
}

View File

@ -1,21 +0,0 @@
<Dataset
name="test_atomic_array.nc"
dapVersion="4.0"
dmrVersion="1.0"
xmlns="http://xml.opendap.org/ns/DAP/4.0#"
xmlns:dap="http://xml.opendap.org/ns/DAP/4.0#">
<Dimensions>
<Dimension name="_Anonymous3" size="3"/>
</Dimensions>
<Variables>
<Int16 name="v16">
<Dim name="/_Anonymous3"/>
</Int16>
</Variables>
<Attribute name="_dap4.ce" type="String">
<Value value="/v16[0:1,3]"/>
</Attribute>
<Attribute name="_DAP4_Little_Endian" type="UInt8">
<Value value="1"/>
</Attribute>
</Dataset>

View File

@ -1,12 +0,0 @@
netcdf test_atomic_array.9.nc {
dimensions:
_Anonymous3 = 3 ;
variables:
short v16(_Anonymous3) ;
// global attributes:
string :_dap4.ce = "/v16[3,0:1]" ;
data:
v16 = 4, 1, 2 ;
}

View File

@ -1,9 +0,0 @@
netcdf test_atomic_array.9 {
dimensions:
_Anonymous3 = 3 ;
variables:
short v16(_Anonymous3) ;
// global attributes:
string :_dap4.ce = "/v16[3,0:1]" ;
}

View File

@ -1,21 +0,0 @@
<Dataset
name="test_atomic_array.nc"
dapVersion="4.0"
dmrVersion="1.0"
xmlns="http://xml.opendap.org/ns/DAP/4.0#"
xmlns:dap="http://xml.opendap.org/ns/DAP/4.0#">
<Dimensions>
<Dimension name="_Anonymous3" size="3"/>
</Dimensions>
<Variables>
<Int16 name="v16">
<Dim name="/_Anonymous3"/>
</Int16>
</Variables>
<Attribute name="_dap4.ce" type="String">
<Value value="/v16[3,0:1]"/>
</Attribute>
<Attribute name="_DAP4_Little_Endian" type="UInt8">
<Value value="1"/>
</Attribute>
</Dataset>

View File

@ -1,4 +1,4 @@
netcdf test_atomic_array.nc {
netcdf test_atomic_array {
types:
byte enum cloud_class_t {Clear = 0, Cumulonimbus = 1, Stratus = 2,
Stratocumulus = 3, Cumulus = 4, Altostratus = 5, Nimbostratus = 6,
@ -21,7 +21,6 @@ variables:
opaque16_t vo(d1, d2) ;
cloud_class_t primary_cloud(d5) ;
cloud_class_t primary_cloud:_FillValue = Missing ;
data:
vu8 =

View File

@ -4,7 +4,7 @@ types:
Stratocumulus = 3, Cumulus = 4, Altostratus = 5, Nimbostratus = 6,
Altocumulus = 7, Cirrostratus = 8, Cirrocumulus = 9, Cirrus = 10,
Missing = 127} ;
opaque(8) opaque8_t ;
opaque(16) opaque16_t ;
dimensions:
d1 = 1 ;
d2 = 2 ;
@ -18,8 +18,7 @@ variables:
double vd(d2) ;
char vc(d2) ;
string vs(d2, d2) ;
opaque8_t vo(d1, d2) ;
opaque16_t vo(d1, d2) ;
cloud_class_t primary_cloud(d5) ;
cloud_class_t primary_cloud:_FillValue = Missing ;
}

View File

@ -49,13 +49,13 @@
<Dim name="/d2"/>
<Dim name="/d2"/>
</String>
<Opaque name="vo" type="/opaque8_t">
<Opaque name="vo" type="/opaque16_t">
<Dim name="/d1"/>
<Dim name="/d2"/>
</Opaque>
<Enum name="primary_cloud" enum="/cloud_class_t">
<Dim name="/d5"/>
<Attribute name="_FillValue" type="/cloud_class_t">
<Attribute name="_FillValue" type="String">
<Value value="Missing"/>
</Attribute>
</Enum>
@ -63,4 +63,7 @@
<Attribute name="_DAP4_Little_Endian" type="UInt8">
<Value value="1"/>
</Attribute>
<Attribute name="_NCProperties" type="String">
<Value value="version=2,netcdf=4.9.1-development,hdf5=1.12.2"/>
</Attribute>
</Dataset>

View File

@ -1,51 +0,0 @@
netcdf test_atomic_array.syn {
types:
byte enum cloud_class_t {Clear = 0, Cumulonimbus = 1, Stratus = 2,
Stratocumulus = 3, Cumulus = 4, Altostratus = 5, Nimbostratus = 6,
Altocumulus = 7, Cirrostratus = 8, Cirrocumulus = 9, Cirrus = 10,
Missing = 127} ;
opaque(16) opaque16_t ;
dimensions:
d1 = 1 ;
d2 = 2 ;
d3 = 3 ;
d4 = 4 ;
d5 = 5 ;
variables:
ubyte vu8(d2, d3) ;
short v16(d4) ;
uint vu32(d2, d3) ;
double vd(d2) ;
char vc(d2) ;
string vs(d2, d2) ;
opaque16_t vo(d1, d2) ;
cloud_class_t primary_cloud(d5) ;
cloud_class_t primary_cloud:_FillValue = Missing ;
data:
vu8 =
186, 201, 131,
63, 189, 55 ;
v16 = -341, -21899, -13413, -22144 ;
vu32 =
2367803413, 3586730583, 511843988,
3754752863, 2950934681, 2366232135 ;
vd = 0.217870081192792, 0.602450791996768 ;
vc = "CO" ;
vs =
"{S", "gb8^OE$",
"4a/q%n9;5Y", "{fIl?T\"\\A[" ;
vo =
0XA2177AA7287C04FA8BB57BCDF76EC80F, 0X34FA472AA9404DD543143CADED303A75 ;
primary_cloud = Stratus, Cirrocumulus, Nimbostratus, Cirrostratus,
Stratocumulus ;
}

View File

@ -1,25 +0,0 @@
netcdf test_atomic_array {
types:
byte enum cloud_class_t {Clear = 0, Cumulonimbus = 1, Stratus = 2,
Stratocumulus = 3, Cumulus = 4, Altostratus = 5, Nimbostratus = 6,
Altocumulus = 7, Cirrostratus = 8, Cirrocumulus = 9, Cirrus = 10,
Missing = 127} ;
opaque(16) opaque16_t ;
dimensions:
d1 = 1 ;
d2 = 2 ;
d3 = 3 ;
d4 = 4 ;
d5 = 5 ;
variables:
ubyte vu8(d2, d3) ;
short v16(d4) ;
uint vu32(d2, d3) ;
double vd(d2) ;
char vc(d2) ;
string vs(d2, d2) ;
opaque16_t vo(d1, d2) ;
cloud_class_t primary_cloud(d5) ;
cloud_class_t primary_cloud:_FillValue = Missing ;
}

View File

@ -1,4 +1,4 @@
netcdf test_atomic_types.nc {
netcdf test_atomic_types {
types:
byte enum cloud_class_t {Clear = 0, Cumulonimbus = 1, Stratus = 2,
Stratocumulus = 3, Cumulus = 4, Altostratus = 5, Nimbostratus = 6,
@ -23,7 +23,6 @@ variables:
cloud_class_t primary_cloud:_FillValue = Missing ;
cloud_class_t secondary_cloud ;
cloud_class_t secondary_cloud:_FillValue = Missing ;
data:
v8 = -128 ;

View File

@ -4,7 +4,7 @@ types:
Stratocumulus = 3, Cumulus = 4, Altostratus = 5, Nimbostratus = 6,
Altocumulus = 7, Cirrostratus = 8, Cirrocumulus = 9, Cirrus = 10,
Missing = 127} ;
opaque(8) opaque8_t ;
opaque(16) opaque16_t ;
variables:
byte v8 ;
ubyte vu8 ;
@ -18,10 +18,9 @@ variables:
double vd ;
char vc ;
string vs ;
opaque8_t vo ;
opaque16_t vo ;
cloud_class_t primary_cloud ;
cloud_class_t primary_cloud:_FillValue = Missing ;
cloud_class_t secondary_cloud ;
cloud_class_t secondary_cloud:_FillValue = Missing ;
}

View File

@ -33,14 +33,14 @@
<Float64 name="vd"/>
<Char name="vc"/>
<String name="vs"/>
<Opaque name="vo" type="/opaque8_t"/>
<Opaque name="vo" type="/opaque16_t"/>
<Enum name="primary_cloud" enum="/cloud_class_t">
<Attribute name="_FillValue" type="/cloud_class_t">
<Attribute name="_FillValue" type="String">
<Value value="Missing"/>
</Attribute>
</Enum>
<Enum name="secondary_cloud" enum="/cloud_class_t">
<Attribute name="_FillValue" type="/cloud_class_t">
<Attribute name="_FillValue" type="String">
<Value value="Missing"/>
</Attribute>
</Enum>
@ -48,4 +48,7 @@
<Attribute name="_DAP4_Little_Endian" type="UInt8">
<Value value="1"/>
</Attribute>
<Attribute name="_NCProperties" type="String">
<Value value="version=2,netcdf=4.9.1-development,hdf5=1.12.2"/>
</Attribute>
</Dataset>

View File

@ -1,58 +0,0 @@
netcdf test_atomic_types.syn {
types:
byte enum cloud_class_t {Clear = 0, Cumulonimbus = 1, Stratus = 2,
Stratocumulus = 3, Cumulus = 4, Altostratus = 5, Nimbostratus = 6,
Altocumulus = 7, Cirrostratus = 8, Cirrocumulus = 9, Cirrus = 10,
Missing = 127} ;
opaque(16) opaque16_t ;
variables:
byte v8 ;
ubyte vu8 ;
short v16 ;
ushort vu16 ;
int v32 ;
uint vu32 ;
int64 v64 ;
uint64 vu64 ;
float vf ;
double vd ;
char vc ;
string vs ;
opaque16_t vo ;
cloud_class_t primary_cloud ;
cloud_class_t primary_cloud:_FillValue = Missing ;
cloud_class_t secondary_cloud ;
cloud_class_t secondary_cloud:_FillValue = Missing ;
data:
v8 = 58 ;
vu8 = 201 ;
v16 = 896 ;
vu16 = 16177 ;
v32 = -1123468835 ;
vu32 = 2125143125 ;
v64 = 3059391736915381031 ;
vu64 = 11577488182652895291 ;
vf = 0.5512972 ;
vd = 0.790267301128816 ;
vc = "*" ;
vs = "O,L?c8A%V" ;
vo = 0X46F169EF23CBAF9B1FEBD99E4E16CEC9 ;
primary_cloud = Altocumulus ;
secondary_cloud = Stratocumulus ;
}

View File

@ -1,27 +0,0 @@
netcdf test_atomic_types {
types:
byte enum cloud_class_t {Clear = 0, Cumulonimbus = 1, Stratus = 2,
Stratocumulus = 3, Cumulus = 4, Altostratus = 5, Nimbostratus = 6,
Altocumulus = 7, Cirrostratus = 8, Cirrocumulus = 9, Cirrus = 10,
Missing = 127} ;
opaque(16) opaque16_t ;
variables:
byte v8 ;
ubyte vu8 ;
short v16 ;
ushort vu16 ;
int v32 ;
uint vu32 ;
int64 v64 ;
uint64 vu64 ;
float vf ;
double vd ;
char vc ;
string vs ;
opaque16_t vo ;
cloud_class_t primary_cloud ;
cloud_class_t primary_cloud:_FillValue = Missing ;
cloud_class_t secondary_cloud ;
cloud_class_t secondary_cloud:_FillValue = Missing ;
}

View File

@ -1,51 +0,0 @@
<Dataset
name="test_atomic_types.syn"
dapVersion="4.0"
dmrVersion="1.0"
xmlns="http://xml.opendap.org/ns/DAP/4.0#"
xmlns:dap="http://xml.opendap.org/ns/DAP/4.0#">
<Types>
<Enumeration name="cloud_class_t" basetype="Int8">
<EnumConst name="Clear" value="0"/>
<EnumConst name="Cumulonimbus" value="1"/>
<EnumConst name="Stratus" value="2"/>
<EnumConst name="Stratocumulus" value="3"/>
<EnumConst name="Cumulus" value="4"/>
<EnumConst name="Altostratus" value="5"/>
<EnumConst name="Nimbostratus" value="6"/>
<EnumConst name="Altocumulus" value="7"/>
<EnumConst name="Cirrostratus" value="8"/>
<EnumConst name="Cirrocumulus" value="9"/>
<EnumConst name="Cirrus" value="10"/>
<EnumConst name="Missing" value="127"/>
</Enumeration>
</Types>
<Variables>
<Int8 name="v8"/>
<UInt8 name="vu8"/>
<Int16 name="v16"/>
<UInt16 name="vu16"/>
<Int32 name="v32"/>
<UInt32 name="vu32"/>
<Int64 name="v64"/>
<UInt64 name="vu64"/>
<Float32 name="vf"/>
<Float64 name="vd"/>
<Char name="vc"/>
<String name="vs"/>
<Opaque name="vo" type="/opaque16_t"/>
<Enum name="primary_cloud" enum="/cloud_class_t">
<Attribute name="_FillValue" type="/cloud_class_t">
<Value value="Missing"/>
</Attribute>
</Enum>
<Enum name="secondary_cloud" enum="/cloud_class_t">
<Attribute name="_FillValue" type="/cloud_class_t">
<Value value="Missing"/>
</Attribute>
</Enum>
</Variables>
<Attribute name="_DAP4_Little_Endian" type="UInt8">
<Value value="1"/>
</Attribute>
</Dataset>

View File

@ -1,4 +1,4 @@
netcdf test_enum {
netcdf test_enum_1 {
types:
byte enum cloud_class_t {Clear = 0, Cumulonimbus = 1, Stratus = 2,
Stratocumulus = 3, Cumulus = 4, Altostratus = 5, Nimbostratus = 6,
@ -7,7 +7,6 @@ types:
variables:
cloud_class_t primary_cloud ;
cloud_class_t primary_cloud:_FillValue = Missing ;
data:
primary_cloud = Stratus ;

View File

@ -1,4 +1,4 @@
netcdf test_enum {
netcdf test_enum_1 {
types:
byte enum cloud_class_t {Clear = 0, Cumulonimbus = 1, Stratus = 2,
Stratocumulus = 3, Cumulus = 4, Altostratus = 5, Nimbostratus = 6,
@ -7,5 +7,4 @@ types:
variables:
cloud_class_t primary_cloud ;
cloud_class_t primary_cloud:_FillValue = Missing ;
}

View File

@ -1,5 +1,5 @@
<Dataset
name="test_enum.nc"
name="test_enum_1.nc"
dapVersion="4.0"
dmrVersion="1.0"
xmlns="http://xml.opendap.org/ns/DAP/4.0#"
@ -22,7 +22,7 @@
</Types>
<Variables>
<Enum name="primary_cloud" enum="/cloud_class_t">
<Attribute name="_FillValue" type="/cloud_class_t">
<Attribute name="_FillValue" type="String">
<Value value="Missing"/>
</Attribute>
</Enum>
@ -30,4 +30,7 @@
<Attribute name="_DAP4_Little_Endian" type="UInt8">
<Value value="1"/>
</Attribute>
<Attribute name="_NCProperties" type="String">
<Value value="version=2,netcdf=4.9.1-development,hdf5=1.12.2"/>
</Attribute>
</Dataset>

View File

@ -1,11 +1,10 @@
netcdf test_enum_2.nc {
netcdf test_enum_2 {
types:
byte enum cloud_class_t {Clear = 0, Cumulonimbus = 1, Stratus = 2,
Stratocumulus = 3, Cumulus = 4, Altostratus = 5, Nimbostratus = 6,
Altocumulus = 7, Cirrostratus = 8, Cirrocumulus = 9, Cirrus = 10,
Missing = 127} ;
group: h {
variables:
cloud_class_t primary_cloud ;

View File

@ -5,7 +5,6 @@ types:
Altocumulus = 7, Cirrostratus = 8, Cirrocumulus = 9, Cirrus = 10,
Missing = 127} ;
group: h {
variables:
cloud_class_t primary_cloud ;

View File

@ -23,11 +23,14 @@
<Attribute name="_DAP4_Little_Endian" type="UInt8">
<Value value="1"/>
</Attribute>
<Attribute name="_NCProperties" type="String">
<Value value="version=2,netcdf=4.9.1-development,hdf5=1.12.2"/>
</Attribute>
<Groups>
<Group name="h">
<Variables>
<Enum name="primary_cloud" enum="/cloud_class_t">
<Attribute name="_FillValue" type="/cloud_class_t">
<Attribute name="_FillValue" type="String">
<Value value="Missing"/>
</Attribute>
</Enum>

View File

@ -0,0 +1,12 @@
netcdf test_enum_3 {
types:
byte enum cloud_class_t {Clear = 0, Stratus = 1, Missing = 127} ;
group: h {
variables:
cloud_class_t primary_cloud ;
data:
primary_cloud = Stratus ;
} // group h
}

View File

@ -0,0 +1,9 @@
netcdf test_enum_3 {
types:
byte enum cloud_class_t {Clear = 0, Stratus = 1, Missing = 127} ;
group: h {
variables:
cloud_class_t primary_cloud ;
} // group h
}

View File

@ -0,0 +1,27 @@
<Dataset
name="test_enum_3.nc"
dapVersion="4.0"
dmrVersion="1.0"
xmlns="http://xml.opendap.org/ns/DAP/4.0#"
xmlns:dap="http://xml.opendap.org/ns/DAP/4.0#">
<Types>
<Enumeration name="cloud_class_t" basetype="Int8">
<EnumConst name="Clear" value="0"/>
<EnumConst name="Stratus" value="1"/>
<EnumConst name="Missing" value="127"/>
</Enumeration>
</Types>
<Attribute name="_DAP4_Little_Endian" type="UInt8">
<Value value="1"/>
</Attribute>
<Attribute name="_NCProperties" type="String">
<Value value="version=2,netcdf=4.9.1-development,hdf5=1.12.2"/>
</Attribute>
<Groups>
<Group name="h">
<Variables>
<Enum name="primary_cloud" enum="/cloud_class_t"/>
</Variables>
</Group>
</Groups>
</Dataset>

View File

@ -1,18 +0,0 @@
netcdf test_enum_array.4.nc {
types:
byte enum cloud_class_t {Clear = 0, Cumulonimbus = 1, Stratus = 2,
Stratocumulus = 3, Cumulus = 4, Altostratus = 5, Nimbostratus = 6,
Altocumulus = 7, Cirrostratus = 8, Cirrocumulus = 9, Cirrus = 10,
Missing = 127} ;
dimensions:
_Anonymous2 = 2 ;
variables:
cloud_class_t primary_cloud(_Anonymous2) ;
cloud_class_t primary_cloud:_FillValue = Missing ;
// global attributes:
string :_dap4.ce = "/primary_cloud[1:2:4]" ;
data:
primary_cloud = Stratus, Cumulonimbus ;
}

View File

@ -1,40 +0,0 @@
<Dataset
name="test_enum_array.nc"
dapVersion="4.0"
dmrVersion="1.0"
xmlns="http://xml.opendap.org/ns/DAP/4.0#"
xmlns:dap="http://xml.opendap.org/ns/DAP/4.0#">
<Dimensions>
<Dimension name="_Anonymous2" size="2"/>
</Dimensions>
<Types>
<Enumeration name="cloud_class_t" basetype="Int8">
<EnumConst name="Clear" value="0"/>
<EnumConst name="Cumulonimbus" value="1"/>
<EnumConst name="Stratus" value="2"/>
<EnumConst name="Stratocumulus" value="3"/>
<EnumConst name="Cumulus" value="4"/>
<EnumConst name="Altostratus" value="5"/>
<EnumConst name="Nimbostratus" value="6"/>
<EnumConst name="Altocumulus" value="7"/>
<EnumConst name="Cirrostratus" value="8"/>
<EnumConst name="Cirrocumulus" value="9"/>
<EnumConst name="Cirrus" value="10"/>
<EnumConst name="Missing" value="127"/>
</Enumeration>
</Types>
<Variables>
<Enum name="primary_cloud" enum="/cloud_class_t">
<Dim name="/_Anonymous2"/>
<Attribute name="_FillValue" type="/cloud_class_t">
<Value value="Missing"/>
</Attribute>
</Enum>
</Variables>
<Attribute name="_dap4.ce" type="String">
<Value value="/primary_cloud[1:2:4]"/>
</Attribute>
<Attribute name="_DAP4_Little_Endian" type="UInt8">
<Value value="1"/>
</Attribute>
</Dataset>

View File

@ -1,4 +1,4 @@
netcdf test_enum_array.nc {
netcdf test_enum_array {
types:
byte enum cloud_class_t {Clear = 0, Cumulonimbus = 1, Stratus = 2,
Stratocumulus = 3, Cumulus = 4, Altostratus = 5, Nimbostratus = 6,
@ -9,7 +9,6 @@ dimensions:
variables:
cloud_class_t primary_cloud(d5) ;
cloud_class_t primary_cloud:_FillValue = Missing ;
data:
primary_cloud = Clear, Stratus, Clear, Cumulonimbus, _ ;

View File

@ -9,5 +9,4 @@ dimensions:
variables:
cloud_class_t primary_cloud(d5) ;
cloud_class_t primary_cloud:_FillValue = Missing ;
}

View File

@ -26,7 +26,7 @@
<Variables>
<Enum name="primary_cloud" enum="/cloud_class_t">
<Dim name="/d5"/>
<Attribute name="_FillValue" type="/cloud_class_t">
<Attribute name="_FillValue" type="String">
<Value value="Missing"/>
</Attribute>
</Enum>
@ -34,4 +34,7 @@
<Attribute name="_DAP4_Little_Endian" type="UInt8">
<Value value="1"/>
</Attribute>
<Attribute name="_NCProperties" type="String">
<Value value="version=2,netcdf=4.9.1-development,hdf5=1.12.2"/>
</Attribute>
</Dataset>

View File

@ -1,10 +1,9 @@
netcdf test_fill.nc {
netcdf test_fill {
variables:
ubyte uv8 ;
short v16 ;
uint uv32 ;
uv32:_FillValue = 17U ;
int uv32 ;
int uv32:_FillValue = 17 ;
data:
uv8 = 240 ;

View File

@ -2,7 +2,6 @@ netcdf test_fill {
variables:
ubyte uv8 ;
short v16 ;
uint uv32 ;
uv32:_FillValue = 17U ;
int uv32 ;
int uv32:_FillValue = 17 ;
}

View File

@ -7,13 +7,16 @@
<Variables>
<UInt8 name="uv8"/>
<Int16 name="v16"/>
<UInt32 name="uv32">
<Attribute name="_FillValue" type="UInt32">
<Int32 name="uv32">
<Attribute name="_FillValue" type="Int32">
<Value value="17"/>
</Attribute>
</UInt32>
</Int32>
</Variables>
<Attribute name="_DAP4_Little_Endian" type="UInt8">
<Value value="1"/>
</Attribute>
<Attribute name="_NCProperties" type="String">
<Value value="version=2,netcdf=4.9.1-development,hdf5=1.12.2"/>
</Attribute>
</Dataset>

View File

@ -0,0 +1,27 @@
netcdf test_fill_2 {
types:
byte enum cloud_class_t {Clear = 0, Cumulonimbus = 1, Stratus = 2,
Stratocumulus = 3, Cumulus = 4, Altostratus = 5, Nimbostratus = 6,
Altocumulus = 7, Cirrostratus = 8, Cirrocumulus = 9, Cirrus = 10,
Missing = 127} ;
dimensions:
d2 = 2 ;
variables:
cloud_class_t enumvar(d2) ;
cloud_class_t enumvar:_FillValue = Missing ;
int uv32(d2) ;
int uv32:_FillValue = 17 ;
ubyte uv8(d2) ;
ubyte uv8:_FillValue = 120UB ;
short v16(d2) ;
short v16:_FillValue = -37s ;
data:
enumvar = Stratus, _ ;
uv32 = 111000, _ ;
uv8 = 240, _ ;
v16 = 32700, _ ;
}

View File

@ -1,15 +1,18 @@
netcdf test_enum_array.4 {
netcdf test_fill_2 {
types:
byte enum cloud_class_t {Clear = 0, Cumulonimbus = 1, Stratus = 2,
Stratocumulus = 3, Cumulus = 4, Altostratus = 5, Nimbostratus = 6,
Altocumulus = 7, Cirrostratus = 8, Cirrocumulus = 9, Cirrus = 10,
Missing = 127} ;
dimensions:
_Anonymous2 = 2 ;
d2 = 2 ;
variables:
cloud_class_t primary_cloud(_Anonymous2) ;
cloud_class_t primary_cloud:_FillValue = Missing ;
// global attributes:
string :_dap4.ce = "/primary_cloud[1:2:4]" ;
cloud_class_t enumvar(d2) ;
cloud_class_t enumvar:_FillValue = Missing ;
int uv32(d2) ;
int uv32:_FillValue = 17 ;
ubyte uv8(d2) ;
ubyte uv8:_FillValue = 120UB ;
short v16(d2) ;
short v16:_FillValue = -37s ;
}

View File

@ -1,15 +1,11 @@
<Dataset
name="test_atomic_array.syn"
name="test_fill_2.nc"
dapVersion="4.0"
dmrVersion="1.0"
xmlns="http://xml.opendap.org/ns/DAP/4.0#"
xmlns:dap="http://xml.opendap.org/ns/DAP/4.0#">
<Dimensions>
<Dimension name="d1" size="1"/>
<Dimension name="d2" size="2"/>
<Dimension name="d3" size="3"/>
<Dimension name="d4" size="4"/>
<Dimension name="d5" size="5"/>
</Dimensions>
<Types>
<Enumeration name="cloud_class_t" basetype="Int8">
@ -28,39 +24,35 @@
</Enumeration>
</Types>
<Variables>
<UInt8 name="vu8">
<Enum name="enumvar" enum="/cloud_class_t">
<Dim name="/d2"/>
<Dim name="/d3"/>
</UInt8>
<Int16 name="v16">
<Dim name="/d4"/>
</Int16>
<UInt32 name="vu32">
<Dim name="/d2"/>
<Dim name="/d3"/>
</UInt32>
<Float64 name="vd">
<Dim name="/d2"/>
</Float64>
<Char name="vc">
<Dim name="/d2"/>
</Char>
<String name="vs">
<Dim name="/d2"/>
<Dim name="/d2"/>
</String>
<Opaque name="vo" type="/opaque16_t">
<Dim name="/d1"/>
<Dim name="/d2"/>
</Opaque>
<Enum name="primary_cloud" enum="/cloud_class_t">
<Dim name="/d5"/>
<Attribute name="_FillValue" type="/cloud_class_t">
<Attribute name="_FillValue" type="String">
<Value value="Missing"/>
</Attribute>
</Enum>
<Int32 name="uv32">
<Dim name="/d2"/>
<Attribute name="_FillValue" type="Int32">
<Value value="17"/>
</Attribute>
</Int32>
<UInt8 name="uv8">
<Dim name="/d2"/>
<Attribute name="_FillValue" type="UInt8">
<Value value="120"/>
</Attribute>
</UInt8>
<Int16 name="v16">
<Dim name="/d2"/>
<Attribute name="_FillValue" type="Int16">
<Value value="-37"/>
</Attribute>
</Int16>
</Variables>
<Attribute name="_DAP4_Little_Endian" type="UInt8">
<Value value="1"/>
</Attribute>
<Attribute name="_NCProperties" type="String">
<Value value="version=2,netcdf=4.9.2-development,hdf5=1.12.2"/>
</Attribute>
</Dataset>

View File

@ -1,8 +1,7 @@
netcdf test_groups1.nc {
netcdf test_groups1 {
dimensions:
dim1 = 5 ;
group: g {
dimensions:
dim2 = 3 ;

View File

@ -2,7 +2,6 @@ netcdf test_groups1 {
dimensions:
dim1 = 5 ;
group: g {
dimensions:
dim2 = 3 ;

View File

@ -10,6 +10,9 @@
<Attribute name="_DAP4_Little_Endian" type="UInt8">
<Value value="1"/>
</Attribute>
<Attribute name="_NCProperties" type="String">
<Value value="version=2,netcdf=4.9.1-development,hdf5=1.12.2"/>
</Attribute>
<Groups>
<Group name="g">
<Dimensions>

View File

@ -0,0 +1,24 @@
netcdf test_misc1 {
dimensions:
lon = 4 ;
time = UNLIMITED ; // (0 currently)
lat = 6 ;
unlim = UNLIMITED ; // (3 currently)
variables:
float var(unlim) ;
var:_ChunkSizes = 1024U ;
float lon(lon) ;
string lon:units = "degrees_east" ;
float lat(lat) ;
string lat:units = "degrees_north" ;
// global attributes:
string :title = "example for workshop" ;
data:
var = 0, 1, 3 ;
lon = _, _, _, _ ;
lat = _, _, _, _, _, _ ;
}

View File

@ -0,0 +1,17 @@
netcdf test_misc1 {
dimensions:
lon = 4 ;
time = UNLIMITED ; // (0 currently)
lat = 6 ;
unlim = UNLIMITED ; // (0 currently)
variables:
float var(unlim) ;
var:_ChunkSizes = 1024U ;
float lon(lon) ;
string lon:units = "degrees_east" ;
float lat(lat) ;
string lat:units = "degrees_north" ;
// global attributes:
string :title = "example for workshop" ;
}

View File

@ -0,0 +1,42 @@
<Dataset
name="test_misc1.nc"
dapVersion="4.0"
dmrVersion="1.0"
xmlns="http://xml.opendap.org/ns/DAP/4.0#"
xmlns:dap="http://xml.opendap.org/ns/DAP/4.0#">
<Dimensions>
<Dimension name="lon" size="4"/>
<Dimension name="time" size="0" _edu.ucar.isunlimited="1"/>
<Dimension name="lat" size="6"/>
<Dimension name="unlim" size="3" _edu.ucar.isunlimited="1"/>
</Dimensions>
<Variables>
<Float32 name="var">
<Dim name="/unlim"/>
<Attribute name="_ChunkSizes" type="UInt32">
<Value value="1024"/>
</Attribute>
</Float32>
<Float32 name="lon">
<Dim name="/lon"/>
<Attribute name="units" type="String">
<Value value="degrees_east"/>
</Attribute>
</Float32>
<Float32 name="lat">
<Dim name="/lat"/>
<Attribute name="units" type="String">
<Value value="degrees_north"/>
</Attribute>
</Float32>
</Variables>
<Attribute name="_DAP4_Little_Endian" type="UInt8">
<Value value="1"/>
</Attribute>
<Attribute name="title" type="String">
<Value value="example for workshop"/>
</Attribute>
<Attribute name="_NCProperties" type="String">
<Value value="version=2,netcdf=4.9.1-development,hdf5=1.12.2"/>
</Attribute>
</Dataset>

View File

@ -1,7 +1,6 @@
netcdf test_one_var.nc {
netcdf test_one_var {
variables:
int t ;
data:
t = 17 ;

View File

@ -1,5 +1,4 @@
netcdf test_one_var {
variables:
int t ;
}

View File

@ -10,4 +10,7 @@
<Attribute name="_DAP4_Little_Endian" type="UInt8">
<Value value="1"/>
</Attribute>
<Attribute name="_NCProperties" type="String">
<Value value="version=2,netcdf=4.9.1-development,hdf5=1.12.2"/>
</Attribute>
</Dataset>

View File

@ -1,12 +0,0 @@
netcdf test_one_vararray.1.nc {
dimensions:
_Anonymous1 = 1 ;
variables:
int t(_Anonymous1) ;
// global attributes:
string :_dap4.ce = "/t[1]" ;
data:
t = 37 ;
}

View File

@ -1,9 +0,0 @@
netcdf test_one_vararray.1 {
dimensions:
_Anonymous1 = 1 ;
variables:
int t(_Anonymous1) ;
// global attributes:
string :_dap4.ce = "/t[1]" ;
}

View File

@ -1,21 +0,0 @@
<Dataset
name="test_one_vararray.nc"
dapVersion="4.0"
dmrVersion="1.0"
xmlns="http://xml.opendap.org/ns/DAP/4.0#"
xmlns:dap="http://xml.opendap.org/ns/DAP/4.0#">
<Dimensions>
<Dimension name="_Anonymous1" size="1"/>
</Dimensions>
<Variables>
<Int32 name="t">
<Dim name="/_Anonymous1"/>
</Int32>
</Variables>
<Attribute name="_dap4.ce" type="String">
<Value value="/t[1]"/>
</Attribute>
<Attribute name="_DAP4_Little_Endian" type="UInt8">
<Value value="1"/>
</Attribute>
</Dataset>

View File

@ -1,12 +0,0 @@
netcdf test_one_vararray.3.nc {
dimensions:
d2 = 2 ;
variables:
int t(d2) ;
// global attributes:
string :_dap4.ce = "/t[0:1]" ;
data:
t = 17, 37 ;
}

View File

@ -1,9 +0,0 @@
netcdf test_one_vararray.3 {
dimensions:
d2 = 2 ;
variables:
int t(d2) ;
// global attributes:
string :_dap4.ce = "/t[0:1]" ;
}

View File

@ -1,21 +0,0 @@
<Dataset
name="test_one_vararray.nc"
dapVersion="4.0"
dmrVersion="1.0"
xmlns="http://xml.opendap.org/ns/DAP/4.0#"
xmlns:dap="http://xml.opendap.org/ns/DAP/4.0#">
<Dimensions>
<Dimension name="d2" size="2"/>
</Dimensions>
<Variables>
<Int32 name="t">
<Dim name="/d2"/>
</Int32>
</Variables>
<Attribute name="_dap4.ce" type="String">
<Value value="/t[0:1]"/>
</Attribute>
<Attribute name="_DAP4_Little_Endian" type="UInt8">
<Value value="1"/>
</Attribute>
</Dataset>

View File

@ -1,9 +1,8 @@
netcdf test_one_vararray.nc {
netcdf test_one_vararray {
dimensions:
d2 = 2 ;
variables:
int t(d2) ;
data:
t = 17, 37 ;

View File

@ -3,5 +3,4 @@ dimensions:
d2 = 2 ;
variables:
int t(d2) ;
}

View File

@ -15,4 +15,7 @@
<Attribute name="_DAP4_Little_Endian" type="UInt8">
<Value value="1"/>
</Attribute>
<Attribute name="_NCProperties" type="String">
<Value value="version=2,netcdf=4.9.1-development,hdf5=1.12.2"/>
</Attribute>
</Dataset>

View File

@ -1,9 +1,8 @@
netcdf test_opaque.nc {
netcdf test_opaque {
types:
opaque(16) opaque16_t ;
variables:
opaque16_t vo1 ;
data:
vo1 = 0X0123456789ABCDEF0000000000000000 ;

View File

@ -1,7 +1,6 @@
netcdf test_opaque {
types:
opaque(8) opaque8_t ;
opaque(16) opaque16_t ;
variables:
opaque8_t vo1 ;
opaque16_t vo1 ;
}

View File

@ -5,9 +5,12 @@
xmlns="http://xml.opendap.org/ns/DAP/4.0#"
xmlns:dap="http://xml.opendap.org/ns/DAP/4.0#">
<Variables>
<Opaque name="vo1" type="/opaque8_t"/>
<Opaque name="vo1" type="/opaque16_t"/>
</Variables>
<Attribute name="_DAP4_Little_Endian" type="UInt8">
<Value value="1"/>
</Attribute>
<Attribute name="_NCProperties" type="String">
<Value value="version=2,netcdf=4.9.1-development,hdf5=1.12.2"/>
</Attribute>
</Dataset>

View File

@ -1,16 +0,0 @@
netcdf test_opaque_array.7.nc {
types:
opaque(16) opaque16_t ;
dimensions:
_Anonymous1 = 1 ;
_Anonymous2 = 2 ;
variables:
opaque16_t vo2(_Anonymous1, _Anonymous2) ;
// global attributes:
string :_dap4.ce = "/vo2[1][0:1]" ;
data:
vo2 =
0XFEDCBA98765432100000000000000000, 0XFEDCBA99999999990000000000000000 ;
}

View File

@ -1,12 +0,0 @@
netcdf test_opaque_array.7 {
types:
opaque(8) opaque8_t ;
dimensions:
_Anonymous1 = 1 ;
_Anonymous2 = 2 ;
variables:
opaque8_t vo2(_Anonymous1, _Anonymous2) ;
// global attributes:
string :_dap4.ce = "/vo2[1][0:1]" ;
}

View File

@ -1,23 +0,0 @@
<Dataset
name="test_opaque_array.nc"
dapVersion="4.0"
dmrVersion="1.0"
xmlns="http://xml.opendap.org/ns/DAP/4.0#"
xmlns:dap="http://xml.opendap.org/ns/DAP/4.0#">
<Dimensions>
<Dimension name="_Anonymous1" size="1"/>
<Dimension name="_Anonymous2" size="2"/>
</Dimensions>
<Variables>
<Opaque name="vo2" type="/opaque8_t">
<Dim name="/_Anonymous1"/>
<Dim name="/_Anonymous2"/>
</Opaque>
</Variables>
<Attribute name="_dap4.ce" type="String">
<Value value="/vo2[1][0:1]"/>
</Attribute>
<Attribute name="_DAP4_Little_Endian" type="UInt8">
<Value value="1"/>
</Attribute>
</Dataset>

View File

@ -1,11 +1,10 @@
netcdf test_opaque_array.nc {
netcdf test_opaque_array {
types:
opaque(16) opaque16_t ;
dimensions:
d2 = 2 ;
variables:
opaque16_t vo2(d2, d2) ;
data:
vo2 =

View File

@ -1,9 +1,8 @@
netcdf test_opaque_array {
types:
opaque(8) opaque8_t ;
opaque(16) opaque16_t ;
dimensions:
d2 = 2 ;
variables:
opaque8_t vo2(d2, d2) ;
opaque16_t vo2(d2, d2) ;
}

View File

@ -8,7 +8,7 @@
<Dimension name="d2" size="2"/>
</Dimensions>
<Variables>
<Opaque name="vo2" type="/opaque8_t">
<Opaque name="vo2" type="/opaque16_t">
<Dim name="/d2"/>
<Dim name="/d2"/>
</Opaque>
@ -16,4 +16,7 @@
<Attribute name="_DAP4_Little_Endian" type="UInt8">
<Value value="1"/>
</Attribute>
<Attribute name="_NCProperties" type="String">
<Value value="version=2,netcdf=4.9.1-development,hdf5=1.12.2"/>
</Attribute>
</Dataset>

View File

@ -1,14 +0,0 @@
netcdf test_sequence_1.syn {
types:
compound s_base_t {
int i1 ;
short sh1 ;
}; // s_base_t
s_base_t(*) s_t ;
variables:
s_t s ;
data:
s = {{-920699049, 896}} ;
}

View File

@ -1,11 +0,0 @@
netcdf test_sequence_1 {
types:
compound s_base_t {
int i1 ;
short sh1 ;
}; // s_base_t
s_base_t(*) s_t ;
variables:
s_t s ;
}

View File

@ -1,20 +0,0 @@
<Dataset
name="test_sequence_1.syn"
dapVersion="4.0"
dmrVersion="1.0"
xmlns="http://xml.opendap.org/ns/DAP/4.0#"
xmlns:dap="http://xml.opendap.org/ns/DAP/4.0#">
<Types>
<Structure name="s_base">
<Int32 name="i1"/>
<Int16 name="sh1"/>
</Structure>
<Vlen name="s_t" type="/s_base"/>
</Types>
<Variables>
<Seq name="s" type="/s_t"/>
</Variables>
<Attribute name="_DAP4_Little_Endian" type="UInt8">
<Value value="1"/>
</Attribute>
</Dataset>

View File

@ -1,17 +0,0 @@
netcdf test_sequence_2.syn {
types:
compound s_base_t {
int i1 ;
short sh1 ;
}; // s_base_t
s_base_t(*) s_t ;
dimensions:
_Anonymous2 = 2 ;
variables:
s_t s(_Anonymous2) ;
data:
s = {{-920699049, 896}},
{{-1123468835, -18686}, {2125143125, -21899}, {1268468519, -22144}, {989876086, 3361}} ;
}

View File

@ -1,13 +0,0 @@
netcdf test_sequence_2 {
types:
compound s_base_t {
int i1 ;
short sh1 ;
}; // s_base_t
s_base_t(*) s_t ;
dimensions:
_Anonymous2 = 2 ;
variables:
s_t s(_Anonymous2) ;
}

View File

@ -1,25 +0,0 @@
<Dataset
name="test_sequence_2.syn"
dapVersion="4.0"
dmrVersion="1.0"
xmlns="http://xml.opendap.org/ns/DAP/4.0#"
xmlns:dap="http://xml.opendap.org/ns/DAP/4.0#">
<Dimensions>
<Dimension name="_Anonymous2" size="2"/>
</Dimensions>
<Types>
<Structure name="s_base">
<Int32 name="i1"/>
<Int16 name="sh1"/>
</Structure>
<Vlen name="s_t" type="/s_base"/>
</Types>
<Variables>
<Seq name="s" type="/s_t">
<Dim name="/_Anonymous2"/>
</Sequence>
</Variables>
<Attribute name="_DAP4_Little_Endian" type="UInt8">
<Value value="1"/>
</Attribute>
</Dataset>

View File

@ -1,4 +1,4 @@
netcdf test_struct1.nc {
netcdf test_struct1 {
types:
compound s_t {
int x ;
@ -6,7 +6,6 @@ types:
}; // s_t
variables:
s_t s ;
data:
s = {1, -2} ;

View File

@ -6,5 +6,4 @@ types:
}; // s_t
variables:
s_t s ;
}

View File

@ -16,4 +16,7 @@
<Attribute name="_DAP4_Little_Endian" type="UInt8">
<Value value="1"/>
</Attribute>
<Attribute name="_NCProperties" type="String">
<Value value="version=2,netcdf=4.9.1-development,hdf5=1.12.2"/>
</Attribute>
</Dataset>

View File

@ -1,19 +0,0 @@
netcdf test_struct_array.6.nc {
types:
compound s_t {
int x ;
int y ;
}; // s_t
dimensions:
_Anonymous2 = 2 ;
variables:
s_t s(_Anonymous2, _Anonymous2) ;
// global attributes:
string :_dap4.ce = "/s[0:2:3][0:1]" ;
data:
s =
{1, -1}, {17, 37},
{-4, 12}, {-8, 8} ;
}

View File

@ -1,14 +0,0 @@
netcdf test_struct_array.6 {
types:
compound s_t {
int x ;
int y ;
}; // s_t
dimensions:
_Anonymous2 = 2 ;
variables:
s_t s(_Anonymous2, _Anonymous2) ;
// global attributes:
string :_dap4.ce = "/s[0:2:3][0:1]" ;
}

View File

@ -1,28 +0,0 @@
<Dataset
name="test_struct_array.nc"
dapVersion="4.0"
dmrVersion="1.0"
xmlns="http://xml.opendap.org/ns/DAP/4.0#"
xmlns:dap="http://xml.opendap.org/ns/DAP/4.0#">
<Dimensions>
<Dimension name="_Anonymous2" size="2"/>
</Dimensions>
<Types>
<Structure name="s">
<Int32 name="x"/>
<Int32 name="y"/>
</Structure>
</Types>
<Variables>
<Struct name="s" type="/s">
<Dim name="/_Anonymous2"/>
<Dim name="/_Anonymous2"/>
</Struct>
</Variables>
<Attribute name="_dap4.ce" type="String">
<Value value="/s[0:2:3][0:1]"/>
</Attribute>
<Attribute name="_DAP4_Little_Endian" type="UInt8">
<Value value="1"/>
</Attribute>
</Dataset>

View File

@ -1,4 +1,4 @@
netcdf test_struct_array.nc {
netcdf test_struct_array {
types:
compound s_t {
int x ;
@ -9,7 +9,6 @@ dimensions:
dy = 3 ;
variables:
s_t s(dx, dy) ;
data:
s =

View File

@ -9,5 +9,4 @@ dimensions:
dy = 3 ;
variables:
s_t s(dx, dy) ;
}

View File

@ -23,4 +23,7 @@
<Attribute name="_DAP4_Little_Endian" type="UInt8">
<Value value="1"/>
</Attribute>
<Attribute name="_NCProperties" type="String">
<Value value="version=2,netcdf=4.9.1-development,hdf5=1.12.2"/>
</Attribute>
</Dataset>

Some files were not shown because too many files have changed in this diff Show More