【问题标题】:Passing parameters to regression tests in automake在 automake 中将参数传递给回归测试
【发布时间】:2015-11-04 16:04:22
【问题描述】:

我正在为我们当前使用自动工具(即 autoconf/automake)的包编写回归测试。以下 Makefile.am 举例说明了最简单的检查。当调用 make check 时,它编译 tester.c 以生成 tester,然后启动 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

【问题讨论】:

    标签: makefile autoconf automake


    【解决方案1】:

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

    相关代码来了:

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-25
      • 2015-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-12
      • 2014-02-07
      相关资源
      最近更新 更多