Каков наилучший способ для модульного тестирования путей кода с ошибкой malloc()
? В большинстве случаев это, вероятно, не имеет значения, потому что вы делаете что-то вроде
thingy *my_thingy = malloc(sizeof(thingy));
if (my_thingy == NULL) {
fprintf(stderr, "We're so screwed!\n");
exit(EXIT_FAILURE);
}
но в некоторых случаях у вас есть выбор, кроме смерти, потому что вы выделили некоторые дополнительные вещи для кэширования или чего-то еще, и вы можете восстановить эту память.
Однако в тех случаях, когда вы можете попытаться восстановиться после сбоя malloc()
, когда вы делаете что-то хитрое и подверженное ошибкам в пути кода, что довольно необычно, что делает тестирование особенно важным. Как вы на самом деле делаете это?