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. 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

0

我认为您可以使用 com0com 进行测试。您可以连接虚拟串行端口,然后写入一个并从另一个读取它收到的内容。 在此处输入链接描述

于 2014-05-09T12:19:05.937 回答