netcdf-c/nczarr_test/run_ut_map.sh
Dennis Heimbigner d538cf38c2 Fix nczarr-experimental to better support CMake and find AWS libraries
The primary fix is to improve CMake build support.
Specific changes include:
* CMake: Provide a better soln to locating the AWS SDK
  libraries; the new way is the preferred method as described in
  the aws-cpp-sdk documentation.
* CMake (and Automake): allow -DENABLE_S3_SDK (default off) to suppress
  looking for AWS libraries.
* CMake: add the complete set of nczarr tests
* CMake: add EXTERNL as needed to various .h files.
* Improve support for windows drive letters in paths.
* Add nczarr and s3 flags to nc-config
* For VisualStudio X nczarr, cleanup the NAN+INFINITY handling
* Convert _MSC_VER -> _WIN32 and vice versa as needed
* NCZarr - support multiple platform paths including windows, cygwin.
  mingw, etc.
* NCZarr - sort the test outputs because different platforms
  produce directory contents in different orders.

One big change concerns netcdf-c/CMakeLists.txt and netcdf-c/configure.ac.
In the current versions, it was the case that --disable-hdf5
disabled netcdf-4 (libsrc4). With nczarr, this can no longer
be the case because nczarr requires libsrc4 even if libhdf5
is disabled. So, I modified the above files to move the
format options (HDF5, NCZarr, HDF4, etc) to a single place
near the front of the files. Now it is the case that:
* Enabling any of the formats that require libsrc4
  also does an implicit --enable-netcdf4.
* --disable-netcdf4 | --disable-netcdf-4 now becomes
  and alias for --disable-hdf5.

There are probably some bugs in this change in terms of
dependencies between format options.

Problems:
* CMake S3 support is still not working for Visual Studio
* A recent issue points out that there is work to do on handling
  UTF8 filenames, but that will be addressed in a separate fix.

Notes:
* Consider converting all of our includes/.h files to use EXTERNL
2020-07-12 12:21:56 -06:00

102 lines
2.2 KiB
Bash
Executable File

#!/bin/sh
if test "x$srcdir" = x ; then srcdir=`pwd`; fi
. ../test_common.sh
. "$srcdir/test_nczarr.sh"
set -e
# Test those map implementations where
# it is possible to look at the actual storage.
# .ncz and .nzf specifically. Note that we
# cannot easily look inside S3 storage
# except using the aws-cli, if available
# Common
CMD="${execdir}/ut_map${ext}"
testmapcreate() {
echo ""; echo "*** Test zmap create -k $1"
extfor "$1"
tag="map"
output="test$tag.$zext"
deletemap $1 $output
# Create the test file
$CMD -k$1 -x create -o $output
cdl="ut_${tag}_create_${zext}.cdl"
dumpmap $zext $output ./$cdl
diff -wb ${srcdir}/ref_$cdl ./$cdl
# delete the test file
$CMD -k$1 -x delete -f $output
rm -f $cdl
if test -f $output; then
echo "delete did not delete $output"
exit 1
fi
# re-create the test file
$CMD -k$1 -x create -o $output
}
testmapmeta() {
echo ""; echo "*** Test zmap read/write meta -k $1"
extfor "$1"
tag="map"
file="test$tag.$zext"
$CMD -k$1 -x writemeta -f $file
cdl="ut_${tag}_writemeta_${zext}.cdl"
dumpmap $zext $file ./$cdl
diff -wb ${srcdir}/ref_$cdl ./$cdl
$CMD -k$1 -x writemeta2 -o ./$file
cdl="ut_${tag}_write2meta_${zext}.cdl"
dumpmap $zext $file ./$cdl
diff -wb ${srcdir}/ref_$cdl ./$cdl
output="ut_${tag}_readmeta_$zext.txt"
$CMD -k$1 -x readmeta -f $file > ./$output
diff -wb ${srcdir}/ref_$output ./$output
}
testmapdata() {
echo ""; echo "*** Test zmap read/write data -k $1"
extfor "$1"
tag="map"
file="test$tag.$zext"
$CMD -k$1 -x "writedata" -f $file
cdl="ut_${tag}_writedata_${zext}.cdl"
dumpmap $zext $file ./$cdl
diff -wb ${srcdir}/ref_$cdl ./$cdl
# readata is verification only
$CMD -k$1 -x readdata -f $file
}
testmapsearch() {
echo ""; echo "*** Test zmap search -k $1"
extfor "$1"
tag="map"
file="test$tag.$zext"
txt=ut_${tag}_search_$zext.txt
rm -f $txt
$CMD -k$1 -x "search" -f $file > $txt
diff -wb ${srcdir}/ref_$txt ./$txt
}
echo ""
echo "*** Map Unit Testing"
echo ""; echo "*** Test zmap_nz4"
testmapcreate nz4; testmapmeta nz4; testmapdata nz4; testmapsearch nz4
echo ""; echo "*** Test zmap_nzf"
testmapcreate nzf; testmapmeta nzf; testmapdata nzf; testmapsearch nzf
exit 0