2012-03-25 48 views
9

在我Makefile.am,我有以下测试:如何将参数传递给Automake输入文件中的测试?

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?

回答

13

您无法将参数传递给测试。取而代之的

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 
+0

+1用于回答我是否有一种在测试脚本中使用'$ srcdir'的方法,而这个问题相当不同 - 事实证明它就是这么简单:) – 2017-07-26 13:49:14

0

您也可以通过通过环境参数。当你想在make check的不同运行中传递不同的参数时,这很方便。

假设你有tests/test1.test有以下几点:

#!/bin/bash 
tests/test1 $TEST_FLAGS < $srcdir/tests/distributed-input-file 

现在,您可以运行以下命令:

$ TEST_FLAGS=--verbose make check 

而且--verbose标志将被传递给你的测试程序,只要你想让它显示额外的信息用于调试目的。

相关问题