1

シリアル デバイスを複数の仮想シリアル ポートに分割し、すべてのデータをそれらにルーティングするプログラムがあります。

                    ---- /dev/ttyS1.a [data]->
                    |
[data]-> /dev/ttyS1 ---- /dev/ttyS1.b [data]->
                    |
                    ---- /dev/ttyS1.c [data]->

私の作業プログラム(読みやすさとシンプルさのための疑似コード):

poll(...) {
    // Route data from master to vsp
    master.read(buf)
    for(virtual serial ports as vsp) {
        vsp.write(buf)
    }
    // Route data from vsp to master (if need be)
    for(virtual serial ports as vsp) {
        if(vsp.needs_to_write()) {
            vsp.read(buf)
            master.write(buf)
        }
    }
}

私のマシンには、継続的にデータをフィードする 1 つの物理シリアル ポート デバイスがあります。これは、プログラムが最初に動作するかどうかをテストした方法ですが、両方の方向の書き込みと読み取りをエミュレート/シミュレートし、両方のデータを検証するテストを作成したいと考えています。終了します。物理シリアル ポート デバイスから受信しているデータは一見ランダムなデータを書き込むため、何が書き込まれているのかを正確に検証するのは困難です。

どうすればこれを行うことができますか?(疑似コード)

1. fork process that feeds a known char sequence into /dev/ttyS2 in a loop
2. use my program to read from the COM `master.read(buf)` and then write to the vsp `vsp.write(buf)`
3. how can I verify that after writing to the buf that the vsp has the correct data?

これをテストする自動化方法について混乱しています。

編集 1: 誰も助けてくれませんか?

4

1 に答える 1