Anda tidak dapat menulis pengujian unit untuk fungsi ini, karena Anda tidak dapat mengalokasikan memori di heap tanpa panggilan sistem. Oleh karena itu, ini adalah pengujian integrasi, karena Anda tidak dapat mengisolasi unit yang diuji dari sistem operasi.
Saya akan membuat executable kecil baru yang memanggil allocation_routine
untuk n
byte. Tergantung allocation_routine
apa seharusnya dikembalikan, Anda dapat menegaskan bahwa itu bukan-nullptr
. Lalu, tulis n
byte ke wilayah memori ini. Kompilasi dan tautkan menggunakan pembersih alamat (tersedia dengan gcc
dan clang
), lalu coba integrasikan ke dalam runner pengujian aplikasi Anda (ctest
dll.).
Anda mungkin juga ingin membatasi heap yang tersedia melalui setrlimit POSIX untuk memverifikasi perilaku saat alokasi gagal.