2010-06-23 11 views
5

Ich habe ein Programm, nennen wir es a.out, das liest die Eingabe aus einer Datei und schreibt einige Ausgaben auf stdout. Zum Beispiel enthält eine Datei die Zeile 2,2 und mein Programm "./a.out Datei" schreibt 4 auf dem Bildschirm.Open-Source-Regressions-Suite

Um nun sicher zu sein, dass a.out nach dem Patch gut funktioniert, suche ich nach einer guten Regressionssuite für Linux. Ich möchte für jede Datei, die 2,2 enthält, mein Programm 4 zurückgeben und ich möchte, dass dies ein Testfall ist.

Irgendwelche Ideen zu Regressionspaketen?

+0

Nachgewählte, gute Frage, aber es ist schwierig, Testfälle ohne Code vorzuschlagen. Liefert die Funktion, die die Datei liest, eine Zeichenfolge/bool/etc? –

Antwort

1

Haben a look at TAP für Unit-Tests. Es ist, was Perl verwendet, um die Innereien von Perl (speziell CPAN-Einreichungen) zu testen, CCAN es angenommen. Ich nehme C an (du hast gesagt a.out). Dann lassen Sie einfach Ihre Lesefunktion fehlschlagen, wenn 2,2 gelesen wird (Hinweis auf 3 Bytes), wenn NDEBUG nicht definiert ist.

Sie könnten etwas anderes verwenden, wie -DUNIT_TESTS_RUNNING, achten Sie nur auf Abhängigkeiten.

Dann wieder, wenn die Funktion, die Sie testen, eine Zeichenfolge zurückgibt .. keine Notwendigkeit, den Präprozessor zu stören, lassen Sie den Test herausfinden, dass out.

TAP ist wirklich, wirklich einfach zu integrieren. Sie können meine Ad-hoc Valgrind aware version here finden. Beachten Sie, das ist nicht korrekt, dass Repo ein Chaos ist, aber es lohnt sich zu zeigen, wie einfach es ist, andere Tools mit TAP arbeiten zu lassen.

übrigens TAP: (T) est (A) nything (P) rotokoll

Ist dies nicht C ist, müssen Sie neu zu Tag Ihre Frage.