如何将参数传递给 Automake 输入文件中的测试?
Posted
技术标签:
【中文标题】如何将参数传递给 Automake 输入文件中的测试?【英文标题】:How do I pass parameters to tests in an Automake input file? 【发布时间】:2012-03-25 02:16:38 【问题描述】:在我的Makefile.am
中,我进行了以下测试:
TESTS += tests/test1
check_PROGRAMS += tests/test1
tests_test1_SOURCES = tests/test1.c
tests_test1_CPPFLAGS = ...
tests_test1_LDADD = ...
test1
在调用make check
时编译并运行。应该如何修改Makefile.am
以将命令行参数传递给 test1?
【问题讨论】:
【参考方案1】:您不能将参数传递给测试。
代替
TESTS += tests/test1
做
TESTS += tests/test1.test
EXTRA_DIST += tests/test1.test
tests/test1.test
是一个可执行的 shell 脚本,它可以使用任何你想要的参数来运行你的程序:
#!/bin/sh
tests/test1 args... < $srcdir/tests/distributed-input-file
【讨论】:
+1 用于回答我的相当不同的问题,即是否有办法在测试脚本中使用$srcdir
- 结果就是这么简单:)【参考方案2】:
您也可以通过环境传递参数。当您想在 make check
的不同运行中传递不同的参数时,这很方便。
假设你有 tests/test1.test
和以下内容:
#!/bin/bash
tests/test1 $TEST_FLAGS < $srcdir/tests/distributed-input-file
现在,您可以运行以下命令:
$ TEST_FLAGS=--verbose make check
而--verbose
标志将在您希望它显示额外信息以进行调试时传递给您的测试程序。
【讨论】:
以上是关于如何将参数传递给 Automake 输入文件中的测试?的主要内容,如果未能解决你的问题,请参考以下文章
如何将参数传递给 Play 中的 Jobs!框架 1.2.x?
如何将 Shiny 应用程序中的表格和绘图作为参数传递给 R Markdown?