실패한 코드 경로를 테스트하는 가장 좋은 방법은 무엇입니까 malloc()
? 당신이실패한 malloc()에 대한 단위 테스트
thingy *my_thingy = malloc(sizeof(thingy));
if (my_thingy == NULL) {
fprintf(stderr, "We're so screwed!\n");
exit(EXIT_FAILURE);
}
같은 일을하고 있기 때문에 대부분의 경우, 아마 문제가되지 않지만 캐싱 또는 무엇이든을위한 몇 가지 여분의 물건을 할당했기 때문에 어떤 경우에 당신은 죽어가는 것보다 다른 선택을하고 그 기억을 되 찾을 수 있습니다.
그러나 오류가있는 malloc()
에서 복구하기 위해 시도 할 수있는 경우에는 매우 드문 코드 경로에서 오류가 발생하여 테스트가 특히 중요합니다. 이 일을 실제로 어떻게 수행합니까?
malloc()을 납치하여 때로는 0을 반환 할 수 있습니다. –
'printf'와 같은 많은 라이브러리 함수는 프로세스의 메모리가 부족한 경우 실패 할 수 있습니다. – ephemient
@ephemient'fprintf()'가 올바르게 처리하면 괜찮습니다. ;-) –