Vous ne pouvez pas écrire de test unitaire pour cette fonction, car vous ne pouvez pas allouer de mémoire sur le tas sans un appel système. Il s'agit donc d'un test d'intégration, car vous ne pouvez pas isoler l'unité testée du système d'exploitation.
Je créerais un nouveau petit exécutable qui appelle allocation_routine
pour n
octets. En fonction de quoi allocation_routine
est censé revenir, vous pouvez affirmer qu'il n'est pas nullptr
. Ensuite, écrivez n
octets dans cette zone de mémoire. Compilez-le et liez-le à l'aide du nettoyeur d'adresses (disponible avec gcc
et clang
), puis essayez de l'intégrer dans le test runner de votre application (ctest
etc.).
Vous pouvez également restreindre le tas disponible via le setrlimit POSIX pour vérifier le comportement lorsque l'allocation échoue.