J. *_*fer 4 c++ linux unit-testing cppunit linux-device-driver
我正在为一个测试硬件通信端口的程序编写一些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
Run Code Online (Sandbox Code Playgroud)
为什么不在文件系统中使用UNIX管道?
mkfifo /dev/test
echo test > /dev/test
Run Code Online (Sandbox Code Playgroud)
在第二个终端:
cat /dev/test
Run Code Online (Sandbox Code Playgroud)
然后第一个将解锁,第二个将显示文本!