Sur un système Gnu, je peux écrire une macro C comme dies_ok() qui va bifurquer un nouveau processus, exécuter un morceau de code, après quoi il peut écrire dans un partage morceau de mémoire qu'il n'a pas quitté, puis dans le processus parent, je peux déterminer si elle est sortie ou non. Ceci est utile pour les tests:Déterminez si un morceau de code quitte le programme avec MSVC
dies_ok({int x = 0/0;}, "can't divide by zero");
lives_ok({int x = 3/7;}, "this is a perfectly fine statement");
dies_ok({abort();}, "abort kills the program");
Est-il possible d'y arriver sur MSVC où il n'y a pas une fonction de fourchette?
EDIT: Heres l'application qui fonctionne sur Linux avec gcc: http://github.com/zorgnax/libtap/blob/master/tap.h
Cela ressemble au [problème d'arrêt] (http://en.wikipedia.org/wiki/Halting_problem). – kennytm
Pas tout à fait puisque je ne cherche pas s'il y a une boucle infinie. Je suppose que le code testé se terminera sans quitter ou quitter. En Perl, cela équivaudrait à utiliser eval {exit} puis à voir si $ @ est défini. Si ça ne s'arrêtait pas, j'aurais trop de problèmes. – Jake