2

Expectのようなものを使用して、単純なバイト指向プロトコルのテストを書きたいと思います。テスト スクリプトは、次の単純なストリームのようになります。

send "data"
expect "data"

(send は stdout に書き込み、exp​​ect は stdin から十分に読み取り、一致しない場合は終了します。)

バッファリングされた行指向の対話用に設計されているため、expect 自体は使用できません。同じ理由で、grep や awk を使用したパターン マッチングも廃止されました。

使用できる UNIX ツールまたはライブラリはありますか? 既存のプログラムと統合する必要があるため、標準で移植可能であればなおさらです。

4

2 に答える 2

1

やや醜い解決策は、バイナリストリームをテキストの16進数に変換する小さなperlまたはpythonスクリプトを記述し、Expectを使用してそれを処理することです。

于 2010-01-17T19:50:26.707 に答える
0

pexpectでは、ロジックに Python を使用できる場合、問題なくバイナリ (バイト文字列) を使用できるはずです。これは純粋な Python であり、十分に unix-y なすべてのプラットフォーム (基本的には pty を使用するもの;-) に移植可能です。同様に、Python の正規表現やその他のバイト文字列操作は、バイナリ文字列ではまったく問題ありません。および Python 標準ライブラリ モジュールは、そのようなバイナリ バイト文字列の操作と、データの他のタイプの意味のある表現への相互変換を好み、容易にしますstructarray

于 2010-01-18T02:17:48.043 に答える