私のアプリケーションをテストするためにJUnitテストを書いています。このアプリケーションはJavaで書かれており、purejavacommライブラリを使用しています。シリアルパーサーをテストするために、テストがパーサーと通信できるように仮想シリアルポートを設定したいと思います。単に解析するだけでなく、シリアルポートが利用可能になると動的に接続されるため、たとえば使用したくありませんPipedInputStream
。
ライブラリは、またはで始まるデバイスファイルのみを検索しますttyS
。したがって、通常のタスク(シリアルポートを作成するタスク)を実行することはできません。ttyUSB
ttyACM
/dev/pts/x
socat -d -d pty,raw,echo=0 pty,raw,echo=0
私はこれを試みます:
socat /dev/ttyS20 /dev/ttyS21
しかし、うまくいきません。終了せず、エラーを印刷しません。/dev/ttyS20
画面に接続しようとしましたが、というメッセージのみが表示されました[screen is terminating]
。
(および21)に対するユーザー権限を調べたttyS20
結果、すべて私のユーザー(chris)が属するグループdialout
(user:root)があります。
sudo
テストでシリアルバインディングを作成したいので、何も使用したくありません。だからrootでテストを実行したくありません。
権限について私が見落とした部分がありますか?これらすべてを同時に実行するより良い方法はありますか?