Pruebas unitarias de malloc fallido ()
¿Cuál es la mejor manera de probar unidades en las rutas de código que involucran una falla?malloc()
? En la mayoría de los casos, probablemente no importa porque estás haciendo algo como
thingy *my_thingy = malloc(sizeof(thingy));
if (my_thingy == NULL) {
fprintf(stderr, "We're so screwed!\n");
exit(EXIT_FAILURE);
}
pero en algunos casos tiene otras opciones además de morir, porque ha asignado algunas cosas adicionales para el almacenamiento en caché o lo que sea, y puede reclamar esa memoria.
Sin embargo, en aquellos casos en los que puede intentar recuperarse de un errormalloc()
que estás haciendo algo complicado y propenso a errores en una ruta de código que es bastante inusual, lo que hace que las pruebas sean especialmente importantes. ¿Cómo realmente haces esto?