2009-05-14 6 views
4

Ich schreibe gerade einige CPPunit Tests für ein Programm, das einen Hardware-Kommunikationsport testet (ja, ich schreibe Komponententests für eine Tester-App ;-)). Eine der Klassen, die ich teste, ist im Grunde ein Wrapper um den Dateideskriptor des Geräts; Ich mache read() und write() Aufrufe auf den Dateideskriptor. Gibt es eine Gerätedatei/Treiber auf Linux, wo Sie write() dazu, wenn Sie read() davon lesen Sie zurück, was Sie geschrieben haben (wie ein FIFO-Queue-Gerät)? Wenn ich diese Gerätedatei hätte, wäre es sehr einfach, dies anstelle der tatsächlichen Gerätedatei in meinem Wrapper zu plumpsen und würde es einfacher machen, "Loopback" -Szenarien zu emulieren, die auf realer Hardware auftreten könnten."Echo" Gerät für Unit Testing


Wesentlichen, was ich suche eine Art hypothetische "/dev/echo" Gerät wäre.

Ex: Das Gerät würde sich wie folgt verhalten:

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 
+0

Danke für die Antworten; Ich habe bereits einige Fehler mit/dev/echo! –

Antwort

5

Warum Sie nicht über ein UNIX-Pipe im Dateisystem verwenden?

mkfifo /dev/test 
echo test > /dev/test 

auf einem zweiten Anschluss:

cat /dev/test 

die dann zuerst wird entsperren und die zweite wird den Text zeigen!

+0

+1 ... habe dich dort nicht gesehen –