netcdf-c/dap4_test/d4test_common.sh
Dennis Heimbigner d62a9e623c Fix the NC_INMEMORY code to work in all cases with HDF5 1.10.
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.
2018-09-04 11:27:47 -06:00

88 lines
1.5 KiB
Bash
Executable File

if test $# = 0 ; then
TEST=1
else
for arg in "$@"; do
case "${arg}" in
test) TEST=1 ;;
reset) RESET=1 ;;
diff) DIFF=1 ;;
cdl) CDLDIFF=1 ;;
log) ;;
*) echo unknown argument $arg ;;
esac
done
fi
# Define input paths
WD=`pwd`
cd ${srcdir}/daptestfiles; DAPTESTFILES=`pwd` ; cd ${WD}
cd ${srcdir}/dmrtestfiles; DMRTESTFILES=`pwd` ; cd ${WD}
cd ${srcdir}/cdltestfiles; CDLTESTFILES=`pwd` ; cd ${WD}
cd ${srcdir}/baseline; BASELINE=`pwd` ; cd ${WD}
cd ${srcdir}/baselineraw; BASELINERAW=`pwd` ; cd ${WD}
cd ${srcdir}/baselineremote; BASELINEREM=`pwd` ; cd ${WD}
BASELINEH=${BASELINEREM}
setresultdir() {
rm -fr ${builddir}/$1
mkdir -p ${builddir}/$1
}
FAILURES=
failure() {
echo "*** Fail: $1"
FAILURES=1
if test "x$2" != x ; then
exit 1
fi
}
PUSHD() {
pushd $1 >>/dev/null
}
POPD() {
popd >>/dev/null
}
filesexist() {
for x in "$@" ; do
if ! test -e $x ; then
failure "missing file: $x"
fi
done
}
finish() {
if test "x$FAILURES" = x1 ; then
echo "*** Fail"
exit 1
else
echo "*** Pass"
exit 0
fi
}
suppress() {
F0="$1"
if test "x${SUPPRESS}" = x; then
RESULT="$F0"
else
RESULT=""
for f in ${F0} ; do
ignore=0
for s in ${SUPPRESS} ; do
if test "x$s" = "x$f" ; then
ignore=1;
echo "Suppressing: $f"
break;
fi
done
if test "x$ignore" = x0 ; then RESULT="$f ${RESULT}" ; fi
done
fi
}
VG="valgrind --leak-check=full --error-exitcode=1 --num-callers=100"
if test "x$USEVG" = x ; then VG=; fi