mirror of
https://github.com/Unidata/netcdf-c.git
synced 2025-02-17 16:50:18 +08:00
The Jetstream remote test server is now working.
So it now becomes the first default test server to try. This also means that the dap4 remote testing is enabled. The only issue to watch is to see if the jetstream-based server can stay up for significant periods of time. A uptimerobot (https://uptimerobot.com) has been set ups to monitor this hourly, so we shall see.
This commit is contained in:
parent
b9d846836b
commit
1299a0fcee
@ -842,7 +842,7 @@ ENDIF()
|
||||
# Option to Enable DAP long tests, remote tests.
|
||||
OPTION(ENABLE_DAP_LONG_TESTS "Enable DAP long tests." OFF)
|
||||
OPTION(ENABLE_DAP_REMOTE_TESTS "Enable DAP remote tests." ON)
|
||||
SET(REMOTETESTSERVERS "remotetest.unidata.ucar.edu,jetstream.unidata.ucar.edu" CACHE STRING "test servers to use for remote test")
|
||||
SET(REMOTETESTSERVERS "149.165.169.123:8080,remotetest.unidata.ucar.edu" CACHE STRING "test servers to use for remote test")
|
||||
|
||||
# If netCDF4 and DAP, Option for DAP groups.
|
||||
IF(ENABLE_NETCDF_4 AND ENABLE_DAP2)
|
||||
|
@ -7,6 +7,7 @@ This file contains a high-level description of this package's evolution. Release
|
||||
|
||||
## 4.7.0 - TBD
|
||||
|
||||
* [Enhancement] Support DAP4 remote tests using a new remote test server locatedon the Unidata JetStream project.
|
||||
* [Enhancement] Improved the performance of the nc_get/put_vars operations by using the equivalent slab capabilities of hdf5. Result is a significant speedup of these operations. See [GitHub #1001](https://github.com/Unidata/netcdf-c/pull/1001) for more information.
|
||||
* [Enhancement] Expanded the capabilities of `NC_INMEMORY` to support writing and accessing the final modified memory. See [GitHub #879](https://github.com/Unidata/netcdf-c/pull/879) for more information.
|
||||
* [Enhancement] Made CDF5 support enabled by default. See [Github #931](https://github.com/Unidata/netcdf-c/issues/931) for more information.
|
||||
|
9
cf
9
cf
@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
#NB=1
|
||||
#DB=1
|
||||
DB=1
|
||||
#X=-x
|
||||
|
||||
#FAST=1
|
||||
@ -13,6 +13,8 @@ DAP=1
|
||||
#PNETCDF=1
|
||||
#PAR4=1
|
||||
|
||||
#TESTSERVERS="localhost:8080,149.165.169.123:8080"
|
||||
|
||||
if test $# != 0 ; then
|
||||
cmds=$@
|
||||
fi
|
||||
@ -115,10 +117,13 @@ FLAGS="$FLAGS --disable-diskless"
|
||||
#FLAGS="$FLAGS --enable-jna"
|
||||
#FLAGS="$FLAGS --disable-properties-attribute"
|
||||
#FLAGS="$FLAGS --disable-silent-rules"
|
||||
#FLAGS="$FLAGS --with-testservers=remotestserver.localhost:8083"
|
||||
FLAGS="$FLAGS --disable-filter-testing"
|
||||
#FLAGS="$FLAGS --enable-metadata-perf"
|
||||
|
||||
if test "x$TESTSERVERS" != x ; then
|
||||
FLAGS="$FLAGS --with-testservers=$TESTSERVERS"
|
||||
fi
|
||||
|
||||
if test "x$PAR4" != x1 ; then
|
||||
FLAGS="$FLAGS --disable-parallel4"
|
||||
fi
|
||||
|
8
cf.cmake
8
cf.cmake
@ -23,6 +23,8 @@ if test "x$VS" = x1 ; then
|
||||
fi
|
||||
fi
|
||||
|
||||
#TESTSERVERS="localhost:8080,149.165.169.123:8080"
|
||||
|
||||
#export NCPATHDEBUG=1
|
||||
|
||||
if test "x$VSSETUP" = x1 ; then
|
||||
@ -49,12 +51,16 @@ if test "x$HDF4" != x ; then
|
||||
FLAGS="$FLAGS -DENABLE_HDF4=true"
|
||||
fi
|
||||
|
||||
if test "x$TESTSERVERS" != x ; then
|
||||
FLAGS="$FLAGS -DREMOTETESTSERVERS=${TESTSERVERS}"
|
||||
fi
|
||||
|
||||
# Enables
|
||||
FLAGS="$FLAGS -DENABLE_DAP_REMOTE_TESTS=true"
|
||||
FLAGS="$FLAGS -DENABLE_LOGGING=true"
|
||||
#FLAGS="$FLAGS -DENABLE_DOXYGEN=true -DENABLE_INTERNAL_DOCS=true"
|
||||
#FLAGS="$FLAGS -DENABLE_LARGE_FILE_TESTS=true"
|
||||
FLAGS="$FLAGS -DENABLE_FILTER_TESTING=true"
|
||||
#FLAGS="$FLAGS -DENABLE_FILTER_TESTING=true"
|
||||
|
||||
# Disables
|
||||
FLAGS="$FLAGS -DENABLE_EXAMPLES=false"
|
||||
|
@ -400,15 +400,15 @@ fi
|
||||
# Did the user specify a list of test servers to try for remote tests?
|
||||
AC_MSG_CHECKING([which remote test server(s) to use])
|
||||
AC_ARG_WITH([testservers],
|
||||
[AS_HELP_STRING([--with-testservers=<host+port>,<host+port>...],
|
||||
[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
|
||||
msg="remotetest.unidata.ucar.edu,jetstream.unidata.ucar.edu (defaults)"
|
||||
REMOTETESTSERVERS=remotetest.unidata.ucar.edu,jetstream.unidata.ucar.edu
|
||||
svclist="149.165.169.123:8080,remotetest.unidata.ucar.edu"
|
||||
REMOTETESTSERVERS="$svclist"
|
||||
fi
|
||||
AC_MSG_RESULT([$msg])
|
||||
AC_MSG_RESULT([$svclist])
|
||||
AC_DEFINE_UNQUOTED([REMOTETESTSERVERS], ["$REMOTETESTSERVERS"], [the testservers for remote tests.])
|
||||
|
||||
# Set the config.h flags
|
||||
|
@ -32,7 +32,7 @@ IF(ENABLE_TESTS)
|
||||
BUILD_BIN_TEST(findtestserver4)
|
||||
|
||||
IF(BUILD_UTILITIES)
|
||||
# disable for now add_sh_test(dap4_test test_remote)
|
||||
add_sh_test(dap4_test test_remote)
|
||||
ENDIF(BUILD_UTILITIES)
|
||||
ENDIF(ENABLE_DAP_REMOTE_TESTS)
|
||||
ENDIF(ENABLE_TESTS)
|
||||
|
@ -6,7 +6,9 @@
|
||||
# Put together AM_CPPFLAGS and AM_LDFLAGS.
|
||||
include $(top_srcdir)/lib_flags.am
|
||||
|
||||
TEST_EXTENSIONS = .sh
|
||||
#TEST_EXTENSIONS = .sh
|
||||
|
||||
#LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver-verbose
|
||||
|
||||
LDADD = ${top_builddir}/liblib/libnetcdf.la
|
||||
AM_CPPFLAGS += -I$(top_srcdir)/libdap4
|
||||
@ -44,8 +46,7 @@ check_PROGRAMS += findtestserver4
|
||||
findtestserver4_SOURCES = findtestserver4.c
|
||||
if BUILD_UTILITIES
|
||||
# relies on ncdump
|
||||
# Disabled until the testserver is stable
|
||||
#TESTS += test_remote.sh
|
||||
TESTS += test_remote.sh
|
||||
endif
|
||||
endif
|
||||
|
||||
|
@ -23,8 +23,10 @@ cd ${srcdir}/baselineraw; BASELINERAW=`pwd` ; cd ${WD}
|
||||
cd ${srcdir}/baselineremote; BASELINEREM=`pwd` ; cd ${WD}
|
||||
BASELINEH=${BASELINEREM}
|
||||
|
||||
rm -fr ./results
|
||||
mkdir -p ./results
|
||||
setresultdir() {
|
||||
rm -fr ./$1
|
||||
mkdir -p ./$1
|
||||
}
|
||||
|
||||
FAILURES=
|
||||
failure() {
|
||||
|
@ -11,7 +11,8 @@ cd ${DAPTESTFILES}
|
||||
F=`ls -1 *.dap | sed -e 's/[.]dap//g' | tr '\r\n' ' '`
|
||||
cd $WD
|
||||
|
||||
mkdir ./results_test_data
|
||||
setresultdir results_test_data
|
||||
|
||||
if test "x${RESET}" = x1 ; then rm -fr ${BASELINE}/*.d4d ; fi
|
||||
for f in $F ; do
|
||||
echo "testing: ${f}"
|
||||
|
@ -22,26 +22,27 @@ failure() {
|
||||
exit 1
|
||||
}
|
||||
|
||||
rm -fr ./results
|
||||
mkdir -p ./results
|
||||
setresultdir results_test_hyrax
|
||||
|
||||
if test "x${RESET}" = x1 ; then rm -fr ${BASELINEH}/*.dmp ; fi
|
||||
for f in $F ; do
|
||||
URL="dap4://test.opendap.org:8080/opendap/nc4_test_files/${f}${FRAG}"
|
||||
echo "testing: $URL"
|
||||
if ! ${NCDUMP} "${URL}" > ./results/${f}.hyrax; then
|
||||
if ! ${NCDUMP} "${URL}" > ./results_test_hyrax/${f}.hyrax; then
|
||||
failure "${URL}"
|
||||
fi
|
||||
if test "x${TEST}" = x1 ; then
|
||||
if ! diff -wBb ${BASELINEREM}/${f}.hyrax ./results/${f}.hyrax ; then
|
||||
if ! diff -wBb ${BASELINEREM}/${f}.hyrax ./results_test_hyrax/${f}.hyrax ; then
|
||||
failure "diff ${f}.hyrax"
|
||||
fi
|
||||
elif test "x${RESET}" = x1 ; then
|
||||
echo "${f}:"
|
||||
cp ./results/${f}.hyrax ${BASELINEH}/${f}.hyrax
|
||||
cp ./results_test_hyrax/${f}.hyrax ${BASELINEH}/${f}.hyrax
|
||||
fi
|
||||
done
|
||||
|
||||
rm -rf ./results_test_hyrax
|
||||
|
||||
echo "*** Pass"
|
||||
exit 0
|
||||
|
||||
|
@ -23,7 +23,8 @@ done
|
||||
|
||||
if test "x${RESET}" = x1 ; then rm -fr ${BASELINE}/*.d4m ; fi
|
||||
|
||||
mkdir ./results_test_meta
|
||||
setresultdir results_test_meta
|
||||
|
||||
for f in ${F} ; do
|
||||
echo "checking: $f"
|
||||
if ! ${VG} ${execdir}/test_meta ${DMRTESTFILES}/${f}.dmr ./results_test_meta/${f} ; then
|
||||
|
@ -11,7 +11,8 @@ cd ${DMRTESTFILES}
|
||||
F=`ls -1 *.dmr | sed -e 's/[.]dmr//' |tr '\r\n' ' '`
|
||||
cd $WD
|
||||
|
||||
mkdir ./results_test_parse
|
||||
setresultdir results_test_parse
|
||||
|
||||
if test "x${RESET}" = x1 ; then rm -fr ${BASELINE}/*.d4p ; fi
|
||||
for f in $F ; do
|
||||
echo "testing: $f"
|
||||
|
@ -3,6 +3,7 @@
|
||||
if test "x$srcdir" = x ; then srcdir=`pwd`; fi
|
||||
. ../test_common.sh
|
||||
|
||||
set -e
|
||||
. ${srcdir}/d4test_common.sh
|
||||
|
||||
echo "test_raw.sh:"
|
||||
@ -40,7 +41,7 @@ resultclean() {
|
||||
fi
|
||||
}
|
||||
|
||||
mkdir ./results_test_raw
|
||||
setresultdir results_test_raw
|
||||
if test "x${RESET}" = x1 ; then rm -fr ${BASELINERAW}/*.dmp ; fi
|
||||
for f in $F ; do
|
||||
echo "testing: $f"
|
||||
|
@ -5,6 +5,8 @@ if test "x$srcdir" = x ; then srcdir=`pwd`; fi
|
||||
|
||||
. ${srcdir}/d4test_common.sh
|
||||
|
||||
set -e
|
||||
|
||||
echo "test_remote.sh:"
|
||||
|
||||
#BIG=1
|
||||
@ -54,10 +56,12 @@ test_sequence_2.syn
|
||||
test_struct_array.syn
|
||||
"
|
||||
|
||||
setresultdir results_test_remote
|
||||
|
||||
TESTSERVER=`${execdir}/findtestserver4 dap4 d4ts`
|
||||
if test "x$TESTSERVER" = x ; then
|
||||
echo "***XFAIL: Cannot find d4ts testserver"
|
||||
exit 0
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if test "x${RESET}" = x1 ; then rm -fr ${BASELINER}/*.dmp ; fi
|
||||
@ -69,18 +73,20 @@ for f in $F ; do
|
||||
if test "x$NOCSUM" = x1; then
|
||||
URL="[ucar.checksummode=none]${URL}"
|
||||
fi
|
||||
if ! ${VG} ${NCDUMP} "${URL}" > ./results/${f}.dmp; then
|
||||
if ! ${VG} ${NCDUMP} "${URL}" > ./results_test_remote/${f}.dmp; then
|
||||
failure "${URL}"
|
||||
fi
|
||||
if test "x${TEST}" = x1 ; then
|
||||
if ! diff -wBb ${BASELINEREM}/${f}.dmp ./results/${f}.dmp ; then
|
||||
if ! diff -wBb ${BASELINEREM}/${f}.dmp ./results_test_remote/${f}.dmp ; then
|
||||
failure "diff ${f}.dmp"
|
||||
fi
|
||||
elif test "x${RESET}" = x1 ; then
|
||||
echo "${f}:"
|
||||
cp ./results/${f}.dmp ${BASELINEREM}/${f}.dmp
|
||||
cp ./results_test_remote/${f}.dmp ${BASELINEREM}/${f}.dmp
|
||||
fi
|
||||
done
|
||||
|
||||
rm -fr ./results_test_remote
|
||||
|
||||
finish
|
||||
|
||||
|
@ -5,6 +5,8 @@
|
||||
#include <curl/curl.h>
|
||||
#include "netcdf.h"
|
||||
|
||||
#undef FINDTESTSERVER_DEBUG
|
||||
|
||||
#define MAXSERVERURL 4096
|
||||
#define TIMEOUT 10 /*seconds*/
|
||||
#define BUFSIZE 8192 /*bytes*/
|
||||
@ -102,6 +104,10 @@ done:
|
||||
return total; /* pretend we captured everything */
|
||||
}
|
||||
|
||||
/*
|
||||
See if a server is responding.
|
||||
Return NC_ECURL if the ping fails, NC_NOERR otherwise
|
||||
*/
|
||||
static int
|
||||
ping(const char* url)
|
||||
{
|
||||
@ -149,7 +155,10 @@ ping(const char* url)
|
||||
|
||||
done:
|
||||
if(cstat != CURLE_OK) {
|
||||
fprintf(stderr, "curl error: %s", curl_easy_strerror(cstat));
|
||||
#ifdef FINDTESTSERVER_DEBUG
|
||||
fprintf(stderr, "curl error: %s; url=%s\n",
|
||||
curl_easy_strerror(cstat),url);
|
||||
#endif
|
||||
stat = NC_ECURL;
|
||||
}
|
||||
if (curl != NULL)
|
||||
|
@ -8,10 +8,10 @@ leakcheck=0
|
||||
timing=0
|
||||
|
||||
# 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
|
||||
TESTSERVER=`${execdir}/findtestserver dap2 dts`
|
||||
if test "x$TESTSERVER" = "x" ; then
|
||||
echo "***XFAIL: Cannot locate test server for dts"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
PARAMS="[log]"
|
||||
@ -61,14 +61,14 @@ PARAMS="${PARAMS}${CACHE}"
|
||||
##################################################
|
||||
|
||||
# For special testing
|
||||
REMOTEURLX="$DTS"
|
||||
REMOTEURLX="$TESTSERVER"
|
||||
REMOTETESTSX="test.03"
|
||||
|
||||
REMOTEURLXC="$DTS"
|
||||
REMOTEURLXC="$TESTSERVER"
|
||||
REMOTETESTSXC="test.03;1;s0,s1"
|
||||
|
||||
# These shorter tests are always run
|
||||
REMOTEURLS1="$DTS"
|
||||
REMOTEURLS1="$TESTSERVER"
|
||||
REMOTETESTSS1="\
|
||||
test.01 test.02 test.04 test.05 test.07a test.07 \
|
||||
test.21 \
|
||||
@ -101,7 +101,7 @@ TOOBIGL1="parserBug0001 test.satimage Sat_Images test.32"
|
||||
ESCAPEDFAIL="test.dfr1 test.dfr2 test.dfr3 test.GridFile test.PointFile test.SwathFile test.sds6 test.sds7"
|
||||
|
||||
# Following tests are to check constraint handling
|
||||
REMOTEURLC1="$DTS"
|
||||
REMOTEURLC1="$TESTSERVER"
|
||||
REMOTETESTSC1="\
|
||||
test.01;1;f64 \
|
||||
test.02;1;b[1:2:10] \
|
||||
@ -130,7 +130,7 @@ argo_all.cdp;1;&location.LATITUDE<1&location.LATITUDE>-1\
|
||||
"
|
||||
|
||||
# Constrained long tests
|
||||
REMOTEURLLC1="$DTS"
|
||||
REMOTEURLLC1="$TESTSERVER"
|
||||
REMOTETESTSLC1="\
|
||||
test.03;2;s1"
|
||||
|
||||
|
@ -1,11 +1,9 @@
|
||||
#! /bin/sh
|
||||
# test-driver - basic testsuite driver script.
|
||||
|
||||
DEBUGTEST="run_examples4.sh"
|
||||
scriptversion=2018-06-26.01; # UTC
|
||||
|
||||
scriptversion=2018-01-15.21; # UTC
|
||||
|
||||
# Copyright (C) 2011-2017 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2011-2013 Free Software Foundation, Inc.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@ -46,12 +44,13 @@ print_usage ()
|
||||
Usage:
|
||||
test-driver --test-name=NAME --log-file=PATH --trs-file=PATH
|
||||
[--expect-failure={yes|no}] [--color-tests={yes|no}]
|
||||
[--enable-hard-errors={yes|no}] [--]
|
||||
TEST-SCRIPT [TEST-SCRIPT-ARGUMENTS]
|
||||
[--enable-hard-errors={yes|no}] [--] TEST-SCRIPT
|
||||
The '--test-name', '--log-file' and '--trs-file' options are mandatory.
|
||||
END
|
||||
}
|
||||
|
||||
# TODO: better error handling in option parsing (in particular, ensure
|
||||
# TODO: $log_file, $trs_file and $test_name are defined).
|
||||
test_name= # Used for reporting.
|
||||
log_file= # Where to save the output of the test script.
|
||||
trs_file= # Where to save the metadata of the test run.
|
||||
@ -70,23 +69,10 @@ while test $# -gt 0; do
|
||||
--enable-hard-errors) enable_hard_errors=$2; shift;;
|
||||
--) shift; break;;
|
||||
-*) usage_error "invalid option: '$1'";;
|
||||
*) break;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
missing_opts=
|
||||
test x"$test_name" = x && missing_opts="$missing_opts --test-name"
|
||||
test x"$log_file" = x && missing_opts="$missing_opts --log-file"
|
||||
test x"$trs_file" = x && missing_opts="$missing_opts --trs-file"
|
||||
if test x"$missing_opts" != x; then
|
||||
usage_error "the following mandatory options are missing:$missing_opts"
|
||||
fi
|
||||
|
||||
if test $# -eq 0; then
|
||||
usage_error "missing argument"
|
||||
fi
|
||||
|
||||
if test $color_tests = yes; then
|
||||
# Keep this in sync with 'lib/am/check.am:$(am__tty_colors)'.
|
||||
red='[0;31m' # Red.
|
||||
@ -105,25 +91,14 @@ trap "st=130; $do_exit" 2
|
||||
trap "st=141; $do_exit" 13
|
||||
trap "st=143; $do_exit" 15
|
||||
|
||||
set -x
|
||||
|
||||
# Test script is run here.
|
||||
|
||||
"$@" >$log_file 2>&1
|
||||
estatus=$?
|
||||
if test "x$test_name" = "x$DEBUGTEST" ; then
|
||||
cat $log_file
|
||||
fi
|
||||
|
||||
if test $enable_hard_errors = no && test $estatus -eq 99; then
|
||||
tweaked_estatus=1
|
||||
else
|
||||
tweaked_estatus=$estatus
|
||||
estatus=1
|
||||
fi
|
||||
|
||||
cat $log_file
|
||||
|
||||
case $tweaked_estatus:$expect_failure in
|
||||
case $estatus:$expect_failure in
|
||||
0:yes) col=$red res=XPASS recheck=yes gcopy=yes;;
|
||||
0:*) col=$grn res=PASS recheck=no gcopy=no;;
|
||||
77:*) col=$blu res=SKIP recheck=no gcopy=yes;;
|
||||
@ -132,11 +107,9 @@ case $tweaked_estatus:$expect_failure in
|
||||
*:*) col=$red res=FAIL recheck=yes gcopy=yes;;
|
||||
esac
|
||||
|
||||
# Report the test outcome and exit status in the logs, so that one can
|
||||
# know whether the test passed or failed simply by looking at the '.log'
|
||||
# file, without the need of also peaking into the corresponding '.trs'
|
||||
# file (automake bug#11814).
|
||||
echo "$res $test_name (exit status: $estatus)" >>$log_file
|
||||
echo "begin $log_file"
|
||||
cat $log_file
|
||||
echo "end $log_file"
|
||||
|
||||
# Report outcome to console.
|
||||
echo "${col}${res}${std}: $test_name"
|
||||
@ -153,6 +126,6 @@ echo ":copy-in-global-log: $gcopy" >> $trs_file
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-time-zone: "UTC0"
|
||||
# time-stamp-time-zone: "UTC"
|
||||
# time-stamp-end: "; # UTC"
|
||||
# End:
|
||||
|
Loading…
Reference in New Issue
Block a user