Some items from the CVC4 public interface review:
[cvc5.git] / test / unit / Makefile.am
1 # All unit tests
2 UNIT_TESTS = \
3 theory/logic_info_white \
4 theory/theory_engine_white \
5 theory/theory_white \
6 theory/theory_arith_white \
7 theory/theory_bv_white \
8 theory/type_enumerator_white \
9 expr/expr_public \
10 expr/expr_manager_public \
11 expr/node_white \
12 expr/node_black \
13 expr/kind_black \
14 expr/kind_map_black \
15 expr/node_builder_black \
16 expr/node_manager_black \
17 expr/node_manager_white \
18 expr/attribute_white \
19 expr/attribute_black \
20 expr/symbol_table_black \
21 expr/node_self_iterator_black \
22 expr/type_cardinality_public \
23 expr/type_node_white \
24 parser/parser_black \
25 parser/parser_builder_black \
26 prop/cnf_stream_white \
27 context/context_black \
28 context/context_white \
29 context/context_mm_black \
30 context/cdo_black \
31 context/cdlist_black \
32 context/cdlist_context_memory_black \
33 context/cdmap_black \
34 context/cdmap_white \
35 context/cdvector_black \
36 context/stacking_map_black \
37 context/stacking_vector_black \
38 util/array_store_all_black \
39 util/assert_white \
40 util/bitvector_black \
41 util/datatype_black \
42 util/configuration_black \
43 util/output_black \
44 util/exception_black \
45 util/integer_black \
46 util/integer_white \
47 util/rational_black \
48 util/rational_white \
49 util/stats_black \
50 util/trans_closure_black \
51 util/boolean_simplification_black \
52 util/subrange_bound_white \
53 util/cardinality_public \
54 util/recursion_breaker_black \
55 main/interactive_shell_black
56
57 export VERBOSE = 1
58
59 # Things that aren't tests but that tests rely on and need to
60 # go into the distribution
61 TEST_DEPS_DIST = \
62 memory.h \
63 Makefile.tests
64
65 if HAVE_CXXTESTGEN
66
67 AM_CPPFLAGS = \
68 -I. \
69 "-I@CXXTEST@" \
70 "-I@top_srcdir@/src/include" \
71 "-I@top_srcdir@/lib" \
72 "-I@top_srcdir@/src" \
73 "-I@top_builddir@/src" \
74 "-I@top_srcdir@/src/prop/minisat" \
75 -D __STDC_LIMIT_MACROS \
76 -D __STDC_FORMAT_MACROS \
77 $(ANTLR_INCLUDES) \
78 $(TEST_CPPFLAGS)
79 AM_CXXFLAGS = -Wall -Wno-unknown-pragmas -Wno-parentheses $(TEST_CXXFLAGS)
80 AM_LDFLAGS = $(TEST_LDFLAGS) $(READLINE_LIBS) $(LIBS)
81
82 AM_CXXFLAGS_WHITE = -fno-access-control -D__BUILDING_CVC4LIB_UNIT_TEST -D__BUILDING_CVC4PARSERLIB_UNIT_TEST
83 AM_CXXFLAGS_BLACK = -D__BUILDING_CVC4LIB_UNIT_TEST -D__BUILDING_CVC4PARSERLIB_UNIT_TEST
84 AM_CXXFLAGS_PUBLIC =
85 AM_LDFLAGS_WHITE =
86 AM_LDFLAGS_BLACK =
87 AM_LDFLAGS_PUBLIC =
88 AM_LIBADD_WHITE = \
89 @abs_top_builddir@/src/main/libmain.a \
90 @abs_top_builddir@/src/parser/libcvc4parser_noinst.la \
91 @abs_top_builddir@/src/libcvc4_noinst.la
92 AM_LIBADD_BLACK = \
93 @abs_top_builddir@/src/main/libmain.a \
94 @abs_top_builddir@/src/parser/libcvc4parser_noinst.la \
95 @abs_top_builddir@/src/libcvc4_noinst.la
96 AM_LIBADD_PUBLIC = \
97 @abs_top_builddir@/src/parser/libcvc4parser.la \
98 @abs_top_builddir@/src/libcvc4.la
99
100 EXTRA_DIST = \
101 no_cxxtest \
102 $(UNIT_TESTS:%=%.cpp) \
103 $(UNIT_TESTS:%=%.h) \
104 $(TEST_DEPS_DIST)
105
106 MOSTLYCLEANFILES = $(UNIT_TESTS) $(UNIT_TESTS:%=%.cpp) $(UNIT_TESTS:%=%.lo)
107 DISTCLEANFILES = $(UNIT_TESTS:%=.deps/%.Plo)
108
109 # the tests automake infrastructure doesn't clean up .o files :-(
110 # handle both .libs and _libs variants
111 mostlyclean-local:
112 @for f in $(UNIT_TESTS); do \
113 dir="$$(dirname "$$f")"; fil="$$(basename "$$f")"; \
114 for junk in "$$dir/.libs/$$fil.o" \
115 "$$dir/_libs/$$fil.o" \
116 "$$dir/.libs/lt-$$fil" \
117 "$$dir/_libs/lt-$$fil" \
118 "$$dir/.libs/$$fil" \
119 "$$dir/_libs/$$fil"; do \
120 if test -e "$$junk"; then \
121 echo "rm -f \"$$junk\""; \
122 rm -f "$$junk"; \
123 fi; \
124 done; \
125 done
126
127 @mk_include@ @srcdir@/Makefile.tests
128
129 # We leave "TESTS" empty here; it's handled in Makefile.tests (see
130 # that file for comment)
131 TESTS = $(UNIT_TESTS)
132
133 if STATIC_BINARY
134 unit_LINK = $(CXXLINK) -all-static
135 else
136 unit_LINK = $(CXXLINK)
137 endif
138
139 @AMDEP_TRUE@@am__include@ $(UNIT_TESTS:%=@am__quote@./@DEPDIR@/%.Plo@am__quote@)
140
141 $(UNIT_TESTS:%=@am__quote@./@DEPDIR@/%.Plo@am__quote@): %.Plo:
142 $(AM_V_at)$(MKDIR_P) `dirname "$@"`
143 $(AM_V_GEN)test -e "$@" || touch "$@"
144
145 $(UNIT_TESTS:%=@abs_builddir@/%.cpp): @abs_builddir@/%.cpp: %.h
146 $(AM_V_at)$(MKDIR_P) `dirname "$@"`
147 $(AM_V_GEN)$(CXXTESTGEN) --have-eh --have-std --error-printer -o "$@" "$<"
148
149 $(WHITE_TESTS:%=%.lo): %_white.lo: @abs_builddir@/%_white.cpp
150 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LTCXXCOMPILE) $(AM_CXXFLAGS_WHITE) -MT $@ -MD -MP -MF $(DEPDIR)/$(@:%.lo=%).Tpo -c -o $@ $<
151 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$(@:%.lo=%).Tpo $(DEPDIR)/$(@:%.lo=%).Plo
152 @am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
153 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
154 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
155 @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) $(AM_CXXFLAGS_WHITE) -c -o $@ $<
156
157 $(WHITE_TESTS): %_white: %_white.lo $(AM_LIBADD_WHITE)
158 $(AM_V_CXXLD)$(unit_LINK) $(AM_LIBADD_WHITE) $(AM_LDFLAGS) $(AM_LDFLAGS_WHITE) $<
159
160 $(BLACK_TESTS:%=%.lo): %_black.lo: @abs_builddir@/%_black.cpp
161 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LTCXXCOMPILE) $(AM_CXXFLAGS_BLACK) -MT $@ -MD -MP -MF $(DEPDIR)/$(@:%.lo=%).Tpo -c -o $@ $<
162 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$(@:%.lo=%).Tpo $(DEPDIR)/$(@:%.lo=%).Plo
163 @am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
164 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
165 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
166 @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) $(AM_CXXFLAGS_BLACK) -c -o $@ $<
167
168 $(BLACK_TESTS): %_black: %_black.lo $(AM_LIBADD_BLACK)
169 $(AM_V_CXXLD)$(unit_LINK) $(AM_LIBADD_BLACK) $(AM_LDFLAGS) $(AM_LDFLAGS_BLACK) $<
170
171 $(PUBLIC_TESTS:%=%.lo): %_public.lo: @abs_builddir@/%_public.cpp
172 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LTCXXCOMPILE) $(AM_CXXFLAGS_PUBLIC) -MT $@ -MD -MP -MF $(DEPDIR)/$(@:%.lo=%).Tpo -c -o $@ $<
173 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$(@:%.lo=%).Tpo $(DEPDIR)/$(@:%.lo=%).Plo
174 @am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
175 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
176 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
177 @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) $(AM_CXXFLAGS_PUBLIC) -c -o $@ $<
178
179 $(PUBLIC_TESTS): %_public: %_public.lo $(AM_LIBADD_PUBLIC)
180 $(AM_V_CXXLD)$(unit_LINK) $(AM_LIBADD_PUBLIC) $(AM_LDFLAGS) $(AM_LDFLAGS_PUBLIC) $<
181
182 else
183
184 # force a user-visible failure for "make check"
185 TESTS = no_cxxtest
186
187 EXTRA_DIST = \
188 no_cxxtest \
189 $(UNIT_TESTS:%=%.h) \
190 $(TEST_DEPS_DIST) \
191 no-cxxtest-available
192
193 endif
194
195 $(UNIT_TESTS:%=%.cpp): $(UNIT_TESTS:%=@abs_builddir@/%.cpp)
196
197 # trick automake into setting LTCXXCOMPILE, CXXLINK, etc.
198 if CVC4_FALSE
199 noinst_LTLIBRARIES = libdummy.la
200 nodist_libdummy_la_SOURCES = expr/node_black.cpp
201 libdummy_la_LIBADD = @abs_top_builddir@/src/libcvc4.la
202 endif
203
204 # synonyms for "check" in this directory in this directory
205 .PHONY: units test
206 units test: check
207
208 # no-ops here
209 .PHONY: systemtests regress regress0 regress1 regress2 regress3
210 regress regress0 regress1 regress2 regress3:
211
212 if HAVE_CXXTESTGEN
213 # all is fine with the world
214 else
215 # all is not !
216 no-cxxtest-available:
217 @if test "$(I_REALLY_WANT_TO_BUILD_CVC4_DIST_WITHOUT_TESTS)" = 1; then \
218 echo; \
219 echo "WARNING:"; \
220 echo "WARNING: No CxxTest to build unit tests, but, then, you know that;"; \
221 echo "WARNING: I hope you know what you're doing."; \
222 echo "WARNING:"; \
223 echo; \
224 ( echo "CxxTest was not available at the time this distribution was built,"; \
225 echo "so the tests could not be built. You'll need CxxTest to test this"; \
226 echo "distribution." ) >no-cxxtest-available; \
227 else \
228 echo; \
229 echo "ERROR:"; \
230 echo "ERROR: You cannot make dist in this build directory, you do not have CxxTest."; \
231 echo "ERROR: The tests should be generated for the user and included in the tarball,"; \
232 echo "ERROR: otherwise they'll be required to have CxxTest just to test the standard"; \
233 echo "ERROR: distribution built correctly."; \
234 echo "ERROR: If you really want to do this, append the following to your make command."; \
235 echo "ERROR:"; \
236 echo "ERROR: I_REALLY_WANT_TO_BUILD_CVC4_DIST_WITHOUT_TESTS=1"; \
237 echo "ERROR:"; \
238 echo; \
239 exit 1; \
240 fi >&2
241 endif
242