将参数传递给automake中的回归测试

时间:2015-11-04 16:04:22

标签: makefile autoconf automake

我正在为我们正在使用autotools的软件包(即autoconf / automake)编写回归测试。以下Makefile.am举例说明了最简单的检查。当调用make check时,它会编译tester.c以生成测试器,然后启动tester.sh,最终调用test(以及其他命令)。这很好。

但是,对于某些测试,我需要将在配置时收集的一些信息传递给tester.sh。那么可以将这些信息作为参数传递吗?该值在Makefile中的变量中可用(即它是AC_SUBSTed),但这些变量不会转发到make命令生成的子进程。如果那不可能,那么在tester.sh之前执行一个额外的规则是否可行,生成一个带有稍后通过tester.sh捕获的参数的文件?

文件 Makefile.am

check_PROGRAMS = tester
TESTS = tester.sh
tester_SOURCES = tester.c

1 个答案:

答案 0 :(得分:0)

由于我对将其中一个Makefile变量传递给测试感兴趣,因此我决定通过创建一个辅助程序(名为pass_variable_PREFIX)来解决此问题,该程序将显示Makefile中定义的前缀变量。这个辅助程序稍后将由tester.sh用来知道前缀的值。我知道这可能不是最好的解决方案,但它到目前为止都有效。

以下是相关代码:

<强> Makefile.am

check_PROGRAMS = tester pass_variable_PREFIX
TESTS = tester.sh
tester_SOURCES = tester.c
pass_variable_PREFIX_SOURCES = pass_variable_PREFIX.c
pass_variable_PREFIX_CFLAGS  = -DPREFIX="\"$(prefix)\""

<强> pass_variable_PREFIX.c

#include <stdio.h>
int main (int argc, char *argv[])
{
    printf (PREFIX"\n");
    return 0;
}

<强> tester.sh

#!/bin/bash
PREFIX=`./pass_variable_PREFIX`
echo $PREFIX
./tester