2010-06-23 13 views
5

J'ai un programme, nommons a.out, qui lit l'entrée d'un fichier et écrit une sortie sur stdout. Par exemple un fichier contient la ligne 2,2 et mon programme "./un.out file" écrit 4 à l'écran.suite de régression open source

Maintenant, afin d'être sûr que a.out fonctionne bien après le correctif, je suis à la recherche d'une bonne suite de régression pour Linux. Je veux pour chaque fichier qui contient 2,2 mon programme pour retourner 4 et je veux que ce soit un cas de test.

Des idées sur les paquets de régression?

+0

Up-voté, bonne question, mais il est difficile de suggérer des cas de test sans code. Est-ce que la fonction qui lit le fichier renvoie une chaîne/bool/etc? –

Répondre

1

Avez a look at TAP pour les tests unitaires. C'est ce que Perl utilise pour tester les entrailles de Perl (en particulier les soumissions CPAN), CCAN l'a adopté. Je suppose C (vous avez dit a.out). Ensuite, faites simplement échouer votre fonction de lecture si 2,2 est lu (indice sur 3 octets) si NDEBUG n'est pas défini.

Vous pouvez utiliser autre chose, comme -DUNIT_TESTS_RUNNING, juste faire attention aux dépendances.

Ensuite, si la fonction que vous testez renvoie une chaîne .. pas besoin d'ennuyer le préprocesseur, laissez le test comprendre cela.

TAP est vraiment, vraiment facile à intégrer. Vous pouvez trouver mon ad-hoc Valgrind aware version here. Notez, ce n'est pas correct, que repo est un gâchis, mais cela vaut la peine de montrer à quel point il est facile de faire fonctionner d'autres outils avec TAP.

Soit dit en passant, TAP: (T) est (A) out ce (P) ROTOCOLE

Si cela est C, vous devez rebaliser votre question.