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:
Dennis Heimbigner 2018-06-26 13:58:45 -06:00
parent b9d846836b
commit 1299a0fcee
17 changed files with 83 additions and 75 deletions

View File

@ -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)

View File

@ -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
View File

@ -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

View File

@ -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"

View File

@ -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

View File

@ -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)

View File

@ -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

View File

@ -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() {

View File

@ -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}"

View File

@ -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

View File

@ -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

View File

@ -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"

View File

@ -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"

View File

@ -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

View File

@ -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)

View File

@ -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"

View File

@ -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='' # 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: