2016-11-17 6 views
1

私は、プログラムPを構築するautotoolsプロジェクトがあると仮定し、Pは設定ファイルを必要とします。例えば、P = vimとF =〜/ .vimrcを考えてみましょう。またはP = bashおよびF =〜/ .bashrc。 (私の場合、Pは実際にはlibです)autotools:設定ファイルが必要なプログラムをテストするには?

autotoolsが提供するテストハーネスは、テストされたプログラムにパラメータを渡すことはできません(醜いラッパーを使用していない限り...)。そのような設定ファイルは、回避策:そうtest1のは、コンフィギュレーション・ファイルF1を必要とする、TEST2はF2を必要とする...

次のようにいくつかのテストのためのMakefile.amは見ることができる:

#test ttt is linked with program P and will test P 

check_PROGRAMS= ttt 
ttt_SOURCES = ttt.c 
ttt_LDAD = libP.a 

TESTS = ttt 

EXTRA_DIST = configs/f1.cfg 

を:どのように私はPを得るのですかファイルconfigs/F1、configs/F2をロードするには...テスト中に、インストール後に〜/ .p_rcを読み込みますか?

このような設定ファイルを持つプログラムは非常にコミュニケートしています....これはどのようにautotoolsで正しくhanldedですか?

答えて

1

Automakeは、コンフィグレーションファイルを変数sysconf_DATAで処理します。あなたのパッケージをインストールするユーザーは、設定ファイルの保存先を通じ設定することができます。

sh ./configure --sysconfdir [newpath] 

をそうでない場合、あなたはそれを指定しない場合は、お使いの設定ファイルは、設定を使用すると、デフォルトprefix/etc

にインストールされます。テスト用のバイナリと同じディレクトリに設定ファイルをロードするには、変数check_DATAを使用します。

0

設定ファイルのパスを保持するライブラリコードにグローバル変数を設定します。このように、テストケースごとにグローバル変数を関連ファイルのパスに設定するだけで、別の設定ファイルを設定することができます。

関連する問題