2009-05-14 8 views
4

Je suis en train d'écrire des tests CPPunit pour un programme qui teste un port de communication matériel (oui, j'écris des tests unitaires pour une application de testeur ;-)). L'une des classes que je teste est essentiellement un wrapper autour du descripteur de fichier de l'appareil; Je fais read() et write() appelle sur le descripteur de fichier. Existe-t-il un fichier/pilote de périphérique sur Linux où, si vous lui renvoyez write(), lorsque vous lui renvoyez read(), vous relirez ce que vous avez écrit (comme un périphérique de file d'attente FIFO)? Si j'avais ce fichier de périphérique, il serait très simple de le remplacer à la place du fichier de périphérique réel dans mon wrapper et cela faciliterait l'émulation des scénarios de "loopback" qui pourraient se produire sur du matériel réel.Dispositif "Echo" pour tests unitaires


Essentiellement ce que je suis à la recherche serait une sorte de dispositif "/dev/echo" hypothétique.

Ex: Le dispositif se comporteraient comme suit:

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

Merci pour les réponses; J'ai déjà pris plusieurs bugs en utilisant/dev/echo! –

Répondre

5

Pourquoi ne pas utiliser un tuyau UNIX dans le système de fichiers?

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

sur une seconde borne:

cat /dev/test 

Puis le premier débloquera et le second affiche le texte!

+0

+1 ... je ne vous y ai pas vu –