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