测试和自定义构建目录的组合

时间:2015-03-10 10:46:54

标签: c++ c compilation autotools

我遇到了autotools的问题。

我需要支持测试和自定义构建目录(除了主源目录之外)。 Autotools似乎在抱怨:

src/lib/Libattr/test/attr_atomic/Makefile.am:18: error: using '$(top_srcdir)' in TESTS is currently broken: '$(top_srcdir)/src/test/coverage_run.sh'

$(srcdir)显然也是如此。单元测试需要手动设置包含和源路径,因为它需要来自源树中不同位置的标头和文件。

如果我不能使用$(srcdir)$(top_srcdir),如何引用源树的根?

1 个答案:

答案 0 :(得分:0)

我怀疑问题是你的自动比例测试工具是由 Older (and discouraged) serial test harness的规则 并且解决方案是按照新规则和相应的规则来发挥作用 鼓励Parallel Test Harness

在后者中,您将从链接中的示例代码中收集,但未在$(top_srcdir)中提及TESTS 。您 在AM_TESTS_ENVIRONMENT中提及它们:

这是一个说明性的Makefile.am片段,对我来说很好用:

...
CORE_TESTS = coan_case_tester.py coan_bulk_tester.py coan_spin_tester.py \
coan_symbol_rewind_tester.py coan_softlink_tester.py
if MAKE_CHECK_TIMING
TESTS = $(CORE_TESTS) coan_test_metrics.py
else
TESTS = $(CORE_TESTS)
endif

AM_TESTS_ENVIRONMENT = COAN_PKGDIR=$(top_srcdir); \
    COAN_BUILDDIR=$(top_builddir); TIMING_METRICS=$(TIMING_METRICS_ENABLED); \
    rm -f coan.test_timer.time.txt; \
    export COAN_PKGDIR; export COAN_BUILDDIR; export TIMING_METRICS;
LOG_COMPILER = python