C ++でソケットファイルサーバーを作成していますが、makefileに正しい単体テストを置く方法がわかりません。私の質問は次のとおりです。
サーバーの起動後、対応するポート番号が標準出力に印刷されます。それから無限に聞きます。クライアントプロセス(私のテストスイート)はサーバーの出力を読み取り、それを独自の並列プロセスで実行する必要があります。
1. 2 つのプログラムを並列に実行するスクリプトを作成するにはどうすればよいですか。 2. あるプログラムから別のプログラムに出力を正しくインポートすることができます。
ベストアンサー1
1. 2 つのプログラムを並列に実行するスクリプトを作成するにはどうすればよいですか。 2. あるプログラムから別のプログラムに出力を正しくインポートすることができます。
個人的に私はC ++でテストツールを書きたいのですが、どちらの方法でも、この種のマルチプロセスクライアント - サーバーテストを実行したいと思いますfork()
。
Bashでは、次のよう&
に達成されます。
pid_t pid = fork();
if (pid == -1) // error handling
else if (!pid) {
// Start server, plus some code for evaluating the exchange.
} else {
// Wait a second or two, then start client.
// Plus some code to feed server and evaluate exchange.
}
シェルでは、次のように見えます。
(
output=$(start_server)
# evaluate output
) &
sleep 2
start_client < input.txt
獣の性格に応じて、シェルアプローチはC ++アプローチと同じくらい厄介でも不可能かもしれません。また、同じ言語を使用するということは、ツールキット全体やkaboodleではなくクラスなどをインスタンス化してテストできることを意味します。これにより、問題をより簡単に分離し、実際の問題を含めることができます。ユニットテスト。