2 # Copyright (c) 2020 Project nlassert Authors
3 # Copyright (c) 2016-2017 Nest Labs, Inc.
6 # This document is the property of Nest. It is considered
7 # confidential and proprietary information.
9 # This document may not be reproduced or transmitted in any form,
10 # in whole or in part, without the express written permission of
14 # This file is the GNU automake template for the Nest Labs
15 # static- and runtime-assertion library unit tests.
18 include $(abs_top_nlbuild_autotools_dir)/automake/pre.am
21 # Local headers to build against and distribute but not to install
22 # since they are not part of the package.
25 nlassert-test-config.h \
29 # Other files we do want to distribute with the package.
34 if NLASSERT_BUILD_TESTS
35 # C preprocessor option flags that will apply to all compiled objects in this
40 -I$(top_srcdir)/include \
45 -DNL_ASSERT_TEST_WANT_ABORT=1 \
48 NONPRODUCTION_CPPFLAGS = \
50 -DNL_ASSERT_TEST_WANT_PRODUCTION=0 \
53 PRODUCTION_CPPFLAGS = \
55 -DNL_ASSERT_TEST_WANT_PRODUCTION=1 \
63 nlassert-static-test.c \
66 STATIC_CXX_SOURCES = \
67 nlassert-static-test-cxx.cpp \
70 # Test applications that should be run when the 'check' target is run.
73 nlassert-static-test-nonproduction-success \
74 nlassert-static-test-nonproduction-failure \
75 nlassert-static-test-cxx-nonproduction-success \
76 nlassert-static-test-cxx-nonproduction-failure \
77 nlassert-test-nonproduction-defaults \
78 nlassert-test-nonproduction-abort \
79 nlassert-test-nonproduction-abort-backtrace \
80 nlassert-test-nonproduction-abort-log \
81 nlassert-test-nonproduction-abort-trap \
82 nlassert-test-nonproduction-abort-backtrace-log \
83 nlassert-test-nonproduction-abort-backtrace-trap \
84 nlassert-test-nonproduction-abort-log-trap \
85 nlassert-test-nonproduction-abort-backtrace-log-trap \
86 nlassert-static-test-production-success \
87 nlassert-static-test-production-failure \
88 nlassert-static-test-cxx-production-success \
89 nlassert-static-test-cxx-production-failure \
90 nlassert-test-production-defaults \
91 nlassert-test-production-abort \
92 nlassert-test-production-abort-backtrace \
93 nlassert-test-production-abort-log \
94 nlassert-test-production-abort-trap \
95 nlassert-test-production-abort-backtrace-log \
96 nlassert-test-production-abort-backtrace-trap \
97 nlassert-test-production-abort-log-trap \
98 nlassert-test-production-abort-backtrace-log-trap \
101 # Test applications and scripts that should be built and run when the
102 # 'check' target is run.
108 # The additional environment variables and their values that will be
109 # made available to all programs and scripts in TESTS.
111 TESTS_ENVIRONMENT = \
115 # Source, compiler, and linker options for test programs.
117 # This enumerates mnemonics for all possible combinations of assert
118 # "features" (backtracing, logging, and trapping).
121 static_success_CPPFLAGS = \
122 -DNL_ASSERT_TEST_WANT_STATIC_SUCCESS=1 \
126 # NOTE: Change this to '0' from '1' if you want to demonstrate
127 # compile-time failure of the assertion checks.
130 static_failure_CPPFLAGS = \
131 -DNL_ASSERT_TEST_WANT_STATIC_SUCCESS=1 \
134 defaults_CPPFLAGS = \
135 -DNL_ASSERT_TEST_WANT_DEFAULTS=1 \
136 -DNL_ASSERT_TEST_WANT_BACKTRACE=0 \
137 -DNL_ASSERT_TEST_WANT_LOG=0 \
138 -DNL_ASSERT_TEST_WANT_TRAP=0 \
142 -DNL_ASSERT_TEST_WANT_DEFAULTS=0 \
143 -DNL_ASSERT_TEST_WANT_BACKTRACE=0 \
144 -DNL_ASSERT_TEST_WANT_LOG=0 \
145 -DNL_ASSERT_TEST_WANT_TRAP=0 \
148 abort_backtrace_CPPFLAGS = \
149 -DNL_ASSERT_TEST_WANT_DEFAULTS=0 \
150 -DNL_ASSERT_TEST_WANT_BACKTRACE=1 \
151 -DNL_ASSERT_TEST_WANT_LOG=0 \
152 -DNL_ASSERT_TEST_WANT_TRAP=0 \
155 abort_log_CPPFLAGS = \
156 -DNL_ASSERT_TEST_WANT_DEFAULTS=0 \
157 -DNL_ASSERT_TEST_WANT_BACKTRACE=0 \
158 -DNL_ASSERT_TEST_WANT_LOG=1 \
159 -DNL_ASSERT_TEST_WANT_TRAP=0 \
162 abort_trap_CPPFLAGS = \
163 -DNL_ASSERT_TEST_WANT_DEFAULTS=0 \
164 -DNL_ASSERT_TEST_WANT_BACKTRACE=0 \
165 -DNL_ASSERT_TEST_WANT_LOG=0 \
166 -DNL_ASSERT_TEST_WANT_TRAP=1 \
169 abort_backtrace_log_CPPFLAGS = \
170 -DNL_ASSERT_TEST_WANT_DEFAULTS=0 \
171 -DNL_ASSERT_TEST_WANT_BACKTRACE=1 \
172 -DNL_ASSERT_TEST_WANT_LOG=1 \
173 -DNL_ASSERT_TEST_WANT_TRAP=0 \
176 abort_backtrace_trap_CPPFLAGS = \
177 -DNL_ASSERT_TEST_WANT_DEFAULTS=0 \
178 -DNL_ASSERT_TEST_WANT_BACKTRACE=1 \
179 -DNL_ASSERT_TEST_WANT_LOG=0 \
180 -DNL_ASSERT_TEST_WANT_TRAP=1 \
183 abort_log_trap_CPPFLAGS = \
184 -DNL_ASSERT_TEST_WANT_DEFAULTS=0 \
185 -DNL_ASSERT_TEST_WANT_BACKTRACE=0 \
186 -DNL_ASSERT_TEST_WANT_LOG=1 \
187 -DNL_ASSERT_TEST_WANT_TRAP=1 \
190 abort_backtrace_log_trap_CPPFLAGS = \
191 -DNL_ASSERT_TEST_WANT_DEFAULTS=0 \
192 -DNL_ASSERT_TEST_WANT_BACKTRACE=1 \
193 -DNL_ASSERT_TEST_WANT_LOG=1 \
194 -DNL_ASSERT_TEST_WANT_TRAP=1 \
198 # Test Program Proprocessor Flags
201 nlassert_static_test_nonproduction_success_CPPFLAGS = $(NONPRODUCTION_CPPFLAGS) $(static_success_CPPFLAGS)
202 nlassert_static_test_nonproduction_failure_CPPFLAGS = $(NONPRODUCTION_CPPFLAGS) $(static_failure_CPPFLAGS)
203 nlassert_static_test_cxx_nonproduction_success_CPPFLAGS = $(NONPRODUCTION_CPPFLAGS) $(static_success_CPPFLAGS)
204 nlassert_static_test_cxx_nonproduction_failure_CPPFLAGS = $(NONPRODUCTION_CPPFLAGS) $(static_failure_CPPFLAGS)
206 nlassert_test_nonproduction_defaults_CPPFLAGS = $(NONPRODUCTION_CPPFLAGS) $(defaults_CPPFLAGS)
207 nlassert_test_nonproduction_abort_CPPFLAGS = $(NONPRODUCTION_CPPFLAGS) $(abort_CPPFLAGS)
208 nlassert_test_nonproduction_abort_backtrace_CPPFLAGS = $(NONPRODUCTION_CPPFLAGS) $(abort_backtrace_CPPFLAGS)
209 nlassert_test_nonproduction_abort_log_CPPFLAGS = $(NONPRODUCTION_CPPFLAGS) $(abort_log_CPPFLAGS)
210 nlassert_test_nonproduction_abort_trap_CPPFLAGS = $(NONPRODUCTION_CPPFLAGS) $(abort_trap_CPPFLAGS)
211 nlassert_test_nonproduction_abort_backtrace_log_CPPFLAGS = $(NONPRODUCTION_CPPFLAGS) $(abort_backtrace_log_CPPFLAGS)
212 nlassert_test_nonproduction_abort_backtrace_trap_CPPFLAGS = $(NONPRODUCTION_CPPFLAGS) $(abort_backtrace_trap_CPPFLAGS)
213 nlassert_test_nonproduction_abort_log_trap_CPPFLAGS = $(NONPRODUCTION_CPPFLAGS) $(abort_log_trap_CPPFLAGS)
214 nlassert_test_nonproduction_abort_backtrace_log_trap_CPPFLAGS = $(NONPRODUCTION_CPPFLAGS) $(abort_backtrace_log_trap_CPPFLAGS)
216 nlassert_static_test_production_success_CPPFLAGS = $(PRODUCTION_CPPFLAGS) $(static_success_CPPFLAGS)
217 nlassert_static_test_production_failure_CPPFLAGS = $(PRODUCTION_CPPFLAGS) $(static_failure_CPPFLAGS)
218 nlassert_static_test_cxx_production_success_CPPFLAGS = $(PRODUCTION_CPPFLAGS) $(static_success_CPPFLAGS)
219 nlassert_static_test_cxx_production_failure_CPPFLAGS = $(PRODUCTION_CPPFLAGS) $(static_failure_CPPFLAGS)
221 nlassert_test_production_defaults_CPPFLAGS = $(PRODUCTION_CPPFLAGS) $(defaults_CPPFLAGS)
222 nlassert_test_production_abort_CPPFLAGS = $(PRODUCTION_CPPFLAGS) $(abort_CPPFLAGS)
223 nlassert_test_production_abort_backtrace_CPPFLAGS = $(PRODUCTION_CPPFLAGS) $(abort_backtrace_CPPFLAGS)
224 nlassert_test_production_abort_log_CPPFLAGS = $(PRODUCTION_CPPFLAGS) $(abort_log_CPPFLAGS)
225 nlassert_test_production_abort_trap_CPPFLAGS = $(PRODUCTION_CPPFLAGS) $(abort_trap_CPPFLAGS)
226 nlassert_test_production_abort_backtrace_log_CPPFLAGS = $(PRODUCTION_CPPFLAGS) $(abort_backtrace_log_CPPFLAGS)
227 nlassert_test_production_abort_backtrace_trap_CPPFLAGS = $(PRODUCTION_CPPFLAGS) $(abort_backtrace_trap_CPPFLAGS)
228 nlassert_test_production_abort_log_trap_CPPFLAGS = $(PRODUCTION_CPPFLAGS) $(abort_log_trap_CPPFLAGS)
229 nlassert_test_production_abort_backtrace_log_trap_CPPFLAGS = $(PRODUCTION_CPPFLAGS) $(abort_backtrace_log_trap_CPPFLAGS)
232 # Test Program Source Code
235 nlassert_static_test_nonproduction_success_SOURCES = $(STATIC_SOURCES)
236 nlassert_static_test_nonproduction_failure_SOURCES = $(STATIC_SOURCES)
238 nlassert_static_test_cxx_nonproduction_success_SOURCES = $(STATIC_CXX_SOURCES)
239 nlassert_static_test_cxx_nonproduction_failure_SOURCES = $(STATIC_CXX_SOURCES)
241 nlassert_test_nonproduction_defaults_SOURCES = $(COMMON_SOURCES)
242 nlassert_test_nonproduction_abort_SOURCES = $(COMMON_SOURCES)
243 nlassert_test_nonproduction_abort_backtrace_SOURCES = $(COMMON_SOURCES)
244 nlassert_test_nonproduction_abort_log_SOURCES = $(COMMON_SOURCES)
245 nlassert_test_nonproduction_abort_trap_SOURCES = $(COMMON_SOURCES)
246 nlassert_test_nonproduction_abort_backtrace_log_SOURCES = $(COMMON_SOURCES)
247 nlassert_test_nonproduction_abort_backtrace_trap_SOURCES = $(COMMON_SOURCES)
248 nlassert_test_nonproduction_abort_log_trap_SOURCES = $(COMMON_SOURCES)
249 nlassert_test_nonproduction_abort_backtrace_log_trap_SOURCES = $(COMMON_SOURCES)
251 nlassert_static_test_production_success_SOURCES = $(STATIC_SOURCES)
252 nlassert_static_test_production_failure_SOURCES = $(STATIC_SOURCES)
254 nlassert_static_test_cxx_production_success_SOURCES = $(STATIC_CXX_SOURCES)
255 nlassert_static_test_cxx_production_failure_SOURCES = $(STATIC_CXX_SOURCES)
257 nlassert_test_production_defaults_SOURCES = $(COMMON_SOURCES)
258 nlassert_test_production_abort_SOURCES = $(COMMON_SOURCES)
259 nlassert_test_production_abort_backtrace_SOURCES = $(COMMON_SOURCES)
260 nlassert_test_production_abort_log_SOURCES = $(COMMON_SOURCES)
261 nlassert_test_production_abort_trap_SOURCES = $(COMMON_SOURCES)
262 nlassert_test_production_abort_backtrace_log_SOURCES = $(COMMON_SOURCES)
263 nlassert_test_production_abort_backtrace_trap_SOURCES = $(COMMON_SOURCES)
264 nlassert_test_production_abort_log_trap_SOURCES = $(COMMON_SOURCES)
265 nlassert_test_production_abort_backtrace_log_trap_SOURCES = $(COMMON_SOURCES)
268 # Foreign make dependencies
271 NLFOREIGN_SUBDIR_DEPENDENCIES = \
272 $(NLUNIT_TEST_FOREIGN_SUBDIR_DEPENDENCY) \
275 if NLASSERT_BUILD_COVERAGE
276 CLEANFILES = $(wildcard *.gcda *.gcno)
278 if NLASSERT_BUILD_COVERAGE_REPORTS
279 # The bundle should positively be qualified with the absolute build
280 # path. Otherwise, VPATH will get auto-prefixed to it if there is
281 # already such a directory in the non-colocated source tree.
283 NLASSERT_COVERAGE_BUNDLE = ${abs_builddir}/${PACKAGE}${NL_COVERAGE_BUNDLE_SUFFIX}
284 NLASSERT_COVERAGE_INFO = ${NLASSERT_COVERAGE_BUNDLE}/${PACKAGE}${NL_COVERAGE_INFO_SUFFIX}
286 $(NLASSERT_COVERAGE_BUNDLE):
287 $(call create-directory)
289 $(NLASSERT_COVERAGE_INFO): check-local | $(NLASSERT_COVERAGE_BUNDLE)
290 $(call generate-coverage-report,${top_builddir})
292 coverage-local: $(NLASSERT_COVERAGE_INFO)
294 clean-local: clean-local-coverage
296 .PHONY: clean-local-coverage
297 clean-local-coverage:
298 -$(AM_V_at)rm -rf $(NLASSERT_COVERAGE_BUNDLE)
299 endif # NLASSERT_BUILD_COVERAGE_REPORTS
300 endif # NLASSERT_BUILD_COVERAGE
301 endif # NLASSERT_BUILD_TESTS
303 include $(abs_top_nlbuild_autotools_dir)/automake/post.am