我目前正在为测试硬件通信端口的程序编写一些 CPPunit 测试(是的,我正在为测试器应用程序编写单元测试 ;-))。我正在测试的类之一基本上是设备文件描述符的包装器;我对文件描述符进行 read()
和 write()
调用。 Linux 上是否有一个设备文件/驱动程序,如果你向它write()
,当你从它read()
时,你会读回你写的内容(像一个 FIFO 队列设备)? 如果我有这个设备文件,那么将它替换为我的包装器中的实际设备文件将非常简单,并且可以很容易地模拟可能发生的“环回”场景在真实世界的硬件上。
本质上,我正在寻找的是一种假设的 "/dev/echo"
设备。
例如:设备的行为如下:
open("/dev/echo", O_RDRW);
write(fdEcho, 123, sizeof(int));
write(fdEcho, 456, sizeof(int));
write(fdEcho, 789, sizeof(int));
read(fdEcho, iData, sizeof(int); // returns 123
read(fdEcho, iData2, sizeof(int); // returns 456
read(fdEcho, iData3, sizeof(int); // returns 789
最佳答案
为什么不在文件系统中使用 UNIX 管道?
mkfifo /dev/test
echo test > /dev/test
在第二个终端上:
cat /dev/test
然后第一个将解锁,第二个将显示文本!
关于c++ - "Echo"单元测试设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/865689/