假设我有一个autotools项目来构建程序P和P需要一个配置文件F.例如,P = vim和F =〜/ .vimrc。或者P = bash和F =〜/ .bashrc。 (在我的情况下,P实际上是一个lib)
autotools提供的测试工具不允许参数传递给测试程序(除非使用丑陋的包装器......),所以这样的配置文件可能被认为是一种解决方法:所以test1需要配置文件F1, test2需要F2 ......
因此,某些测试的Makefile.am可能如下所示:
#test ttt is linked with program P and will test P
check_PROGRAMS= ttt
ttt_SOURCES = ttt.c
ttt_LDAD = libP.a
TESTS = ttt
EXTRA_DIST = configs/f1.cfg
现在:如何在测试期间让P加载文件配置/ F1,配置/ F2 ...并在安装后仍然加载〜/ .p_rc?
具有此类配置文件的程序非常通信....如何在autotools中正确处理?
答案 0 :(得分:1)
Automake通过变量sysconf_DATA
处理配置文件。安装程序包的用户可以通过以下方式配置配置文件的目标:
sh ./configure --sysconfdir [newpath]
否则,如果您不指定它,您的配置文件将安装在默认的prefix/etc
至于在测试中使用配置文件,可以使用变量check_DATA
将配置文件加载到与测试二进制文件相同的目录中。
答案 1 :(得分:0)
我会在库代码中设置一个包含配置文件路径的全局变量。对于每个测试用例,我可以通过简单地将全局变量设置为相关文件的路径来设置不同的配置文件。