mirror of
https://github.com/Unidata/netcdf-c.git
synced 2024-11-27 07:30:33 +08:00
d62a9e623c
re: github issue https://github.com/Unidata/netcdf-c/issues/1111 One of the less common use cases for the in-memory feature is apparently failing with HDF5-1.10.x. The fix is complicated and requires significant changes to libhdf5/nc4memcb.c. The current setup is detailed in the file docs/inmeminternal.dox. Additionally, it was discovered that the program nc_test/tst_inmemory.c, which is invoked by nc_test/run_inmemory.sh, actually was failing because of the above problem. But the failure is not detected since the script does not return non-zero value. Other Changes: 1. Fix nc_test_tst_inmemory to return errors correctly. 2. Make ncdap_tests/findtestserver.c and dap4_tests/findtestserver4.c be generated from ncdap_test/findtestserver.c.in. 3. Make LOG() print output to stderr instead of stdout to avoid contaminating e.g. ncdump output. 4. Modify the handling of NC_INMEMORY and NC_DISKLESS flags to properly handle that NC_DISKLESS => NC_INMEMORY. This affects a number of code pieces, especially memio.c.
121 lines
2.8 KiB
Bash
Executable File
121 lines
2.8 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
|
|
if test "x$srcdir" = x ; then srcdir=`pwd`; fi
|
|
. ../test_common.sh
|
|
|
|
set -e
|
|
set -x
|
|
# Get the target OS and CPU
|
|
CPU=`uname -p`
|
|
OS=`uname`
|
|
|
|
#Constants
|
|
FILE1=tst_diskless.nc
|
|
FILE2=tst_diskless2.nc
|
|
FILE3=tst_diskless3.nc
|
|
|
|
echo ""
|
|
echo "*** Testing in-memory (diskless) files with and without persistence"
|
|
|
|
HASNC4=`${top_builddir}/nc-config --has-nc4`
|
|
|
|
echo "**** Test diskless netCDF classic file without persistence"
|
|
${execdir}/tst_diskless
|
|
echo "PASS: diskless netCDF classic file without persistence"
|
|
|
|
if test "x$HASNC4" = "xyes" ; then
|
|
echo ""
|
|
echo "**** Test diskless netCDF enhanced file without persistence"
|
|
${execdir}/tst_diskless netcdf4
|
|
echo "PASS: diskless netCDF enhanced file without persistence"
|
|
fi #HASNC4
|
|
|
|
echo ""
|
|
echo "**** Test diskless netCDF classic file with persistence"
|
|
rm -f $FILE1
|
|
${execdir}/tst_diskless persist
|
|
if test -f $FILE1 ; then
|
|
echo "**** $FILE1 created"
|
|
# ${NCDUMP} $FILE1
|
|
echo "PASS: diskless netCDF classic file with persistence"
|
|
else
|
|
echo "#### $FILE1 not created"
|
|
echo "FAIL: diskless netCDF classic file with persistence"
|
|
fi
|
|
|
|
if test "x$HASNC4" = "xyes" ; then
|
|
echo ""
|
|
echo "**** Test diskless netCDF enhanced file with persistence"
|
|
rm -f $FILE1
|
|
${execdir}/tst_diskless netcdf4 persist
|
|
if test -f $FILE1 ; then
|
|
echo "**** $FILE1 created"
|
|
# ${NCDUMP} $FILE1
|
|
echo "PASS: diskless netCDF enhanced file with persistence"
|
|
else
|
|
echo "$FILE1 not created"
|
|
echo "FAIL: diskless netCDF enhanced file with persistence"
|
|
fi
|
|
|
|
fi #HASNC4
|
|
|
|
# Do extended netcdf enhanced test
|
|
if test "x$HASNC4" = "xyes" ; then
|
|
|
|
ok=""
|
|
echo ""
|
|
echo "**** Test extended enhanced diskless netCDF with persistence"
|
|
rm -f $FILE2 tst_diskless2.cdl
|
|
${execdir}/tst_diskless2
|
|
if test -f $FILE2 ; then
|
|
echo "**** $FILE2 created"
|
|
# Do a cyle test
|
|
if ${NCDUMP} $FILE2 |sed -e s/tst_diskless2/tmp1/ > tmp1.cdl ; then
|
|
if ${NCGEN} -k nc4 -o tmp1.nc tmp1.cdl ;then
|
|
if ${NCDUMP} tmp1.nc >tmp2.cdl ; then
|
|
if diff -wb tmp1.cdl tmp2.cdl ; then
|
|
ok=yes
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
else
|
|
echo "#### $FILE2 not created"
|
|
fi
|
|
rm -f tmp1.cdl tmp2.cdl tmp1.nc tmp2.nc
|
|
|
|
if test "x$ok" = xyes ; then
|
|
echo "PASS: extended enhanced diskless netCDF with persistence"
|
|
else
|
|
echo "FAIL: extended enhanced diskless netCDF with persistence"
|
|
fi
|
|
|
|
fi #HASNC4
|
|
|
|
echo ""
|
|
echo "**** Testing nc_open in-memory (diskless) files"
|
|
|
|
# clear old files
|
|
rm -f tst_diskless3_file.cdl tst_diskless3_memory.cdl
|
|
|
|
echo ""
|
|
echo "**** Create and modify file without using diskless"
|
|
rm -f $FILE3
|
|
${execdir}/tst_diskless3
|
|
${NCDUMP} $FILE3 >tst_diskless3_file.cdl
|
|
|
|
echo ""
|
|
echo "**** Create and modify file using diskless"
|
|
rm -f $FILE3
|
|
${execdir}/tst_diskless3 diskless
|
|
${NCDUMP} $FILE3 >tst_diskless3_memory.cdl
|
|
|
|
# compare
|
|
diff tst_diskless3_file.cdl tst_diskless3_memory.cdl
|
|
|
|
# cleanup
|
|
rm -f $FILE3 tst_diskless3_file.cdl tst_diskless3_memory.cdl
|
|
|
|
exit 0
|