Wie kann ich cmake zum Testen von Prozessen verwenden, bei denen mit Ausnahme von Fehlern gerechnet wird? (z. B. Fehler aufgrund des Adressbereinigungsprogramms von Clang)

Ich habe einige Tests, die zeigen, dass der Adressbereiniger des Clangs bestimmte Fehler entdeckt. (Ich möchte sicherstellen, dass mein Verständnis der Arten von Fehlern, die es abfangen kann, korrekt ist und dass zukünftige Versionen weiterhin die Art von Fehlern abfangen, die ich von ihnen erwarte.) Dies bedeutet, dass ich mehrere Tests habe, bei denen ein Fehler auftrittOTHER_FAULT, was anscheinend die feste Methode ist, mit der die Laufzeit von clang einen Fehler meldet.

Ich habe das @ gesetWILL_FAIL flag toTRUE für diese Tests, dies scheint jedoch nur den Rückgabewert eines erfolgreichen ausnahmefreien Fehlers zu überprüfen. Wenn der Prozess mit einer Ausnahme beendet wird, stuft cmake ihn weiterhin als Fehler ein.

Ich habe auch versucht mitPASS_REGULAR_EXPRESSION, um nach den unterscheidenden Meldungen zu suchen, die beim Auftreten dieses Fehlers ausgedruckt werden. cmake scheint den Test jedoch als fehlgeschlagen zu klassifizieren, wenn er mit einer Ausnahme beendet wird.

ibt es irgendetwas, was ich tun kann, um das zu umgehe

(Clang-spezifische Antworten sind ebenfalls möglich! - aber ich bezweifle, dass dies das letzte Mal ist, dass ich so etwas testen muss. Daher würde ich es vorziehen, zu wissen, wie man es mit cmake im Allgemeinen macht, wenn es möglich ist.)

Antworten auf die Frage(4)

Ihre Antwort auf die Frage