2012-03-25 9 views
9

In meinem Makefile.am, ich habe den folgenden Test:Wie gebe ich Parameter an Tests in einer Automake-Eingabedatei weiter?

TESTS += tests/test1 
check_PROGRAMS += tests/test1 
tests_test1_SOURCES = tests/test1.c 
tests_test1_CPPFLAGS = ... 
tests_test1_LDADD = ... 

test1 kompiliert und ausgeführt werden, wenn make check aufgerufen wird. Wie sollte Makefile.am geändert werden, um ein Befehlszeilenargument an test1 zu übergeben?

Antwort

13

Sie können keine Argumente an Tests übergeben.

Statt

TESTS += tests/test1 

tun

TESTS += tests/test1.test 
EXTRA_DIST += tests/test1.test 

wo tests/test1.test ein ausführbares Shell-Skript ist, dass Ihr Programm mit jedem Argument laufen Sie wünschen:

#!/bin/sh 
tests/test1 args... < $srcdir/tests/distributed-input-file 
+0

+1 für die Antwort meine ziemlich andere Frage, ob es eine Möglichkeit gab, '$ srcdir' in Testskripten zu verwenden - stellt sich heraus, es ist einfach so einfach :) –

0

Sie auch passieren können Parameter über die Umgebung. Dies ist nützlich, wenn Sie verschiedene Parameter in verschiedenen Läufen von make check übergeben möchten.

Angenommen, Sie haben tests/test1.test mit den folgenden:

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

Nun Sie folgendes ausführen können:

$ TEST_FLAGS=--verbose make check 

Und die --verbose Flagge zu Ihrem Testprogramm würde übergeben, wann immer Sie es wollen zusätzliche Informationen zum Debuggen anzeigen.

Verwandte Themen