2012-03-25 44 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標誌將被傳遞給你的測試程序,只要你想讓它顯示額外的信息用於調試目的。

相關問題