mirror of
https://github.com/Unidata/netcdf-c.git
synced 2024-12-09 08:11:38 +08:00
e632d02041
The thredds-test server now has some password protected datasets that can be used to test DAP2 authorization support. The general location is ```` https://thredds.ucar.edu/thredds/tdscapabilities/authTest.html ```` and specifically: ```` https://thredds.ucar.edu/thredds/dodsC/test3/testData.nc.html ```` This PR replaces old testcases with ncdap_test/testauth.sh. This testcase allows us to test use of the .dodsrc file and .netrc file and embedded user+pwd. As part of this, I had to create a program (ncdap_test/pathcvt.c) that is essentially the equivalent to cygpath. Given a path in windows, unix, msys or cygwin format, it converts it to the equivalent format in one of those four cases. So it can be used to convert a cygwin path to a windows path, for example. This is needed in testpathcvt and testauth to make sure that the paths in .daprc (e.g. the reference to .netrc) are of the proper format. Misc. Other Changes: 1. Fix some memory leaks in libdap2 2. Setting the env variable CURLOPT_VERBOSE allows tracking of curl operations. 3. Make tst_charvlenbug be conditional on NC_VLEN_NOTEST.
116 lines
2.4 KiB
Bash
Executable File
116 lines
2.4 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
NOP=1
|
|
NOS=1
|
|
NOB=1
|
|
|
|
#SHOW=1
|
|
#DBG=1
|
|
#GDB=1
|
|
|
|
# if this is part of a distcheck action, then this script
|
|
# will be executed in a different directory
|
|
# than the one containing it; so capture the path to this script
|
|
# as the location of the source directory.
|
|
|
|
# capture the build directory
|
|
# Do a hack to remove e.g. c: for CYGWIN
|
|
|
|
if test "x$srcdir" = x ; then srcdir=`pwd`; fi
|
|
. ../test_common.sh
|
|
|
|
# Figure our dst server; if none, then just stop
|
|
DTS=`${execdir}/findtestserver dap2 dts`
|
|
if test "x$DTS" = "x" ; then
|
|
echo "WARNING: Cannot locate test server for dts"
|
|
exit 0
|
|
fi
|
|
|
|
OCLOGFILE=stderr
|
|
if test "x$DBG" = x1 ; then
|
|
SHOW=1
|
|
fi
|
|
|
|
URL="$DTS/test.03"
|
|
|
|
PREFIX="[log][show=fetch]"
|
|
SUFFIX="log&show=fetch"
|
|
BOTHP="[log][show=fetch]"
|
|
BOTHS="noprefetch&fetch=disk"
|
|
STRLEN="[maxstrlen=16]"
|
|
|
|
locreset () {
|
|
rm -f ./tmp_testurl ./errtmp_testurl
|
|
}
|
|
|
|
buildurl () {
|
|
front="$1"
|
|
back="$2"
|
|
url="${front}${URL}"
|
|
if test "x$back" != x ; then
|
|
url="${url}#${back}"
|
|
fi
|
|
}
|
|
|
|
pass=1
|
|
|
|
if test "x$GDB" = x1 ; then
|
|
NCDUMP="gdb --args $NCDUMP"
|
|
fi
|
|
|
|
# Initialize
|
|
locreset
|
|
|
|
if test "x$NOP" != x1 ; then
|
|
echo "***Testing url prefix parameters"
|
|
buildurl "$PREFIX" ""
|
|
# Invoke ncdump to extract the URL
|
|
|
|
echo "command: ${NCDUMP} -h $url"
|
|
|
|
${NCDUMP} -h "$url" >./tmp_testurl 2> ./errtmp_testurl
|
|
if test "x${SHOW}" = x1 ; then cat ./tmp ; fi
|
|
|
|
# Test that maxstrlen works as alias for stringlength
|
|
echo "***Testing maxstrlen=stringlength alias"
|
|
buildurl "$STRLEN" ""
|
|
# Invoke ncdump to extract the URL
|
|
echo "command: ${NCDUMP} -h $url"
|
|
${NCDUMP} "$url" >./tmp_testurl 2> ./errtmp_testurl
|
|
if test "x${SHOW}" = x1 ; then cat ./tmp_testurl ; fi
|
|
# Look for the value of maxStrlen in output cdl
|
|
if ! fgrep -i "maxstrlen = 16" ./tmp_testurl ; then
|
|
echo "***Fail: maxStrlen not recognized"
|
|
fgrep -i "maxstrlen16 = 16" ./tmp_testurl > ./errtmp_testurl
|
|
fi
|
|
|
|
fi
|
|
|
|
locreset
|
|
if test "x$NOS" != x1 ; then
|
|
echo "***Testing url suffix parameters"
|
|
buildurl "" "$SUFFIX"
|
|
# Invoke ncdump to extract the URL
|
|
${NCDUMP} -h "$url" >./tmp_testurl 2> ./errtmp_testurl
|
|
if test "x${SHOW}" = x1 ; then cat ./tmp_testurl ; fi
|
|
fi
|
|
|
|
locreset
|
|
|
|
if test "x$NOB" != x1 ; then
|
|
echo "***Testing url prefix+suffix parameters"
|
|
buildurl "$BOTHP" "$BOTHS"
|
|
# Invoke ncdump to extract the URL
|
|
${NCDUMP} -h "$url" >./tmp_testurl 2> ./errtmp_testurl
|
|
if test "x${SHOW}" = x1 ; then cat ./tmp_testurl ; fi
|
|
fi
|
|
|
|
locreset
|
|
|
|
if test "x$pass" = x0 ; then
|
|
echo "***FAIL"
|
|
exit 1
|
|
fi
|
|
echo "***PASS"
|
|
exit 0
|