1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170
|
# Tests
AUTOMAKE_OPTIONS = foreign
# Arrange to build with the backward compatibility mode enabled.
AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/GNU -I$(top_srcdir)/d4_ce \
-I$(top_srcdir)/d4_function $(XML2_CFLAGS) $(CURL_CFLAGS) $(TIRPC_CFLAGS)
AM_CXXFLAGS =
if COMPILER_IS_GCC
AM_CXXFLAGS += -Wall -W -Wcast-align
endif
CXXFLAGS_DEBUG = -g3 -O0 -Wall -W -Wcast-align
# If valgrind is present, add valgrind targets.
# @VALGRIND_CHECK_RULES@
if USE_ASAN
ASAN_FLAGS = -fsanitize=address -fno-omit-frame-pointer
endif
if BUILD_DEVELOPER
AM_CXXFLAGS += $(CXX11_FLAG) $(CXXFLAGS_DEBUG) $(ASAN_FLAGS)
else
AM_CXXFLAGS += -g -O2 $(CXX11_FLAG)
endif
AM_LDFLAGS =
include $(top_srcdir)/coverage.mk
TEST_COV_FLAGS = -ftest-coverage -fprofile-arcs
check_PROGRAMS = das-test dds-test expr-test dmr-test
# This will use automake's test envokation code. It's better to use
# our own so we can pass in flags for autotest, esp --jobs=N to get
# the autotest tests to run in parallel. See check-local: below.
# TESTS = DASTest DDSTest EXPRTest DMRTest getdapTest
check_SCRIPTS = $(DASTESTSUITE) $(DDSTESTSUITE) $(EXPRTESTSUITE)
# Build the test drivers. The drivers all use the
# subclassed types in Test*.cc and the TestTypesFactory.
lib_LIBRARIES = libtest-types.a
libtest_types_a_SOURCES = $(TESTSRCS) $(TEST_HDR)
libtest_types_a_CXXFLAGS = $(AM_CXXFLAGS) -fPIC
testheadersdir = $(pkgincludedir)/test
testheaders_HEADERS = $(TEST_HDR)
# linking this way enables the test programs to work with OSX's leaks
# tool. I cannot get leaks to work with the autotest-generated scripts
# without changing how they work. But at least the individual C++
# programs can be use with leaks. jhrg 2/18/22
AM_LDFLAGS += -static
das_test_SOURCES = das-test.cc
das_test_LDADD = libtest-types.a ../libdapserver.la ../libdap.la
dds_test_SOURCES = dds-test.cc
dds_test_LDADD = libtest-types.a ../libdapserver.la ../libdap.la
expr_test_SOURCES = expr-test.cc ResponseBuilder.cc ResponseBuilder.h
expr_test_LDADD = libtest-types.a ../libdapserver.la ../libdapclient.la ../libdap.la
dmr_test_SOURCES = dmr-test.cc D4ResponseBuilder.cc D4ResponseBuilder.h
dmr_test_LDADD = libtest-types.a ../libdapserver.la ../libdap.la
TESTSRCS = TestByte.cc TestInt32.cc TestFloat64.cc TestStr.cc TestUrl.cc \
TestArray.cc TestStructure.cc TestSequence.cc \
TestGrid.cc TestUInt32.cc TestInt16.cc TestUInt16.cc \
TestFloat32.cc TestTypeFactory.cc D4TestTypeFactory.cc \
TestD4Group.cc TestInt8.cc TestInt64.cc TestUInt64.cc TestD4Sequence.cc \
TestD4Enum.cc TestD4Opaque.cc TestFunction.cc D4TestFunction.cc
# TestCommon.cc Removed jhrg 3/12/15
TEST_HDR = TestArray.h TestByte.h TestCommon.h TestFloat32.h TestFloat64.h \
TestGrid.h TestInt16.h TestInt32.h TestSequence.h TestStr.h \
TestStructure.h TestTypeFactory.h TestUInt16.h TestUInt32.h TestUrl.h \
D4TestTypeFactory.h TestD4Group.h TestInt8.h TestInt64.h TestUInt64.h \
TestD4Sequence.h TestD4Enum.h TestD4Opaque.h TestFunction.h D4TestFunction.h
DIRS_EXTRA = das-testsuite dds-testsuite expr-testsuite dmr-testsuite \
getdap-testsuite
EXTRA_DIST = DASTest.at $(DASTESTSUITE) DDSTest.at $(DDSTESTSUITE) \
EXPRTest.at $(EXPRTESTSUITE) DMRTest.at $(DMRTESTSUITE) \
getdapTest.at $(GETDAPTESTSUITE) getdap-testsuite atlocal.in \
$(srcdir)/package.m4 $(DIRS_EXTRA)
CLEANFILES = *.gcda *.gcno *.gcov dmr-testsuite.tar.gz
DISTCLEANFILES = *.log
# DASTest.dir/* DDSTest.dir/* EXPRTest.dir/* DMRTest.dir/* getdapTest.dir/*
dmr-testsuite.tar.gz: dmr-testsuite/*.xml
tar -czf $@ $^
############## Autotest follows #####################
AUTOM4TE = autom4te
DASTESTSUITE = $(srcdir)/DASTest
DDSTESTSUITE = $(srcdir)/DDSTest
EXPRTESTSUITE = $(srcdir)/EXPRTest
DMRTESTSUITE = $(srcdir)/DMRTest
GETDAPTESTSUITE = $(srcdir)/getdapTest
check-local: atconfig atlocal $(DASTESTSUITE) $(DDSTESTSUITE) \
$(EXPRTESTSUITE)
$(SHELL) '$(DASTESTSUITE)' $(TESTSUITEFLAGS)
$(SHELL) '$(DDSTESTSUITE)' $(TESTSUITEFLAGS)
$(SHELL) '$(EXPRTESTSUITE)' $(TESTSUITEFLAGS)
# Make sure there are no spaces after the DASTESTSUITE names. jhrg 3/16/15
# Delete the scripts here and not using CLEANFILES because this target is
# run after the 'regular' clean: and we need the test scripts to run their
# --clean option. Once that's done, then remove them.
clean-local:
test ! -f '$(DASTESTSUITE)' || $(SHELL) $(DASTESTSUITE) --clean
test ! -f '$(DDSTESTSUITE)' || $(SHELL) $(DDSTESTSUITE) --clean
test ! -f '$(EXPRTESTSUITE)' || $(SHELL) $(EXPRTESTSUITE) --clean
test ! -f '$(DMRTESTSUITE)' || $(SHELL) $(DMRTESTSUITE) --clean
test ! -f '$(GETDAPTESTSUITE)' || $(SHELL) $(GETDAPTESTSUITE) --clean
distclean-local:
-rm atconfig
AUTOTEST = $(AUTOM4TE) --language=autotest
$(DASTESTSUITE): $(srcdir)/DASTest.at $(srcdir)/package.m4
$(AUTOTEST) -I '$(srcdir)' -o $@.tmp $@.at
mv $@.tmp $@
$(DDSTESTSUITE): $(srcdir)/DDSTest.at $(srcdir)/package.m4
$(AUTOTEST) -I '$(srcdir)' -o $@.tmp $@.at
mv $@.tmp $@
$(EXPRTESTSUITE): $(srcdir)/EXPRTest.at $(srcdir)/package.m4
$(AUTOTEST) -I '$(srcdir)' -o $@.tmp $@.at
mv $@.tmp $@
$(DMRTESTSUITE): $(srcdir)/DMRTest.at $(srcdir)/package.m4
$(AUTOTEST) -I '$(srcdir)' -o $@.tmp $@.at
mv $@.tmp $@
$(GETDAPTESTSUITE): $(srcdir)/getdapTest.at $(srcdir)/package.m4
$(AUTOTEST) -I '$(srcdir)' -o $@.tmp $@.at
mv $@.tmp $@
# The `:;' works around a Bash 3.2 bug when the output is not writable.
$(srcdir)/package.m4: $(top_srcdir)/configure.ac
:;{ \
echo '# Signature of the current package.' && \
echo 'm4_define([AT_PACKAGE_NAME], [@PACKAGE_NAME@])' && \
echo 'm4_define([AT_PACKAGE_TARNAME], [@PACKAGE_TARNAME@])' && \
echo 'm4_define([AT_PACKAGE_VERSION], [@PACKAGE_VERSION@])' && \
echo 'm4_define([AT_PACKAGE_STRING], [@PACKAGE_STRING@])' && \
echo 'm4_define([AT_PACKAGE_BUGREPORT], [@PACKAGE_BUGREPORT@])'; \
} >'$(srcdir)/package.m4'
|